「For…Next 内に対応する Exit For がありません。」の原因・解決方法

For...Next 内に対応する Exit For がありません。

エラー内容

VBAコンパイル時に、「For…Next 内に対応する Exit For がありません。」と表示される。

For...Next 内に対応する Exit For がありません。

原因と解決方法

おもに次の2つの原因と解決方法が考えられます。

原因1. For文の外にExit Forがある

解説

Exit Forは、For文の繰り返し処理から、途中で抜ける命令です。

なので、次のプログラムのようにFor文の外にExit Forを書いていると、コンピュータは「どこから抜ければいいの?」となってしまい、エラーとなります。

 

解決方法

今回の例は、For文の外側にExit Forがあるのがダメです。サブルーチン(sub)から抜けたいので、Exit Subに修正します。

サブルーチン(sub)ではなく、ファンクション(Function)から抜ける場合は、Exit Functionになります。

POINT
Forから抜ける時、Exit For
Subから抜ける時、Exit Sub
Functionから抜ける時、Exit Function

 

原因2. 他の繰り返し処理でExit Forを使っている

解説

Do Untilなど他の繰り返し処理で、Exit Forを使っている場合にエラーが発生します。

 

解決方法

対応する命令に変更します。

今回はDo Untilなので、途中で処理を抜ける場合はExit Doを使います。

POINT
「Exit ○○」の○○部分は、途中で抜ける処理を表しています。何の処理から抜けるのか、一度確認してみてください。

関連記事

VBAエラー原因・解決方法
成果を出す5つのポイント
タイトルとURLをコピーしました