「エクセルマクロ 一括ファイル上書き保存して閉じる」
という検索が行われていました。
開いているExcelファイルを、すべて上書き保存して閉じるマクロを探している方による検索です。
すべてのブックを上書き保存して閉じるサンプルマクロ
以下のようなマクロで、開いているすべてのExcelファイルを上書き保存して閉じることができます。Dim bk As Workbook
For Each bk In Workbooks
If Not (bk Is ThisWorkbook) Then
bk.Close SaveChanges:=True
End If
Next bk
ThisWorkbook.Close SaveChanges:=True
End Sub
開いている全てのブックに対するFor Each~Nextループの中で、
For Each bk In Workbooks
ブックを閉じる、Workbook.Closeメソッドの引数・SaveChangesにTrueを指定して、
bk.Close SaveChanges:=True
上書き保存をしています。
ただし、このループ処理の中で、このマクロの書かれているブックが閉じられてしまうと、残りのブックが閉じられずにマクロが終わってしまうので、マクロの書かれているブックについてはループの中では閉じずに、
If Not (bk Is ThisWorkbook) Then
ループを抜けたあとで最後に閉じています。
ThisWorkbook.Close SaveChanges:=True
ちなみに、この処理と同様のことをマクロを使わずに行いたい場合、Excel 2003ならば[Shift]キーを押しながらメニュー[ファイル]をクリックすると表示される[すべて閉じる]コマンド、Excel 2007・2010ならばQAT(クイックアクセスツールバー)などに作成した[すべて閉じる]ボタンをクリックして表示された、「変更を保存しますか?」メッセージの[すべて変更]ボタンをクリックしてください。
すべてのブックを上書き保存してExcelを終了するサンプルマクロ
上書き保存して閉じるのではなく、Excel自体を終了させてしまうのならば、以下のようなマクロでもいいでしょう。Dim bk As Workbook
For Each bk In Workbooks
bk.Save
Next bk
Application.Quit
End Sub
ループの中では上書き保存だけを行い、保存が終わったところで、ApplicationオブジェクトのQuitメソッドで、Excelを終了させてしまうというマクロです。
最終更新日時:2020-03-02 10:45
Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » すべて上書き保存して閉じるマクロ