「If ブロックに対応する End If がありません。」の原因・解決方法

If ブロックに対応する End If がありません。

エラー内容

VBAコンパイル時に、「If ブロックに対応する End If がありません。」と表示される。

If ブロックに対応する End If がありません。

原因と解決方法

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

原因1. If文の閉じ忘れ

解説

If文の処理の終わりで、End Ifを書いていないと起こります。

 

解決方法

If文の処理の終わりに、End If を追加します。

 

原因2. End Ifの数が足りない

解説

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

 

解決方法

IfとEnd Ifがペアになるように修正します。

 

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

 

関連記事

VBAエラー原因・解決方法
成果を出す5つのポイント
タイトルとURLをコピーしました