【1行で解決】VBAでブックを閉じる時に「保存しない」!保存しますかを出さないClose Falseの使い方

Excel VBA 入門

VBAでエクセルを保存しないで閉じたいのに、毎回ダイアログが出て面倒…
保存せずにエクセルを閉じる方法を知りたい!

Excel VBAでマクロを実行しているとき、別のファイルをを閉じようとすると、「変更を保存しますか?」という確認ダイアログが表示されて処理が止まったことはありませんか?

この記事では、たった1行のコピペでこの警告を出さずにエクセルを閉じる方法を解説します。

ぜひこのコードを使って、お使いのVBAをより使いやすいものに、グレードアップしてください!

【結論】VBAでブックを保存しないで閉じるなら「.Close False」でOK

VBAで確認メッセージを出さずにブックを閉じるには、以下の1行でOKです。

Workbooks("ブック名.xlsx").Close False

このコードをそのままコピーして、ご自身のマクロに貼り付けるだけでしっかりと機能します。ちなみに、アクティブなブックを閉じたい場合は「ActiveWorkbook.Close False」と書くこともできます。

ほかのやり方も紹介していますが、基本的にこのやり方で問題はありません。

ここからはこのコードの詳細と、ほかのコードの書き方について解説していきます。

💻 まだまだあります!実務で使えるコピペコード集

当サイトで紹介している、日々の面倒な作業を自動化するVBA・マクロを一覧ページにまとめています!

なぜ「.Close False」で「保存しますか」の警告が出ないのか?

ここでは、このコードの仕組みを解説します。

Excelの「Close」メソッドは、標準状態だと「変更があればユーザーにどうするか確認する」という動きをします。そのため、普通に「.Close」と閉じるだけだとダイアログが出てしまいます。

表示イメージ

しかし、後ろに付けた「False」で「変更は保存不要」の指示となります。あらかじめマクロ側から保存しないという指示を出しているため、Excelはわざわざユーザーに確認する必要がなくなります。

結果として、ダイアログがスキップされるという仕組みです。VBA初心者の方でも、この仕組みを知っておくとエラー回避など他の場面でも応用が効きます。

📖
「自動化・時短」本まとめ
Excel・VBAから話題の生成AIまで、PC作業をラクにする必読の9冊。
今ならすべてKindle Unlimited(0円)の対象です!

状況に合わせて使い分ける!VBAでブックを閉じるその他の3つのアプローチ

個人でマクロを使う分には、基本的には先ほど紹介した短いコードで十分です。

しかし、チームでの開発ルールやコードの文脈によっては、他の書き方が適している場合もあります。

ここでは警告なしでブックを閉じる、3つの方法をご紹介します。

① 誰が見ても分かりやすい:SaveChanges:=False

Workbooks("ブック名.xlsx").Close SaveChanges:=False

これは、省略されている引数の名前をしっかりと書いた公式的な書き方です。

裏側の動きとしては、先ほどの「False」だけの場合と全く同じです。複数人でコードを管理する場合など、誰が見ても一目で「保存しない設定だ」と分かるようにしたい時に実務でよく使われます。

② 強制的にすべての警告を消す:DisplayAlerts

Application.DisplayAlerts = False
Workbooks("ブック名.xlsx").Close
Application.DisplayAlerts = True

こちらはExcelの警告システムそのものを一時的にオフにする方法です。

クリップボードに大量のデータがある場合の警告など、確実にダイアログを消すことができます。ただ、他の重要なメッセージもすべて見えなくなってしまうので注意が必要です。

また、処理が終わった直後に必ず「True」に戻すことを忘れないようにしましょう。

③ 保存済みだとExcelに認識させる:Saved プロパティ

Workbooks("ブック名.xlsx").Saved = True
Workbooks("ブック名.xlsx").Close

ファイルの「保存済み」というステータスを、マクロを使って強制的に「True」に書き換える方法です。Excel側は「もう保存されているファイルだ」と勘違いするため、そのまま閉じても確認メッセージが出なくなります。

ほとんど使うことはないと思いますが、特定の条件で保存状態をコントロールしたいときに使用してください。

📚 AIと自動化で「めんどくさい」を一掃!
「生成AI」や「Excel・VBA」など、業務を劇的にラクにする実用書を厳選!
すべてKindle Unlimited(0円)で今すぐ読めます。

まとめ:VBAでブックを保存せずに閉じる最速の方法

VBAでブックを保存せずに閉じる方法について詳しく解説しました。一番早くて手軽なのは「.Close False」を使う方法です。たった1行追加するだけで、保存確認のダイアログを出さずに閉じることができます。

このブログでは、今回紹介したような内容から、日々の業務を根本からラクにする自動化テクニックまで幅広く紹介しています。

さらに一歩踏み込んで、「毎日の面倒な手作業を最速で終わらせたい!」という方向けに、VBAをイチから学ばず「コピペ×AI」でパパッと自動化するノウハウをまとめたKindle書籍を出版しました。

Kindle Unlimited(読み放題)なら0円で読めますので、ぜひチェックしてみてください!

コメント

タイトルとURLをコピーしました