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

スポンサーリンク

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

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

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

コード

 

解説

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

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

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

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

POINT
「せっかく処理をしたのに、保存しないで閉じる?」と思うかもしれませんが、エラーが発生しファイルが中途半端な状態になった時、エラー処理ではファイルを保存しないで閉じます。

関連記事

VBAテクニック辞典
VBAテクニック辞典
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
タイトルとURLをコピーしました