マクロのデバッグ

スポンサーリンク

目的のマクロを選択して「F5」キーを押して「実行時エラー」のダイアログが表示されたら、「デバッグ」をクリックしてマクロの修正を行います。

実行時エラーの対処
  1. 実行したいマクロ(プロシージャ)を選択
  2. 「Sub/ユーザーフォームの実行」ボタンかキーボードの「F5」キー押す
  3. エラーがあると「実行時エラー」のダイアログが表示されるので「デバッグ」をクリック
  1. エラー発生行は黄色くマーキングされる
  1. オブジェクト型で宣言したオブジェクト変数「OdsRngB」に、オブジェクトを格納するので「Set」がタイプされていなかったためエラーになったので修正します。その後「F8」キーを押すごとに1行ずつマクロを実行することもできます
  2. リセットボタンを押すと黄色のマーカーがとれてマクロの実行がリセットされます

プログラミングはバグ(エラーの発生)との闘いです。その原因を探り、ひとつ一つ解決していくという地道な作業の繰り返しです。ではバグの原因を調べる方法をみてみましょう。

1行ずつ実行していく(ステップイン)

1行ずつ実行しながら確認する基本的な方法です。

実行したいマクロを選択してカーソルがある状態にする
  1. 実行したいマクロ(プロシージャ)を選択
  2. 上図では「Sub odds表作成からEnd Sub」の間のどこかに入力カーソル(縦棒の点滅カーソル)がある状態にする
  3. キーボードの「F8」キーを押すごとに1行ずつマクロを実行することができます
  4. 実行している行は黄色くマーキングされます
マクロの実行を任意の位置で止める(ブレークポイント)

今回の「odds表作成」のマクロは長いので、ステップインだけで1行ずつ確認をすると時間がかかります。そこでブレークポイントを使って任意の行でマクロの実行を止め、そこからステップインで確認するといいでしょう。

  1. 上図「1」のマウスポインタの位置をクリックするか、マクロを止めたい行にカーソルを入れて「F9」キーを押します
  2. 選択した行は茶色くマーキングされます。この部分をブレークポイントといいます
  3. この状態で「3」の継続ボタンか「F5」キーを押すと、ブレークポイントまでマクロは実行されて止まります
  4. 「4」のリセットボタンで実行中の黄色のマーカーが消えます
VBEの「デバッグ」タブ

ブレークポイントは複数設定することができます。

  1. 実行したいマクロにカーソルをおいて「F5」キーを押すとマクロが実行され、最初のブレークポイント「1」で中断します
  2. 再び「F5」キーを押すと次のブレークポイント「2」まで実行されます
  3. 「デバッグ」タブには継続を制御するツールが揃っています
処理結果の確認

変数や式の値などを表示して、意図した結果であるかを確認します。

1.マウスオーバーで確認

設定した変数の値を知りたい時はマウスポインタを変数の上に重ねます。すると変数や式の値を知ることができます。黄色くマーキングされた行は実行前なので変数はまだ「0」です。

2.イミディエイトウィンドウで確認する
  1. 「表示」タブをクリック
  2. 「イミディエイトウィンドウ」をクリック
  1. 「?」の後に調べたい変数や式をタイプします
  1. 「Enter」キーを押すと、その下に指定した変数の値「3」が表示されます
3.ウォッチウィンドウで確認する

「ウォッチウィンドウ」は、値を知りたい変数を設定しておけば、常にウィンドウに値を表示しておくことができます。

  1. 「表示」タブをクリック
  2. 「ウォッチウインドウ」をクリック
  1. ここでは変数「inRowE」を選択します
  2. 「ウォッチ」ウインドウの「式」の列にドラッグします。「caColm」は選択済みなので値は「3」になっています。その後は「 F8」キーを押せば、実行行の値が表示されるので効率良く値の確認ができます

コメント

タイトルとURLをコピーしました