VBAで「ウォッチ式を使って条件付きで停止する方法」
ブレークポイントを置かずに、変数の値を監視して条件付きで停止する方法が「ウォッチ式」です。ウォッチ式を使うと「特定の変数がある値になったときだけ止める」「値が変化した瞬間に止める」といった柔軟なデバッグが可能です。
1. ウォッチ式の設定方法
- VBAエディタでコードを開く
- メニューから [デバッグ] → [ウォッチ式の追加] を選択
- または変数を右クリック → 「ウォッチ式の追加」
- ウォッチ式ダイアログで以下を設定
- 式:監視したい変数や式(例:
i = 500、arr(i) = 12) - ウォッチの種類
- 式が True のとき停止
- 式の値が変化したとき停止
- 式の値を監視するだけ(停止しない)
- 式:監視したい変数や式(例:
2. 使用例:ループの中で特定の値だけ止める
Sub TestWatch()
Dim i As Integer
For i = 1 To 1000
Debug.Print i
' ウォッチ式: i = 500
' → i が 500 のときだけ停止する
Next i
End Sub
VB- ブレークポイントを置かなくても、ウォッチ式で「i = 500」のときだけ止まる
3. 応用例:変数が変化した瞬間に止める
Sub CheckArray()
Dim arr(1 To 10) As Integer
Dim i As Integer
For i = 1 To 10
arr(i) = i * 2
Debug.Print arr(i)
' ウォッチ式: arr(i)
' → 値が変化するたびに停止する
Next i
End Sub
VB- 「値が変化したとき停止」を選ぶと、変数が更新される瞬間に止まる
4. ポイントまとめ
- ブレークポイント不要 → ウォッチ式だけで条件付き停止が可能
- 式は通常のVBA式(例:
x > 100,strName = "田中") - 停止条件を柔軟に設定できるので、大量ループや複雑な処理で効率的にデバッグできる
- 監視だけにして即時ウィンドウで値を追うことも可能
👉 ウォッチ式は「特定の値になったときだけ止めたい」「変数の変化を追いたい」ときに非常に便利です。

