「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 ForSubから抜ける時、Exit SubFunctionから抜ける時、Exit Function

 

(2)他の繰り返し処理でExit Forを使っている

原因

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

 

解決方法

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

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

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

関連記事

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