【VBA道場】#34 マクロを一時停止する
問題
1~100までの数字をA列に入力し、50になったら一度マクロを停止してください。
完成見本
解答
Sub vba_doujyou_34()
Dim i As Long
'1~100まで繰り返す
For i = 1 To 100
'A列にiの数字を転記
Cells(i, 1).Value = i
'変数iが50になったらマクロを停止
If i = 50 Then Stop
Next i
End Sub
サンプルファイル(マクロ有)
VBA道場34 サンプルファイル(マクロ有)
1 ファイル 11.30 KB
解説
stop:マクロを一時停止する
マクロの実行を一時停止するのに、一般的なのはブレークポイントを設定することでしょう。
ブレークポイントは、左側のバーを押すと設定することができます。
実行すると、ブレークポイントの前で処理が必ず止まります。
ローカルウィンドウの中で、変数の状態を確認することもできます。
今回はこれよりも柔軟性のある「Stopステートメント」を挿入していきます。
今回は、100回の繰り返しの中で50回になったら止めるという操作を行います。
Sub vba_doujyou_34()
Dim i As Long
'1~100まで繰り返す
For i = 1 To 100
'A列にiの数字を転記
Cells(i, 1).Value = i
'変数iが50になったらマクロを停止
If i = 50 Then Stop
Next i
End Sub
変数iが50になったらマクロを停止は、以下のコードで指定しています。
If i = 50 Then Stop
では、実行してみましょう。
コードを実行し、50回になったところで停止しました。
ブレークポイントでは、回数の指定はできないので「Stopステートメント」の方が柔軟性がありますね。
おわりに
今回は、「Stopステートメント」を使って、ブレークポイントよりも柔軟にマクロを一時停止していきました。
開発中のデバックでは非常によく使う手法なのでしっかりとマスターしましょう。
今日はここまで!
おすすめ参考書
Amazon
たった1秒で仕事が片付くExcel自動化の教科書
いちばんやさしいExcelVBAの教本
ExcelVBA逆引き辞典 パーフェクト
楽天
いちばんやさしいExcelVBA
|
すらすら読めるExcelVBA
|
VBA逆引き大辞典
|