TOP

VBA-レッスン 2. デバッガー (Debugger)

YouLibreCalc for Excel logo

プログラム コードをデバッグするための VBA 環境のツール。デバッガを使用できることは、VBA を作成する人にとって非常に重要です。これは、コードがどのように動作するかを確認し、コード内のエラーを見つけて修正するために必要です。


Visual Basic Editor (Alt+F11) を開きます。 その中にモジュールを 作成し、次のコードを記述します。

 Sub LearningDebug()
    Dim A As Long, B As Long, C As Long, D As Long

    D = 0
    A = 10
    Debug.Print "A =" + Trim(Str(A))
    B = 15
    Debug.Print "B =" + Trim(Str(B))
    C = A + B
    Debug.Print "C =" + Trim(Str(C))
    C = Round(C / 5)
    Debug.Print "C を 5 で割ります: C =" + Trim(Str(C))
    C = Round(C / D) 'ゼロで割ることは不可能であるため(D = 0)、ここではエラーが発生します。
End Sub

Ctrl+G を押すと、Immediate ウィンドウが下部に表示されます。このウィンドウでは、マクロの操作中に変数の値を変更したり、以前にモジュールに書かれていない別のコードを VBA で実行したりできます。

モジュールのコード内にカーソルを置いて F5 キーを押すと、モジュールが完全に実行されます。 F8 キーを押すと、コードは 1 行だけ実行されます。次に F8 キーを押すと、コードの次の行が実行され、以下同様に続きます。コード全体をステップ実行できます。 F9 ボタンを使用してブレークポイントを作成できます。その後、F5 キーを押してコードを実行すると、コードは指定された行まで実行されてから一時停止します。その後、前述の F5 または F8 ボタンを使用して続行できます。

コードをよく見ると、変数 A、B、C、D に番号が割り当てられていることがわかります。 Debug.Print "text" 行は、変数で何が起こっているかを確認するために、前に開いた Immediate ウィンドウに指定したテキストを出力します。 Str (A) は数値をテキスト値に変換します。そして Trim () で左右のスペースを削除します。演算子 Round (C) は、算術規則に従って値を整数に丸めます (したがって、計算の結果を整数変数 Long に代入します。これは、整数である必要があることを意味します)。コードの最後では、デバッガーの使用を練習するために、特に偽の状況を作成しました。

コードの内側に立って、F8 を 4 回押します。次に実行される行は黄色でマークされます。さまざまな変数の上にマウスを置きます。同時に、ポップアップ ウィンドウが表示され、値が表示されます。まだ値が割り当てられていない変数はゼロに等しくなります。もう一度 F8 キーを押します。 Immediate ウィンドウに次の行が表示されます。 A = 10 これで、Immediate ウィンドウで変数 A の値をすぐに変更できるようになります (たとえば、8 に変更します)。これを行うには、Immediate ウィンドウの新しい行に「A = 8」と入力し、Enter を押します。ここで、変数 A の上にマウスを移動すると、その値が 8 であることがわかります。マウスを移動せずに値を確認するには、Immediate ウィンドウに値を表示します。これは次のように行われ、ウィンドウの空行に Immediate: ?A と入力して Enter を押します。サイン?ウィンドウ内の Immediate は、コード内の Debug.Print と同じ意味です。そのように書く方が簡単で短いです。リクエストの結果である番号がすぐに表示されます。

コードの最後の行 (C = Round (C / D)) にカーソルを置き、F9 キーを押します。ブレークポイントが表示されます。同じボタンで削除できますが、まだ削除しません。 F5 を押すと、プログラムはすべての行を実行し、最後の行で停止します。 Immediate ウィンドウに、変数への値の割り当てに関するメッセージが表示されます。コードの最後の行に到達しました。ゼロによる除算が含まれているため、エラーがスローされます。 F8 キーを押して自分の目で確認してください。表示されるウィンドウで、「Debug」をクリックします。 End を押すとプログラムの実行が停止するので、プログラムを終了させます。

変数 D の値を変更することで状況を修正できます。現在、変数 D はゼロに等しくなります。 Immediate ウィンドウで、空の行に「D = 2」というテキストを入力し、Enter を押します。コードの最後の行では、ゼロではなく 2 で除算し、エラーを回避しています。 F5 を押すと、プログラムはエラーなしで作業を完了します。

コードを変更して、デバッガーの使用を練習してみてください。信じてください、それはあなたの人生をずっと楽にしてくれるでしょう。