If文の中でStopステートメントを使うことで、ループ処理の途中からステップ実行できるようにするサンプルをご紹介しました。
拙著『いちばんやさしいExcel VBAの教本』では、p.110で名前を出すだけに留めているウォッチウィンドウでも、
『いちばんやさしいExcel VBAの教本』p.110より
途中からステップ実行にできます。
ループ処理の途中からステップ実行にする例
以下のSubプロシージャで、
Sub sample()
Sheets.Add Before:=Sheets(1)
Dim i As Long
For i = 1 To 100
Cells(i, "A").Value = i
Next i
End Sub
途中からステップ実行にする例をご紹介します。
※カウンター変数iが98になったら中断する例
メニュー[デバッグ]-[ウォッチ式の追加]をクリック
↓
[ウォッチ式の追加]ダイアログで
[式]欄に「i = 98」と入力
[ウォッチの種類]で「式がTrueのときに中断」をOn
に設定
↓
[ウォッチ式の追加]ダイアログ-[OK]ボタンをクリック
ここで「i = 98」としているのは、ループ処理の最後のほう、というだけですから「i = 97」でも構いません。ループ処理の最後のほうをどれくらいステップ実行したいかによって変更してください。
上記の設定を行ってから先ほどのsample Subプロシージャを実行すると、アクティブなブックの先頭にワークシートが挿入され、カウンター変数iが「98」になった時点、A97セルまで数値の代入が行われた時点で、実行が中断します。
以後はショートカットキー[F8]でステップ実行できます。
If文とStopステートメントを使う場合との違い
考え方は、先日ご紹介したIf文とStopステートメントを使う場合と同じです。
If文とStopステートメントを使った場合は、コードの中に
If i = 98 Then Stop
と条件と中断する指示を書いていたのに対し、ウォッチウィンドウを使う場合は、[ウォッチ式の追加]ダイアログで、条件と「式がTrueのときに中断」という指示を書いています。
最終更新日時:2019-09-21 05:41
Home » VBE(Visual Basic Editor) » ウォッチウィンドウでループ処理の途中からステップ実行に