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

For に対応する Next がありません
スポンサーリンク

エラー内容

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

For に対応する Next がありません

原因と解決方法

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

(1)For文の閉じ忘れ

原因

繰り返し処理の終わり(For文の処理の最後)に、Nextを書いていないと起こります。

 

解決方法

繰り返し処理の終わりに、Nextを追加します。

※今回の例の場合、「Cells(i, 1).Value = iの」の後ろにNextを追加します。
繰り返し処理でない「MsgBox “終了しました。”」の後ろにNextを追加すると、メッセージが何回も表示されてしまいます。

 

(2)Nextの数が足りない

原因

For文がネスト(入れ子)になっていて、Forに対するNextが足りていない場合にも起こります。

 

解決方法

ForとNextがペアになるように修正します。

※入れ子の場合、繰り返し処理が複雑なので、Nextを追加する場所に注意しましょう。

 

POINT
今回の例のように、字下げを適当にしていると見つけるのに苦労します。
入れ子構造の時は、字下げをして構造が見やすいようにしましょう。
字下げは、コートの先頭でTabキーを押下すれば、右にコードが移動します。
POINT
Forを入力したした後は、中身のプログラムを入力せずに、先にNextを入力しましょう。
その後、For文の中身のプログラムを書くようにすれば、Nextの入力漏れが格段に減ります。

 

関連記事

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