「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の入力漏れが格段に減ります。

 

関連記事

タイトルとURLをコピーしました