拙著『いちばんやさしいExcel VBAの教本』のp.089に「行が赤茶色になるブレークポイント」というワンポイントを書き、
このサイト『インストラクターのネタ帳』でも補足記事を書いています。
こういったブレークポイントの使い方を知った方からは、
「ループ処理の最後のほうだけステップ実行するにはどうすればいいのでしょう?」
といったご質問をいただくことがあります。
ループ処理の途中からステップ実行にするサンプル
いくつかの方法のうち、拙著で初めてExcelマクロを作り始めたという方には、If文とStopステートメントの組み合わせを、知っていただきたいと考えています。
Sheets.Add Before:=Sheets(1)
Dim i As Long
For i = 1 To 100
' If i = 98 Then Stop
Cells(i, "A").Value = i
Next i
End Sub
If文とStopステートメントでループ処理の途中からステップ実行に
まずは上記のSubプロシージャを実行してください。
アクティブなブックの先頭にワークシートが挿入され、A1セルからA100セルに1から100までの整数が入力されます。
つづいてコメントアウトされている「'If i = 98 Then Stop」の先頭の「'」を削除し非コメント化してから実行すると、今度はカウンター変数iが「98」になった時点で中断モードになり、以後[F8]キーでステップ実行できるようになります。
ここで「i = 98」という条件にしているのは、ループの最後のほうというだけで、「i = 97」でも「i = 96」でも構いません。念のため。
Stopステートメントは、実際に使うマクロの中で通常は使うことのない構文ですが、マクロの作成段階では便利です。
ウォッチウィンドウでもループ処理の途中からステップ実行できますが、最初はIf文とStopステートメントを使う方法がおすすめです。
最終更新日時:2019-09-21 05:43
Home » いちばんやさしいExcel VBAの教本 » ループ処理の途中からステップ実行に-IfとStop