【VBA】すべてのエクセルファイルを保存しないで閉じる

繰り返し処理中はメッセージを非表示にして閉じる

複数のエクセルファイルを保存しないで閉じる場合は、For Each…Nextですべてのエクセルファイルを1つずつ処理していきます。

この時、Closeメソッドでファイルを閉じるだけでは確認メッセージが表示されるので、Application.DisplayAlertsにFalseを設定して、メッセージ表示を非表示にします。

コード

 

解説

VBAが記述されているエクセルファイル自体が途中で閉じられると、そこで処理が終了してしまいます。

そのため、8行目のIf文で対象ファイルを判定し、VBAが記述されているエクセル以外を1つずつ閉じています。

また、ファイルに変更があった場合に確認メッセージが表示されないように、ファイルを閉じる直前でApplication.DisplayAlerts = Falseとしています。

ファイルを閉じた直後に、Application.DisplayAlerts = Trueとしメッセージが表示されるように戻しています。これは、他の警告メッセージまで表示されなくなると困るからです。

POINT

エラーが発生した時や、読み取りだけした時は、間違って上書き保存したくないので今回のようにファイルを保存しないで閉じます。

 

関連記事

VBAテクニック辞典
仕事や趣味で、成果を出す5つのポイント
VBAテクニック辞典
えくとしょ | 初心者のためのエクセルとVBAの図書館
タイトルとURLをコピーしました