教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA その他操作】警告メッセージを非表示にする(Application.DisplayAlerts)にはどうすればいいの?教えて!

f:id:m_kbou:20200418090138p:plain

データを変更した後にブックを閉じようとした場合、上書き確認の警告メッセージが表示されます。この警告メッセージを非表示にする方法があるので、そのやり方について説明します。

 

 

構文

記述方法は以下の通りとなります。

Application.DisplayAlerts = False

Application.DisplayAlerts = True

[説明]:

警告メッセージを非表示にするには「Application.DisplayAlerts = False」と記述します。また、警告メッセージを表示するようにする(元に戻す)には「Application.DisplayAlerts = True」と記述します。内容を纏めると、「警告メッセージを非表示にして下さい。又は、警告メッセージを表示するようにして下さい。」との意味になります。

 

使い方

使い方について具体的に説明していきます。

警告メッセージを表示させるケース

ブックを閉じる時に警告メッセージを表示させるケースについて説明します。

[プログラミング例]:

Sub サンプル()
  ActiveWorkbook.Close
End Sub

内容は、「現在アクティブになっているブックを閉じて下さい。」との意味になります。

f:id:m_kbou:20210218080146p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。Sheet1シートのA1セルに「テスト」の文字を入力し、<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210305140820p:plain

②処理結果は以下の様になります。警告メッセージが表示され、いずれかのボタンのクリックを要求されます。

f:id:m_kbou:20210305140841p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

警告メッセージを非表示にしないケースについての説明は以上です。

 

警告メッセージを表示させないケース

ブックを閉じる時に警告メッセージを表示させないケースについて説明します。

[プログラミング例]:

Sub サンプル()
  Application.DisplayAlerts = False
  ActiveWorkbook.Close
  Application.ScreenUpdating = True
End Sub

内容は、「まず最初に警告メッセージが表示させないモードに切り替え、次に現在アクティブになっているブックを閉じてから、最後に警告メッセージが表示させるモード(元のモードに戻す)に切り替えて下さい。」との意味になります。

f:id:m_kbou:20210218080302p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。Sheet1シートのA1セルに「テスト」の文字を入力し、<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210305141332p:plain

②警告メッセージが表示されずにブックが閉じます。

f:id:m_kbou:20210305141400p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

警告メッセージを非表示にするケースについての説明は以上です。

 

おわりに

今回は警告メッセージを非表示にする方法について説明しました。警告メッセージを非表示にする指定(Application.DisplayAlerts = False)をすると、ブックを閉じる時の上書き保存の確認メッセージだけではなく、その他全てのメッセージも非表示となります。指定する場合には注意して下さい。また、メッセージを非表示にする指定をしたマクロを実行した場合、処理が終了すると同時にメッセージが表示される状態(Application.ScreenUpdating = True)に戻ります。こちらも覚えておいて下さい。