今までVBAでファイル読み込みやグラフ作成の方法を紹介してきましたが、今回はデバッグの方法を紹介します。
デバッグ方法は知っておいて損はない。
いざという時に役立ちますよ。
VBAでデバッグする方法は2通りあります。
- ウォッチ式で変数の値を見るやり方
- イミディエイトウィンドウに値を表示するやり方
初心者にも分かり易いようにキャプチャ多めで紹介していきます。
今回の試作プログラム
デバッグの方法を紹介するにあたり試作したプログラムの紹介です。
こんな感じのユーザーフォームに数値を設定してもらい、
1から入力数字までを足した値を表示します。
ソースコードは以下。
標準モジュールのソースコード
Public inp_no As Integer 'ユーザーフォームで入力された数値
Sub main()
Dim inp As Integer
Dim sum As Integer
Dim i As Integer
'数値をGet
UserForm1.Show
inp = inp_no
'0以下の場合は終了
If inp < 1 Then
MsgBox "1以上の数を入力してください"
Exit Sub
End If
sum = 0
For i = 1 To inp
sum = sum + i
Next i
MsgBox "1から" + CStr(inp) + "までの合計は「" + CStr(sum) + "」です。"
End Sub
ユーザーフォームのソースコード
Private Sub CommandButton1_Click()
inp_no = TextBox1.Value
Unload Me
End Sub
ウォッチ式で値を見る
1つ目のデバッグ方法は、ウォッチ式を使う方法です。
コードにデバッグ文を追加することなく、そのままのコードでデバッグできます。
まず、ウォッチウィンドウを表示しましょう。
「表示」タブから「ウォッチウィンドウ」を選択します。
ウォッチウィンドウが表示できたら、ウォッチ式を追加しましょう。
ウォッチ式の追加は、ソースコード上で変数を選択した状態でし、「ウォッチ式の追加」を選択します。
対象やウォッチの種類を選択するフォームが出ますが、基本的には変更しなくて大丈夫です。そのままOKをクリック。
これでウォッチウィンドウに変数が追加されました。
次に、ブレークポイントを設定します。
ブレークポイントは、プログラムを実行中に一時的に止めたい(ブレークしたい)箇所のソースの左側をクリックして設定します。
ブレークポイントが設定されると、下図のように左側に●がつき、赤っぽい色がつきます。
ウォッチ式とブレークポイントで準備完了!
プログラムを実行してみましょう。
ブレークポイントで実行が中断し、ウォッチウィンドウの変数に値が表示されています。
変数の値を確認できたら、実行を再開させましょう。
再開方法は上側にある「▶(継続(F5))」をクリックします。(またはF5キーを押す)
このように、「ブレークポイントで中断→変数の値を確認→実行再開」を繰り返すことでデバッグしていきます。
イミディエイトウィンドウに書き出す
ウォッチ式を設定してブレークポイントで止まった時に値をチェックするやり方は簡単でコードをいじる必要がありませんが、いちいちプログラムの実行が止まるのが難点ですよね。
そんな時は、もう一つのデバッグのやり方で、プログラムの実行を止めずに値をチェックしましょう。
まずはイミディエイトウィンドウを表示します。
「表示」タブより、「イミディエイトウィンドウ」を選択します。
イミディエイトウィンドウでは、プログラム実行中の変数の値や関数の結果を表示させることができます。
実行の途中経過を確認するのに便利な機能です。
イミディエイトウィンドウへの表示方法は、表示させたい箇所に以下の文を追加します。
Debug.Print 表示したい変数など
今回はFor文の最中にiとsumを表示させてみます。
For i = 1 To inp
sum = sum + i
Debug.Print i, sum
Next i
このようにしてみました。
実行した結果は
このようになります。
コードの中にデバッグ文が入ってもいい方は、イミディエイトウィンドウを使うやり方のほうが楽でいいですね。
というわけで、今回はVBAでデバッグをやり方を2通り紹介しました。
ぜひ、活用してみてくださいね。
んじゃ、また~
おススメのプログラミング独学方法はこちらの記事にまとめました!
コメント