Excel VBA | ウォッチ式を使って条件付きで停止する方法(ブレークポイントを置かずに変数監視で止める)

VBA
スポンサーリンク

VBAで「ウォッチ式を使って条件付きで停止する方法」

ブレークポイントを置かずに、変数の値を監視して条件付きで停止する方法が「ウォッチ式」です。ウォッチ式を使うと「特定の変数がある値になったときだけ止める」「値が変化した瞬間に止める」といった柔軟なデバッグが可能です。


1. ウォッチ式の設定方法

  1. VBAエディタでコードを開く
  2. メニューから [デバッグ] → [ウォッチ式の追加] を選択
    • または変数を右クリック → 「ウォッチ式の追加」
  3. ウォッチ式ダイアログで以下を設定
    • :監視したい変数や式(例:i = 500arr(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 = "田中"
  • 停止条件を柔軟に設定できるので、大量ループや複雑な処理で効率的にデバッグできる
  • 監視だけにして即時ウィンドウで値を追うことも可能

👉 ウォッチ式は「特定の値になったときだけ止めたい」「変数の変化を追いたい」ときに非常に便利です。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました