HOME > 即効テクニック > Excel VBA > その他関連のテクニック > 確認メッセージを非表示にする(DisplayAlertsプロパティ)

確認メッセージを非表示にする(DisplayAlertsプロパティ)|Excel VBA

その他関連のテクニック

確認メッセージを非表示にする(DisplayAlertsプロパティ)

(Excel 97/2000/2002/2003/2007/2010)

Excelは特定の操作を実行した時に、さまざまな確認あるいは警告のメッセージを表示します。
たとえば、シートを削除する際には、「選択したシートに、データが存在する可能性があります。データを完全に削除するには、[削除]をクリックしてください。」といったメッセージを表示します。
確認のボタンが押されるまで処理は中断したままになるので、複数のシートを一括して削除するときなど、確認のメッセージを表示したくない場合はApplicationオブジェクトのDisplayAlertsプロパティにFalseを設定します。

構文  Application.DisplayAlerts = 設定値 設定/取得

設定項目内容
設定値 警告や確認を促すメッセージの表示を
True(表示する) / False(表示しない)

次のサンプルで、DisplayAlertsプロパティによる動作の違いを確認できます。

●サンプル●

Sub Sample()
    On Error Resume Next
    
    Worksheets.Add.Name = "Dummy"
    MsgBox "追加したシートを削除します"
    Worksheets("Dummy").Delete          '---(1)

    Application.DisplayAlerts = False   '---(2)
    
    Worksheets.Add.Name = "Dummy"
    MsgBox "追加したシートを削除します"
    Worksheets("Dummy").Delete          '---(3)
    
    Application.DisplayAlerts = True    '---(4)
End Sub 

(1)のステートメント実行時には、確認メッセージが表示されます。
ここで[キャンセル]ボタンを選択した場合、シートの削除は行われません。ここでは、キャンセル時にエラーで中断しないように、先頭にOn Error Resume Nextステートメントを記述しています。

(2)のステートメントで確認メッセージを非表示にした後、(3)のステートメントを実行すると、確認メッセージは表示されずにシートが削除されます。

●注意●

警告や確認のメッセージを非表示にする場合は、処理への影響を十分に調査し、慎重に行ってください。
Excelの古いバージョンでは、プロシージャの終了とともにDisplayAlertsプロパティがTrueに戻らない場合があります。非表示に設定したら必ず戻すよう、FalseとTrueの処理をセットにして使用するとよいでしょう。