【VBA道場】#34 マクロを一時停止する

ExcelVBA

【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

サンプルファイル(マクロ有)

 

解説

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

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

スラスラ読めるExcel VBAふりがなプログラミング [ リブロワークス ]
価格:2035円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

 

VBA逆引き大辞典

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Excel VBA逆引き辞典パーフェクト第3版 [ 田中亨 ]
価格:2838円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

タイトルとURLをコピーしました