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処理をさせます。
コメント