For文の繰り返し処理を中断する方法についてご説明します。
For文は何千何万回という処理を自動的に繰り返し実行する事ができますが、
連続して行う処理が重い場合や繰り返す回数が多い場合は処理時間が長くなってしまいがちです。
繰り返し処理を行う必要がなくなったらループを抜け、余分な処理を行わないようにしましょう。

Exit Forを使用したFor文の構文

For 変数 = 初期値 To 最終値
	~処理A~
	Exit For
	~処理B~
Next 変数
	~処理C~

For文を中断する方法はとてもシンプルで、処理を終了したい箇所に『Exit For』と記述するだけです。
上の例では処理Aを行った後にExit Forでループを抜けているため処理Bは行われず続けてループの外の処理Cが実行されます。
それでは、実際にExit Forを使用したコードを実行してみましょう。
Exit Forでループを抜ける
<コード>

    Dim i As Integer
    Dim Goukei As Currency   '合計金額を格納'
    Goukei = 0
    For i = 3 To 12
        If Range("B" & i) <> "S" Then 'サイズがSのセルが終了したらループ終了'
            Exit For
        End If
        Goukei = Goukei + Range("D" & i)
    Next i
    MsgBox "Sサイズの合計売上は" & Goukei & "円です"

<実行例>

例ではループ処理の始めにA列(サイズ)のチェックを行い、
Sではないセルに到達したら合計金額の合算を終了しています。
このようにExit ForはIf文を組み合わせて使用するパターンが一般的です。
また、Exit Forを1つのループ内に複数記述することもできます。
For文がネストしている場合
ループ処理を多重で行いたい場合、For文をネストさせることが可能です。
このようなFor文をExit Forで抜けた場合、どのような動作になるか確認してみましょう。
<コード>

Dim i As Integer, j As Integer
Dim Goukei As Integer   '合計枚数を格納'
Goukei = 0
For i = 4 To 12 'チェック対象セルを縦方向へ移動
    For j = 2 To 6 'チェック対象セルを横方向へ移動
        If Not IsNumeric(Cells(i, j)) Then  '数値ではないセルに到達したらループを抜ける'
            j = 2
            Exit For
        End If
        Goukei = Goukei + Cells(i, j)
    Next j
    If Not IsNumeric(Cells(i, j)) Then  '数値ではないセルに到達したらループを抜ける'
        Exit For
    End If
Next i
MsgBox "年賀状の合計枚数は" & Goukei & "枚です"

<実行例>

変数jによりカウントされている内側のループは作業対象が数値ではなくなった時点でExit Forにより集計を終了しています。
しかし、iによりカウントされている外側のループ処理は継続して実行されていることが分かります。
つまり、For文がネストしている場合はExit Forが囲まれている部分のループ処理を中断するということになります。

おわりに

Exit Forを使用するとFor文のループから抜けることができ、不要な繰り返し処理を中断することができます。
しかし、For文がネストしている場合はやはりコードが複雑な動きをすることになりますので、
コメントなどを活用して明確に記述するようにしましょう。