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