「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エラー原因・解決方法
VBAエラー原因・解決方法
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
タイトルとURLをコピーしました