「End With が必要です。」の原因・解決方法

End With が必要です

エラー内容

VBAコンパイル時に、「End With が必要です。」と表示される。

End With が必要です

原因と解決方法

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

原因1. Withの閉じ忘れ

解説

Withステートメントの終わりで、End Withを 書いていないと起こります。

 

解決方法

Withステートメントの終わりに、End With を追加します。

 

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

解説

Withステートメントがネスト(入れ子)になっていて、Withに対するEnd Withが足りていない場合です。

字下げをしていないと見つけにくく、End Withが1つあるので「End Withがちゃんとあるのにエラーになる・・・」とハマりやすいです。

Withが2つあるので、終わりを意味するEnd Withももちろん2つ必要です。

 

解決方法

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

POINT
入れ子構造の時は、字下げをして構造が見やすいようにしましょう。
字下げは、コードの先頭でTabキーを押下すればOKです。
POINT
Withを入力したした後は、中身のプログラムを入力せずに、先にEnd Withを入力しましょう。
その後、Withの中身のプログラムを書くようにすれば、End Withの入力漏れが格段に減ります。

 

関連記事

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