VBAでマクロを作成していると、バグ(エラーの発生)との闘いになります。
デバッグ(バグの修正)をする上で一番重要なのは、言うまでもなく、バグが起きた原因を把握することです。
この記事では、バグの原因を調べる方法を紹介します。
VBA例
簡単な具体例を示して説明したいと思います。
ここでは、A列の数字を2倍してB列に出力するマクロを例にして説明します。
コードは下記のようにしています。
Sub example() |
Dim i As Long |
For i = 1 To 5 |
Cells(i, “B”) = Cells(i, “A”) * 2 |
Next |
End Sub |
実際には、こちらのコードにバグは出ませんが、バグが出た時に確認方法する方法を4つ、紹介していきます。
1行ずつ実行する方法(ステップ実行)
まずは、1行ずつ実行しながら確認する方法です。
実行したいコードの中のどこかをクリックしておき、キーボードの「F8」キーを押すごとに、1行ずつ実行します。
下図のように、実行する行に黄色のマーカーが付きます。
1つずつ実行結果などを確認したい時はこの方法が便利です。
また、黄色のマーカーの位置を変えたい時は、「➡」をドラッグして移動させることができます。
実行を途中で止める方法(ブレークポイント)
長いコードを確認する場合、ステップ実行だけでは相当の時間がかかってしまいます。
そこで、目的とする行で実行を止める方法として「ブレークポイント」を使うと便利です。
下図の赤い四角の中で、実行を止めたい行をクリックすると、茶色でマーカーされます(この茶色のマーカー部分をブレークポイントと呼びます)。
この状態で継続(「F5」キーをクリック)すると、ブレークポイントまで実行して止まります。
イミディエイトウィンドウで処理結果を確認する方法
変数や式の値などを調べる方法としては、「イミディエイトウィンドウ」を使うのが便利です。
まず、下図のように「表示」タブの中の「イミディエイトウィンドウ」をクリックします。
表示された「イミディエイトウィンドウ」の中に、
「?」と調べたい変数や数式を入力します。
そのまま「Enter」キーを押すと、その下に現在の変数の値が表示されます。
この場合だと、変数「i」に3が入っていることが分かります。
ウォッチウィンドウ
最後に「ウォッチウィンドウ」を紹介します。
こちらは、値を知りたい変数を設定しておくと、常時、結果が表示されるようになります。
まず、下図のように「表示」タブの中から「ウォッチウィンドウ」を選択して、「ウォッチウィンドウ」を表示させます。
次に、「ウォッチウィンドウ」で表示させたい変数や式をドラッグします。
ここでは、変数「i」をドラッグした例で紹介します。
ドラッグすると下図のように「式」の列に「i」が表示されます。
あとは、「F8」キーなどで実行していると、その時の値が表示されます。
(下図では、変数「i」の値が「3」だということが分かります。
「ウォッチウィンドウ」で確認したい変数を予め全部ドラッグしておけば、一度に確認できるか便利だブゥ!
まとめ
VBAのコードを解析する方法を4つ紹介しました。
僕も、デバッグをする際には、これらの機能を使ってバグを見つけて対応しています。
プログラミングはデバッグの繰り返しとなりますので、是非、覚えておいてくださいね!
コメント