Access VBA デバッグとブレークポイントの設定・解除について。

VBA のプログラムをデバッグする時に、ブレークポイントを設定すると、特定の行で実行を一時中断することができます。

プログラムを中断すると、1行ずつ実行してみたり、途中で変数の値を確認できます。

デバッグでよく使う機能が、「ステップ イン」、「ステップ オーバー」、「ステップ アウト」の3つです。まずはこの3つの違いをつかんでください。


【1】Access で VBEを起動し、標準モジュールの test4 を表示します。

access-vba-132.gif

*VBEは「Altキー」+「F11キー」で起動できます。


【2】main()の1行目の左部分をマウスでクリックします。

access-vba-116.gif

*デバッグツールバーの「ブレークポイントの設定/解除」でも可能


【3】ブレークポイントが設定されました。

access-vba-117.gif

左側にマークが表示され、ブレークポイントを設定した行の色が変わります。


【4】Subプロシージャの main() から、プログラムを実行すると、ブレークポイントを設定した行で、プログラムが中断します。

access-vba-118.gif

*黄色く反転している行は、まだ実行されていません。(重要)


【5】デバッグツールバーの「ステップ オーバー」をクリックします。

access-vba-119.gif


【6】イミディエイト ウィンドウに、1行結果が表示されました。

access-vba-120.gif


【7】続けて「ステップ オーバー」を数回クリックして、「End Sub」まで処理を進めると、すべての結果が表示されます。

access-vba-121.gif

*まだ End Sub は行なわれていません。


【8】さらに「ステップ オーバー」をクリックすると、プログラムがすべて実行された状態になります。

access-vba-122.gif

*黄色く反転している行が無い状態


【9】イミディエイト ウィンドウをクリアしてください。

access-vba-123.gif


【10】もう一度、Subプロシージャの main() から、プログラムを実行し、今度は「ステップ イン」でプログラムを進めてください。

access-vba-124.gif


【11】「ステップ イン」の場合は、Functionプロシージャの中に入りました。

access-vba-125.gif

ステップオーバーとステップインの違いがわかりましたか?

ステップオーバーは、呼び出したプロシージャの処理が済んだ状態で、そのまま次の行に移ります。それに対してステップインは、呼び出したプロシージャの中まで進みます。


【12】キーボードの「F8キー」はステップインのショートカットです。何度か押して For Next ステートメントを数回転してください。


【13】途中でマウスポインタを変数に合わせると、値が表示されます。

access-vba-126.gif


【14】次はまだ Functionプロシージャの中にいる状態の時に、「ステップ アウト」をクリックします。

access-vba-127.gif


【15】ステップ アウトは、Functionプロシージャの残りの処理を全て行なった後、呼び出し元の Subプロシージャに戻ります。

access-vba-128.gif


【16】ステップ イン、ステップ オーバー、ステップ アウトの違いを意識しながら、何度もプログラムを追ってみてください。またブレークポイントの場所を変えたり、複数設定してみてください。


【解説】

(1)デバッグが終わり、プログラムの実行を中断する必要が無くなれば、ブレークポイントのマークをクリックするだけで、解除できます。

access-vba-136.gif


(2)プログラムの実行を中断している時に、イミディエイト ウィンドウで、変数の値をチェックすることもできます。

access-vba-133.gif

*この方法は、変数に SQL文などの長い文字列が代入されている時に便利です。


(3)「継続」をクリックすると、次のブレークポイントまで処理が進みます。

access-vba-137.gif

もしブレークポイントがなければ、最後まで実行されます。

・複数あれば次のブレークポイントまで
access-vba-139.gif


(4)プログラムを中止したい場合は、「リセット」をクリックします。

access-vba-138.gif


(5)ショートカット
・「F8キー」 ステップイン
・「Shift + F8キー」 ステップオーバー
・「Ctrl + Shift + F8キー」 ステップアウト


慣れてくると、ブレークポイントを何処と何処に設定して、ステップ インを使うか、ステップ オーバーを使ったほうが良いのかという判断が、簡単にできるようになります。

そうなるとデバッグの技術も上達します。


スポンサードリンク

スポンサードリンク






Access VBA 初心者入門講座 TOPへ