【VBA】シートが削除できない
どうも、開発部のSです。
今回はVBAの開発で躓いた所について紹介いたします。
今回紹介する問題は、非常に基礎的な問題だったのですが、
原因を探すのに手間取った経験があるので、 手間取った理由も含めて紹介します。
問題はシートの削除を実施した際に処理は正常終了するが、
シートは削除されないという問題です。
原因は単純に削除する前に警告を無視する設定を行わなかったこと でした。
VBAではシートに何か書かれてる状態で、 シートを削除しようとすると警告が発生します。
なので、 この問題を解決するには削除前に警告を無視する設定が必要です。
警告を無視する設定
Application.DisplayAlerts = False
解決するのは上記の一文を追加するだけなので、 難しくありませんが、
原因を探すのに二つ程、手間取る点がありました。
・シートを削除する時は、ほとんど警告も一緒に設定しますが、
設定せずに削除してしまった場合は、エラーが出ないので
どこが原因で発生してるか分かりづらい事。
・ エクセルを表示しながら編集するなら警告が表示されるので分かり やすいですが、
エクセルを非表示にしながら編集していると警告も表示されないの で、
警告が原因だと分かりづらい事。
シートを非表示しながら編集する事が多々ありますが、 シートの編集時はシートを
表示することで警告に関しても、 編集中の動きに関しても確認しやすくなるかと思います。
VBAでは良く使う設定ですが、 設定しなかった場合に気づきにくい事があるので、
シートが削除できない方の参考になればと思います。