こんにちは、Ryoです。
Excleに限らずアプリケーションではアクションを起こす毎に適宜確認メッセージが表示されますが、VBAなどで処理を実行をしていると確認メッセージが表示されることによって中断されてしまうことがありますので、その確認メッセージの表示/非表示方法について書いていきます。
1.サンプル概要
先ず以下の記述は「Sheet2」を削除する処理になりますが、実行すると確認のメッセージが表示されます。
Sub Sample1() 'ワークシートの削除を行う Worksheets("Sheet2").Delete End Sub
注意が必要な際に確認メッセージを表示してくれる機能は大変ありがたいですが、VBAなどで自動処理を行っていると中断されてしまうので、確認メッセージを非表示にしておくと何事もなかったかのようにSheet2は削除されます。
このように確認メッセージを非表示とすることで、処理を中断せずに済むようになります。
2.サンプルコード
Sub Sample2() '確認メッセージを非表示にする Application.DisplayAlerts = False 'ワークシート(Sheet2)を削除する Worksheets("Sheet2").Delete '確認メッセージを表示する(戻す) Application.DisplayAlerts = True End Sub
確認メッセージの表示・非表示を設定するにはDisplayAlertsプロパティを使用します。
構文:オブジェクト.DisplayAlerts=True/False
このオブジェクトにはApplicationオブジェクトを指定します。当然ながらデフォルトはTrueで確認メッセージを表示する設定なので、非表示にしたい場合はFalseを指定します。
VBAではプロシージャ終了でDisplayAlertsプロパティが自動的にTrueに戻る仕様になっているようなのですが、使用環境などによっては戻らないこともあるようなので念のためにもTrueに戻す処理は記述しておいた方が良いと思います。
3.まとめ
今回のDisplayAlertsプロパティは他の記事で記述したプログラム内で使用することが多々あったので、そこでも触れているとは思いますが、利用頻度も多いDisplayAlertsなので改めてこの部分だけで書いておくのも良いかと思った次第です。
記述自体も利用も特に難しいことは無いので問題ないかと思いますが、確認メッセージは時として有効な手段な場合もあります。私自身そうですが、非表示の処理を行う際には色々なケースを想定して使用を検討されると良いと思います。
以上、確認メッセージを非表示にする方法についてでした!今回の記事が何かの参考になれば幸いです。
Ryo