【VBA】すべてのエクセルファイルを上書き保存して閉じる

スポンサーリンク

For Each…Nextで繰り返し処理する

複数のエクセルファイルにデータの書き込みなどをした後、まとめて上書き保存・閉じる場合は、For Each…Nextですべてのエクセルファイルを1つずつ処理していきます。

コード

 

解説

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

そのため、VBAが記述されているエクセル以外を、「上書き保存」→「閉じる」と1つずつ繰り返し処理しています。

POINT
VBAのエクセルファイル名は、ThisWorkbook.Nameで調べることができます。

 

VBAのあるエクセルファイルも閉じる

ループ処理が終わった後(Nextの後)に、VBAのファイルを閉じるプログラムを書きます。

ただし、この書き方だとエクセルのアプリケーションが残ってしまうので、実際は次の「エクセル自体を終了する」が実用的です。

 

エクセル自体を終了する

ループ処理が終わった後(Nextの後)に、Excel自体を終了するプログラムを書きます。

VBAのエクセルファイルも保存する必要がある場合は、Application.Quitの直前にThisWorkbook.Saveを書きます。

 

注意すること
すべてのエクセルファイルを閉じる場合、VBAが書かれているエクセルファイルは最後に閉じましょう。

関連記事

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