今回はExcel VBAを実行した際に発生した「コンパイルエラー「Next に対応する For がありません。」の対処法について解説していきます。
「Elseに対応するIfがありません。」のエラーについてはこちらで解説をしています。
エラーの原因
エラーメッセージを見えるとFor文の記述に間違いがあるように見えますが、For文の中でIf文を使用した時に「End If」が漏れているのが原因になります。
このコードを実行すると「Next に対応する For がありません。」とメッセージが表示されます。
※下記コードは意図的に「End If」をコメントアウトにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub sample() Dim i As Long For i = 1 To 5 'セルが空でない場合、隣の列に税込み表示 If Cells(i, 1) <> "" Then Cells(i, 2) = Cells(i, 1) * 1.1 'End Ifがないとエラーになる Next i End Sub |
対処法
記述が漏れている「End If」を追記してあげればエラーが消えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub sample() Dim i As Long For i = 1 To 5 'セルが空でない場合、隣の列に税込み表示 If Cells(i, 1) <> "" Then Cells(i, 2) = Cells(i, 1) * 1.1 End If Next i End Sub |
これで実行するとB列のセルに税込み額が表示されます。
まとめ
今回は「Next に対応する For がありません。」と表示された時の対処法について解説を行いました。
エラーメッセージだけで原因をピンポイントに特定することは難しいかもしれませんが、処理がエラーで止まってしまう場合は「IfとEnd IFがペアになっているか」は基本的な部分になるので、落ち着いて確認できるようにしましょう。