EXCEL VBA 確認メッセージの停止・表示しない。DisplayAlertsプロパティ(警告メッセージ・アラートを出さない)
EXCEL VBA 確認メッセージの停止・表示しない。DisplayAlertsプロパティ(ブックを閉じる・保存・シート削除・警告メッセージ・非表示・アラートを出さない)
今回説明するのは、ワークシートを削除したり・ブックを閉じたり・ブックを保存する際に、確認のメッセージ(アラート)が表示されます。確認メッセージとして表示されるので、ユーザーの判断で選択する必要がありますが、プログラム・マクロ等で自動化した場合、確認メッセージが表示される事で、一時的に停止されてしまいます。これでは、自動化の意味が無くなりますので、DisplayAlertsプロパティを使う事で、確認メッセージや警告メッセージを一時的に非表示設定に切替える事ができます。それでは、サンプルプログラムを交えて順番に説明いたします。
●【ブックを閉じる(ブック全てを保尊して閉じる)、下記の参照して下さい】
●【ファイル・ワークブック・アクティブシートの保存・上書き保存・選択保存、下記の参照して下さい】
EXCEL VBA EXCELファイル・ワークブック・アクティブシートの保存・上書き保存・選択保存 (SaveAs・GetSaveAsFilename)
● Application.DisplayAlertsプロパティを利用するには、下記の通りに設定を行います。
Application.DisplayAlerts = False
※確認・警告メッセージを表示しない様に設定する。(非表示設定)
Application.DisplayAlerts = True
※確認・警告メッセージを表示設定にする。(表示設定)
【使用例】
1.(Application.DisplayAlertsプロパティを使用しない場合)
【プログラム例】※警告メッセージが表示される。(メッセージの削除ボタンを押すと削除される)
1 2 3 4 5 6 7 8 |
' ' Sub DisplayAlerts00A() 'DisplayAlertsを設定しない場合。 Worksheets("Sheet1").Delete 'ワークーシートを削除します。 End Sub ' |
2.(Application.DisplayAlertsプロパティを使用する場合)
1 2 3 4 5 6 7 8 9 10 11 12 |
' ' Sub DisplayAlerts00B() 'DisplayAlertsを設定した場合。 Application.DisplayAlerts = False '確認・警告メッセージを表示しない様に設定する。(非表示設定) Worksheets("Sheet1").Delete 'ワークーシートを削除します。 Application.DisplayAlerts = True '確認・警告メッセージを表示設定に戻す。(表示設定) End Sub ' |
【注意点】
●DisplayAlertsプロパティを使って、確認・警告メッセージを非表示にする際は、対象の処理(シート削除・ブックを閉じる時など)が済んだ場合は、速やかにDisplayAlertsをTrueに設定して表示設定に戻します。確認・警告メッセージを非表示のままですと、意図しないプログラム処理で削除処理が警告なして実行されないように、対象処理が終わったら必ず、表示設定に戻す様にしましょう。
EXCEL VBA ワークーシート(WorkSheet)を削除する際に、確認・警告メッセージ(アラート)を非表示に切替えて削除を実行します。
下記のサンプルプログラムは、ブックに登録されているワークシート(WorkSheet)の該当するシートのみを削除するサンプルプログラムです。削除する際は、確認・警告メッセージを表示しないように、非表示設定に切替えてプログラムを実行します。ワークシートの削除対象は、ワークシート名に”@”アットマークがあるワークシートが一括削除されます。
【プログラム実行条件】
・ワークシート名を設定する。削除対象のワークシート名に「@」を付ける。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
' ' Sub DisplayAlerts02() 'ワークシートを削除(確認・警告メッセージを表示しない・対象シートを一括削除) Dim ws As Worksheet Application.DisplayAlerts = False '確認・警告メッセージを表示しない様に設定する。(非表示設定) For Each ws In Worksheets 'ブックになあるワークシート全て繰り返します。 If ws.Name Like "*@*" Then 'ワークシート名に”@”が有れば削除されます。 ws.Delete '対象のワークシートを削除します。 End If Next ws Application.DisplayAlerts = True '確認・警告メッセージを表示設定に戻す。(表示設定) End Sub ' |
(画面クリックして拡大)
EXCEL VBA ブック(Book)を保存する際に、確認・警告メッセージ(アラート)を非表示に切替えて保存を実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
' ' Sub DisplayAlerts03() 'ブックを保存する際に確認・警告メッセージを表示させない。 Application.DisplayAlerts = False '確認・警告メッセージを表示しない様に設定する。(非表示設定) ThisWorkbook.Save 'ブックを保存します。 Application.DisplayAlerts = True '確認・警告メッセージを表示設定に戻す。(表示設定) Application.Quit 'EXCELを終了 End Sub ' |
(画面クリックして拡大)
EXCEL VBA ブック(Book)を閉じる際に、確認・警告メッセージ(アラート)を非表示に切替えて保存を実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
' ' Sub DisplayAlerts04() 'ブックを閉じる際に確認・警告メッセージを表示させない。 Application.DisplayAlerts = False '確認・警告メッセージを表示しない様に設定する。(非表示設定) ThisWorkbook.Save 'ブックを保存します。 Application.DisplayAlerts = True '確認・警告メッセージを表示設定に戻す。(表示設定) Application.Quit 'EXCELを終了 End Sub ' |
(画面クリックして拡大)
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。