CloseBookWithoutAlart|保存確認なしでブックを閉じる | Excel VBA
- yuji fukami
- 2024年12月29日
- 読了時間: 2分
更新日:1月4日

<概要 (VBA ブック 閉じる)>
CloseBookWithoutAlartは、指定したWorkbook(ブック)を保存確認のアラートを表示せずに閉じるためのVBA用汎用プロシージャです(VBA ブック 閉じる)。
特定のワークブックを、 変数がWorkbookオブジェクトとして参照し、起動している状態から[Workbookオブジェクト].Closeメソッドでブックを閉じようとした際に、「保存しますか?」などの警告メッセージがいちいち表示されたりします。これを複数のブックを連続操作しようとした場合に、このような表示が毎回出たりするとユーザー側としては非常に使いづらかったりします。
ですので、これらの警告メッセージは「Application.DisplayAlerts = False」を記述してメッセージが出ないようにするのが開発マナーです。
ただ「Application.DisplayAlerts = False」の記述を毎回行ったり、ブックを閉じた後にTrueに戻したりする処理「Application.DisplayAlerts = True」の記述をおこなうのが毎回手間だったりします。
紹介する汎用プロシージャ「CloseBookWithoutAlart」を利用すれば引数としてCloseするブックをWorkbookオブジェクト「Book」として与えるだけで、上記の処理を行いつつCloseする実装が1行で済むようになります。
<実行例>
サンプルコードを実行すると、新規に作成されたブックが保存確認のメッセージを表示することなく自動的に閉じられます。
Application.DisplayAlertsの状態に関わらず安全に処理されるため、既存のマクロ環境へ組み込んでも影響を最小限に抑えられます。
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


