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