VBAで処理を途中で止めたいときは「脱出構文」を使います。ループを抜けたいときは Exit For、マクロ全体を終わらせたいときは Exit Sub が基本です。目的のデータが見つかったり、エラーが起きたりしたタイミングで無駄な処理を止められます。
この記事では、次の内容を順番に解説します。
- Exit Forの使い方(ループを途中で抜ける)
- Exit Subの使い方(マクロ全体を途中終了する)
- Exit Do・Exit Functionなど他の脱出構文
Exit Forとは?
Exit For は For〜Next のループを途中で抜ける命令です。条件に一致するデータが見つかったタイミングでループを止めたいときに使います。
Sub SearchDone()
Dim i As Long
For i = 2 To 100
If Cells(i, 1).Value = "完了" Then
MsgBox "完了データを見つけました:" & i & "行目"
Exit For ' ここでループを抜ける
End If
Next i
End Sub
「完了」が見つかった時点でループが止まります。見つかった後も最後まで回し続けると無駄な処理が増えるので、Exit For で早めに抜けるのがポイントです。
Exit Subとは?
Exit Sub はマクロ全体(Sub〜End Sub)を途中で終わらせる命令です。入力チェックやエラーチェックの後に使うことが多いです。
Sub ShowMessage()
Dim msg As String
msg = Range("A1").Value
' A1が空白なら処理を中止する
If msg = "" Then
MsgBox "メッセージが空白のため処理を中止します"
Exit Sub
End If
MsgBox "入力されたメッセージ:" & msg
End Sub
A1セルが空白だったら警告を出してそこで終了します。Exit Sub の後のコードは一切実行されません。
その他の脱出構文は?
VBAにはループや処理の種類に合わせた脱出構文があります。
- Exit For:
For〜Nextループを途中で抜ける。 - Exit Do:
Do〜Loopループを途中で抜ける。 - Exit Sub:
Sub〜End Subのマクロを途中で終わらせる。 - Exit Function:
Function〜End Functionの処理を途中で終わらせる。
どれも「今の処理の流れを止めて抜け出す」という考え方は同じです。
まとめ
「もうここで処理しなくていい」と思ったタイミングで脱出構文を使うことで、無駄な処理を省いてコードをシンプルにできます。
- Exit For:Forループを途中で抜ける。データ検索など「見つかったら終わり」の処理に使う。
- Exit Sub:マクロ全体を途中で終わらせる。入力チェックやエラーチェックに使う。
- Exit Do:Do〜Loopを途中で抜ける。
- Exit Function:Function処理を途中で終わらせる。
よくある質問
Exit ForとExit Doの使い分けは?
ループの種類によって使い分けます。For〜Next のループには Exit For、Do〜Loop のループには Exit Do を使います。どちらも「ループを途中で抜ける」という動作は同じです。
Exit Forを使うとNext以降の処理はどうなる?
Exitした時点でループが終了し、Nextの外(ループの次の行)から処理が続きます。Exit Forはループを「抜ける」だけで、マクロ全体を止めるわけではありません。
ネストしたループ(ループの中にループ)で内側だけ抜けるには?
Exit For は直近のループだけを抜けます。外側のループは続きます。外側のループも止めたい場合は、フラグ変数(例:Dim found As Boolean)を使って外側のループ内でも条件チェックをする方法が一般的です。
Exit SubとEnd Subの違いは?
End Sub はマクロの終わりを示す定義で、必ず書く必要があります。Exit Sub はマクロの途中で「ここで終わりにしたい」ときに使う命令です。Exit Sub を書くと、その後の処理を飛ばして End Sub まで一気に進みます。
Exit Subをエラー処理と組み合わせる方法は?
エラーが起きた場合に処理を止めるには On Error GoTo と組み合わせる方法があります。エラーが発生したらジャンプ先のラベルに飛んでメッセージを出し、Exit Sub で終了する形が基本パターンです。
動画で学びたい方へ
「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。
VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。



