確認メッセージを非表示にする(DisplayAlertsプロパティ)|Excel VBA |
Excelは特定の操作を実行した時に、さまざまな確認あるいは警告のメッセージを表示します。
たとえば、シートを削除する際には、「選択したシートに、データが存在する可能性があります。データを完全に削除するには、[削除]をクリックしてください。」といったメッセージを表示します。
確認のボタンが押されるまで処理は中断したままになるので、複数のシートを一括して削除するときなど、確認のメッセージを表示したくない場合はApplicationオブジェクトのDisplayAlertsプロパティにFalseを設定します。
構文 Application.DisplayAlerts = 設定値 設定/取得
設定項目 | 内容 |
---|---|
設定値 | 警告や確認を促すメッセージの表示を True(表示する) / False(表示しない) |
次のサンプルで、DisplayAlertsプロパティによる動作の違いを確認できます。
Sub Sample()
On Error Resume Next
Worksheets.Add.Name = "Dummy1"
MsgBox "追加したシートを削除します"
ActiveSheet.Delete '---(1)
Application.DisplayAlerts = False '---(2)
Worksheets.Add.Name = "Dummy2"
MsgBox "追加したシートを削除します"
ActiveSheet.Delete '---(3)
Application.DisplayAlerts = True '---(4)
End Sub
(1)のステートメント実行時には、確認メッセージが表示されます。
ここで[キャンセル]ボタンを選択した場合、シートの削除は行われません。ここでは、キャンセル時にエラーで中断しないように、先頭にOn Error Resume Nextステートメントを記述しています。
(2)のステートメントで確認メッセージを非表示にした後、(3)のステートメントを実行すると、確認メッセージは表示されずにシートが削除されます。
警告や確認のメッセージを非表示にする場合は、処理への影響を十分に調査し、慎重に行ってください。
Excelの古いバージョンでは、プロシージャの終了とともにDisplayAlertsプロパティがTrueに戻らない場合があります。非表示に設定したら必ず戻すよう、FalseとTrueの処理をセットにして使用するとよいでしょう。