「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エラー原因・解決方法
成果を出す5つのポイント
タイトルとURLをコピーしました