エラー内容
VBAコンパイル時に、「Next に対応する For がありません。」と表示される。
原因と解決方法
原因1. Ifに対応するEnd Ifがない
解説
For文の中で使われているIf文に、対応するEnd Ifがない時に起こります。
このエラーは正直ハマりやすいです。
エラーメッセージが「Next に対応する For がありません。」なので、For文の周りばかりを探してしまい、なかなかエラー原因を見つけられないことがあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub ErrSample04_01() Dim i As Integer For i = 1 To 5 '80点以上だったら、右横のセルに合格を出力 If Cells(i, 1).Value >= 80 Then Cells(i, 2).Value = "合格" '← Ifの終わり End If がない Next End Sub |
解決方法
End Ifを追加して、For文の中の制御構造を正しくします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub ErrSample04_01() Dim i As Integer For i = 1 To 5 '80点以上だったら、右横のセルに合格を出力 If Cells(i, 1).Value >= 80 Then Cells(i, 2).Value = "合格" End If '← End If を追加 Next End Sub |
POINT
「ForとNextがちゃんとあるのにエラーになる・・・原因がわからない。」
となり、ハマりやすいエラーです。
For文の中の、If文など他の制御構造をチェックしましょう。
「ForとNextがちゃんとあるのにエラーになる・・・原因がわからない。」
となり、ハマりやすいエラーです。
For文の中の、If文など他の制御構造をチェックしましょう。