マクロで警告や確認画面で中断されるのを防ぐ方法

スポンサーリンク

警告画面が表示されてマクロが中断される場合

シートを削除するなど、データが復元できなくなる作業をマクロ・VBAで行うときに、以下のような警告・確認画面が表示されてプログラムは中断されます。

29-001

これが長いプログラムや、たくさんのファイルに対しての処理の場合、一回一回確認画面をOKをクリックして閉じるのは面倒です。

今回は警告画面を表示せず、プログラムを継続するコードについてお伝えします。

警告画面が表示されてプログラムが中断されるマクロ(VBAコード)の例

以下のVBAコードは一つ目のシートを削除するコードですが、シート1に何か入力されている場合、警告が表示され、プログラムが中断されます。

Sub シート削除()
Sheets(1).Delete
End Sub

スポンサーリンク

警告・確認画面を表示しなくするVBAコード

警告・確認画面が表示される処理を行うコードの手前に以下のコードを付け加えておくとダイアログが表示されなくなり、プログラムが中断されることがなくなります。

Application.DisplayAlerts = False

警告を表示させないようにしたい部分が終わったところで以下のコードを追加し、警告・確認表示を復活させます。
(ExcelのVBAではどうやら一つのプログラムが終了すると自動で警告表示はまた行われるように戻るみたいですが、念のために記述するのが一般的です。)

Application.DisplayAlerts = True

今回のシートの削除では一連のコードは以下のようになります。

Sub シート削除2()
Application.DisplayAlerts = False
Sheets(1).Delete
Application.DisplayAlerts = True
End Sub

このように記述すると複数のファイルを順に立ち上げ、シートを100個削除するような場合でも、途中で中断されることなく最後までシートが削除されます。

コメント