技術情報
[05] メッセージダイアログを表示しない
VBAにより処理をしていると、時々、Excelからメッセージダイアログが表示されてしまうことがあります。
例えば、以下のようなソースで
Sheets(1).Delete
ワークシートを削除しようとすると、


のようなメッセージダイアログが自動的に表示されます。

実行中にこのようなメッセージダイアログがいちいち表示されては人がクリックをしなければならず、連続実行を実現することができません。

このようなメッセージダイアログボックスを表示させない方法として、「Application.DisplayAlerts」プロパティを使う方法があります。
上記のワークシートを削除する例であれば、
Application.DisplayAlerts = false
Sheets(1).Delete
Application.DisplayAlerts = true
のようにします。
「Application.DisplayAlerts」プロパティに「false」をセットすると、それ以降、メッセージダイアログは表示されなくなります。
メッセージダイアログが表示されたときにフォーカスが当たっているデフォルトのボタンをクリックしたものとして、自動的に処理してくれるようになります。
ワークシートを削除する上記の例の場合、メッセージダイアログが表示されたときにフォーカスが当たっているボタン(削除ボタン)を自動的にクリックしますので、メッセージダイアログが表示されずに、ワークシートも削除されるようになります。

しかし、このプロパティを「false」にセットすると、それ以降すべてのメッセージダイアログが非表示となりますので、処理が終わったときにはプロパティの値を「true」に戻しておく必要があります。