【VBA入門】知っておきたいデバッグのやり方

VBAデバッグのやり方
  • URLをコピーしました!
※当ブログではアフィリエイト広告を表示しています

今まで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つ目のデバッグ方法は、ウォッチ式を使う方法です。

コードにデバッグ文を追加することなく、そのままのコードでデバッグできます

まず、ウォッチウィンドウを表示しましょう。

「表示」タブから「ウォッチウィンドウ」を選択します。

ウォッチウィンドウの表示1
表示→ウォッチウィンドウ
ウォッチウィンドウの表示2
画面下側にウォッチウィンドウが表示される

ウォッチウィンドウが表示できたら、ウォッチ式を追加しましょう。

ウォッチ式の追加は、ソースコード上で変数を選択した状態でし、「ウォッチ式の追加」を選択します。
対象やウォッチの種類を選択するフォームが出ますが、基本的には変更しなくて大丈夫です。そのままOKをクリック。

ウォッチ式の追加1
変数上で右クリック→ウォッチ式の追加
ウォッチ式の追加2
必要に応じて変更してから「OK」をクリック
ウォッチ式の追加3
変数が追加されたウォッチウィンドウ

これでウォッチウィンドウに変数が追加されました。

次に、ブレークポイントを設定します。

ブレークポイントは、プログラムを実行中に一時的に止めたい(ブレークしたい)箇所のソースの左側をクリックして設定します。

ブレークポイントが設定されると、下図のように左側に●がつき、赤っぽい色がつきます。

ブレークポイントを設定
ソースの左側の枠をクリックしてブレークポイントを設定

ウォッチ式とブレークポイントで準備完了!

プログラムを実行してみましょう。

デバッグの様子1
ブレークポイントで実行が止まった様子

ブレークポイントで実行が中断し、ウォッチウィンドウの変数に値が表示されています。

変数の値を確認できたら、実行を再開させましょう。

再開方法は上側にある「▶(継続(F5))」をクリックします。(またはF5キーを押す)

デバッグの様子2 実行の再開
実行を再開するには「継続(F5)」をクリック
デバッグの様子3
3回目のブレークの様子

このように、「ブレークポイントで中断→変数の値を確認→実行再開」を繰り返すことでデバッグしていきます。

イミディエイトウィンドウに書き出す

ウォッチ式を設定してブレークポイントで止まった時に値をチェックするやり方は簡単でコードをいじる必要がありませんが、いちいちプログラムの実行が止まるのが難点ですよね。

そんな時は、もう一つのデバッグのやり方で、プログラムの実行を止めずに値をチェックしましょう

まずはイミディエイトウィンドウを表示します。

「表示」タブより、「イミディエイトウィンドウ」を選択します。

イミディエイトウィンドウの表示1
表示→イミディエイトウィンドウ
イミディエイトウィンドウの表示2
画面下側にイミディエイトウィンドウが表示される

イミディエイトウィンドウでは、プログラム実行中の変数の値や関数の結果を表示させることができます。

実行の途中経過を確認するのに便利な機能です。

イミディエイトウィンドウへの表示方法は、表示させたい箇所に以下の文を追加します。

Debug.Print 表示したい変数など

今回はFor文の最中にiとsumを表示させてみます。

    For i = 1 To inp
        sum = sum + i
        Debug.Print i, sum
    Next i

このようにしてみました。

実行した結果は

イミディエイトウィンドウ 実行結果の表示
イミディエイトウィンドウに表示した例

このようになります。

コードの中にデバッグ文が入ってもいい方は、イミディエイトウィンドウを使うやり方のほうが楽でいいですね。


というわけで、今回はVBAでデバッグをやり方を2通り紹介しました。

ぜひ、活用してみてくださいね。

んじゃ、また~

おススメのプログラミング独学方法はこちらの記事にまとめました!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

関連記事

応援よろしくお願いします☆

この記事を書いた人

理系夫婦の妻のほうです。
大学、大学院(修士)で物理を専攻。
2016年に長女を出産、2021年に長男を出産。
フルタイム勤務ワーママ→休職→専業主婦。

コメント

コメントする

目次