関数・メソッド

For文を途中で抜ける(ループを途中で終了させる)【break】【Exit】【ExcelVBA】

For文を途中で抜けたい(ループを途中で終了させたい)

VBAマクロを実行する際、For~NextやDo~Loopを使用する際、
条件を満たした場合など、ループ処理を途中で抜けたい場合があります。※多言語での「break」

その場合、Exitステートメントを使用する事で、途中でループを強制終了させることが可能です。
例)For~Next→「Exit For」、Do~Loop→「Exit Do」

For文を途中で抜ける(ループを途中で終了)サンプルコード


Public Sub sample()
    Dim r As Long
     
    For r = 1 To 10
        '■セル値が空白の場合、ループを終了させる(Exit For)
        If Cells(r, 1) = "" Then
            Exit For
        End If
    Next r
     
    '■途中で抜けたかチェックする
    Debug.Print "r=" & r
End Sub

注意点

  • ループを複数(入れ子)の場合、Exitステートメントで抜けるのはあくまでも、内側の該当処理のみです。
    外側も抜けたい場合はさらに、Exitステートメントで抜けましょう。
  • ループを途中で抜けるではなく、処理を飛ばす場合はGotoで疑似的にContinue処理をさせます。

関連記事

コメント

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