サイトについて      連絡先   検索

VBA デバッグの仕方

はじめに

Excel VBA のデバッグの仕方を紹介します。

プログラムがどのように実行されているか調査することをデバッグといいます。

実行中の変数の値を調べながら、正しく動作しているか、予期せぬ動作になっていないか確認するために、何度もデバッグを繰り返すのがプログラミングです。

デバッグする

デバッグするためにはブレークポイントを設定します。

コードの左側の部分をクリックします。

1

その行が赤くなります。この行にブレークポイントが設定されました。

2

コードを実行すると、ブレークポイントを設定した行で処理が止まります。

3

マウスで変数の上にカーソルを合わせると、この時点で変数に入っている値を表示できます。

4

処理を先に進めるには [デバッグ] をクリックして [ステップ イン] などをクリック、またはF8キーなどのショートカットキーを入力します。

5

F5キーを入力するか、実行ボタンをクリックすると最後まで処理が実行されます。

このように処理を止めて、変数の値を確認しながら処理を進めていくのがデバッグです。

イミディエイト ウィンドウ

イミディエイト ウィンドウを使うと変数の確認や代入ができます。

[表示] をクリックして [イミディエイト ウィンドウ] をクリックします。

6

変数の値を確認

?変数名を入力します。

7

そのままEnterキーを入力すると、ブレークポイントなどで処理が止まっている時点の変数の値が表示されます。

8

Debug.Print (変数名) のように書くと、その時点の変数の値を処理を止めなくても表示できます。


Sub 実行()
    Dim 変数 As Integer
    変数 = 10
    Debug.Print (変数)
    変数 = 20
    Debug.Print (変数)
    変数 = 30
    Debug.Print (変数)
End Sub
10
Tipsfound ではサンプルコードの多くに Debug.Print を使用しています。これでサンプルの動作が確認しやすくなっていると思います。

変数に値を代入

変数名=値を入力後にEnterキーを入力すると、イミディエイト ウィンドウの中で変数に値を代入できます。この機能は処理を戻したときに役に立ちます。

9

ブレークポイントで処理を止めているときに、黄色い矢印を戻したい場所までドラッグします。

13

戻したところから処理が再開されます。ただし変数の値は戻りません。変数の値が 30 なら処理を戻しても 30 が入っています。

14

思ったように動作しないときは、イミディエイト ウィンドウで違う値を代入してから処理を戻してどうなるか確認する、といった作業を繰り返すと、毎回コードを書き直して最初から実行する手間が省けます。

関数の実行

?関数名を入力後にEnterキーを入力して簡単に関数を実行できます。

15

VBA を実行していなくても関数を実行できるので、関数の動作確認に便利です。

ウォッチ ウィンドウ

ウォッチ ウィンドウを使うと変数の値を監視できます。

[表示] をクリックして [ウォッチ ウィンドウ] をクリックします。

6

監視したい [変数] をダブルクリックして [ウォッチ ウィンドウ] にドラッグします。

11

ブレークポイントを設定して処理を止め、ステップ インで 1 行ずつ処理を進めていくと、変数の値が変更されるたび、ウォッチ ウィンドウでも値が変化しているのが確認できます。

12

これで、変数の値を確認するのが楽になります。

関連ページ