ウォッチ式と即時ウィンドウを組み合わせてリアルタイムに変数を追跡する方法
VBAのデバッグでは ウォッチ式 と 即時ウィンドウ を組み合わせることで、変数の変化をリアルタイムに追跡できます。これにより「特定の変数がどう変化しているか」を逐一確認でき、バグの原因を効率的に特定できます。
1. ウォッチ式で監視する
- 変数や式を右クリック → 「ウォッチ式の追加」
- 監視対象を設定(例:
i、arr(i)、balance) - ウォッチ式ウィンドウに追加され、実行中に値が自動更新される
2. 即時ウィンドウでリアルタイム出力
- コードに
Debug.Printを入れて値を出力 - 即時ウィンドウに変数の値が逐次表示される
- 例:
Sub TestWatchImmediate()
Dim i As Integer
For i = 1 To 10
Debug.Print "iの値: "; i
Next i
End Sub
VB3. ウォッチ式と即時ウィンドウの組み合わせ
- ウォッチ式 → 自動的に変数の値を監視(停止条件も設定可能)
- 即時ウィンドウ → 実行中にログを出力して履歴を残す
実例:銀行口座クラスの出金処理を追跡
Public Sub Withdraw(ByVal amount As Currency, ByVal pin As String)
Debug.Print "出金要求額: "; amount
Debug.Print "残高: "; balance
' ウォッチ式で balance を監視し、値が変化したら停止
' 即時ウィンドウには Debug.Print で履歴が残る
If amount > balance Then
Err.Raise vbObjectError + 1003, "BankAccount", "残高不足です"
End If
balance = balance - amount
Debug.Print "出金後残高: "; balance
End Sub
VB- ウォッチ式で
balanceを監視 → 値が変化した瞬間に停止 - 即時ウィンドウで
Debug.Print→ 実行履歴を確認可能
4. ポイントまとめ
- ウォッチ式 → 自動監視、条件付き停止が可能
- 即時ウィンドウ → 実行ログを残して後から追跡できる
- 組み合わせることで「リアルタイム監視+履歴確認」が可能になり、デバッグ効率が大幅アップ
👉 このテクニックを使うと「大量ループの中で特定の値だけ止める」「変数の変化を履歴として残す」などが簡単にできます。


