【エクセルVBA】初心者でも簡単!バグの見つけ方(デバッグ方法)

エクセル・マクロ
スポンサーリンク
Pocket

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つ紹介しました。

僕も、デバッグをする際には、これらの機能を使ってバグを見つけて対応しています。

プログラミングはデバッグの繰り返しとなりますので、是非、覚えておいてくださいね!

コメント