2021.09.22スポンサーリンク目的のマクロを選択して「F5」キーを押して「実行時エラー」のダイアログが表示されたら、「デバッグ」をクリックしてマクロの修正を行います。「Sub/ユーザーフォームの実行」ボタンかキーボードの「F5」キー押すエラーがあると「実行時エラー」のダイアログが表示されるので「デバッグ」をクリックエラー発生行は黄色くマーキングされるオブジェクト型で宣言したオブジェクト変数「OdsRngB」に、オブジェクトを格納するので「Set」がタイプされていなかったためエラーになったので修正します。その後「F8」キーを押すごとに1行ずつマクロを実行することもできますリセットボタンを押すと黄色のマーカーがとれてマクロの実行がリセットされますプログラミングはバグ(エラーの発生)との闘いです。その原因を探り、ひとつ一つ解決していくという地道な作業の繰り返しです。バグの原因を調べる方法をみてみましょう。1行ずつ実行していく(ステップイン)1行ずつ実行しながら確認する基本的な方法です。Sub」の間のどこかに入力カーソル(縦棒の点滅カーソル)がある状態にするキーボードの「F8」キーを押すごとに1行ずつマクロを実行することができます実行している行は黄色くマーキングされますマクロの実行を任意の位置で止める(ブレークポイント)今回の「odds表作成」のマクロは長いので、ステップインだけで1行ずつ確認をすると時間がかかります。そこでブレークポイントを使って任意の行でマクロの実行を止め、そこからステップインで確認するといいでしょう。上図「1」のマウスポインタの位置をクリックするか、マクロを止めたい行にカーソルを入れて「F9」キーを押します選択した行は茶色くマーキングされます。この部分をブレークポイントといいますこの状態で「3」の継続ボタンか「F5」キーを押すと、ブレークポイントまでマクロは実行されて止まります「4」のリセットボタンで実行中の黄色のマーカーが消えますVBEの「デバッグ」タブブレークポイントは複数設定することができます。変数や式の値などを表示して、意図した結果であるかを確認します。設定した変数の値を知りたい時はマウスポインタを変数の上に重ねます。すると変数や式の値を知ることができます。黄色くマーキングされた行は実行前なので変数はまだ「0」です。2.イミディエイトウィンドウで確認する「表示」タブをクリック「イミディエイトウィンドウ」をクリック「?」の後に調べたい変数や式をタイプします「Enter」キーを押すと、その下に指定した変数の値「3」が表示されます3.ウォッチウィンドウで確認する「ウォッチウィンドウ」は、値を知りたい変数を設定しておけば、常にウィンドウに値を表示しておくことができます。「表示」タブをクリック「ウォッチウインドウ」をクリックここでは変数「inRowE」を選択します「ウォッチ」ウインドウの「式」の列にドラッグします。「caColm」は選択済みなので値は「3」になっています。コピーgamira関連記事Tips標準モジュールの追加エクセルでマクロを書きたいけどどこに書いていいかわからない。そんな時は標準モジュールを追加します。標準モジュールとはマクロを書く場所です。マクロを書くところの準備を「標準モジュールの追加」といいます。Tips変数についてVBAの初期設定では変数を宣言しなくても使えます。この状態では入力ミスをしてもマクロがエラーにならず、マクロ的には正常に終了してしまいます。宣言していない変数に代入した数値などが誤って認識され、正しい計算結果を得ることができません。メソッドでセルの値や書式などを削除できます。Excelの「名前の定義」を使って、指定したセルの範囲に「名前」を付けると、関数内でセルの範囲を参照する時に分かりやすく指定できます。馬番の入ったセル範囲をRange("a2:a17"...Tipsデータの並べ替えソートは数値や文字列を並べ替えることができます。小さい値から大きい値に順番に並べ替える昇順、降順は大きい値から小さい値に並べ替えます。ソート機能を利用するにはRangeオブジェクトのSortメソッドを使用します。Excel2007以降であればSortオブジェクトが使用できます。Tipsショートカットキー設定の方法エクセルでマクロを実行する時に、ショートカットキーを設定しておくと便利です。controlキーを押しながら任意のキーを押すと、指定したマクロを実行できます。コメントをキャンセルメールアドレスが公開されることはありません。※サイトホームTipsスポンサーリンクprofileこの記事を書いたひとgamiraご訪問ありがとうございます。68歳からエクセルのVBAを学び、趣味である競馬の予想プログラム作りにゼロから挑戦。そんな経験から、競馬を題材にすればVBAも興味を持って学習できますので、VBAを始めるきっかけになればという思いから本サイトを立ち上げました。VBAのことは分からなくても競馬のためなら少々は理解しようとがんばれます。自分流の予想プログラムができる頃にはVBAスキルアップ間違いなし、を目標にしています。defined.")}))})()タイトルとURLをコピーしました。