VBAで条件によってループを抜ける(Exit Do)

Do WhileやDo Untilなどのループ内で、特定の条件が成立したときに強制的にループを抜けたい場合には、Exit Doを使います。

Exit Doをうまく活用することで、無駄な処理を省き、効率的なコードが書けるようになります。


1. Exit Doとは?

Do ~ Loop構文の中で使える命令で、ループ中に指定した条件を満たした時点で即座にループを終了します。


2. 基本構文と使用例

例:数値が見つかったらループを終了する

Dim i As Integer
Dim numbers(1 To 5) As Integer

'配列に値を代入
For i = 1 To 5
    numbers(i) = i * 2
Next i

'8が見つかるまでループ
i = 1
Do While i <= 5
    If numbers(i) = 8 Then
        MsgBox "見つかりました!"
        Exit Do '条件成立 → ループ終了
    End If
    i = i + 1
Loop

3. Exit Doの使いどころ

✅ 検索処理で条件一致時に終了したいとき

大量データの中から1つだけ探したいときなど、条件に一致した時点で処理を終了したいときに便利です。

✅ 無限ループの脱出手段として使う

例えば Do While True のような無限ループを書いた場合でも、Exit Doを使って条件に応じてループを制御できます。

Do While True
    inputValue = InputBox("終了するには 'end' と入力してください")
    If inputValue = "end" Then
        Exit Do
    End If
Loop

4. Exit DoとExit Forの違い

構文対応するループ構造
Exit DoDo While / Do Until
Exit ForFor / For Each

使うループに合わせて、適切な「Exit ~」を選びましょう。


5. まとめ

Exit Doを活用することで、ループの柔軟な制御が可能になります。
特に、条件一致でループを中断したいときや、無限ループに安全装置を設けたいときに役立ちます。

処理の流れを整理しながら、読みやすく効率的なコードを書くために、ぜひ活用してみてください。

コメント

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