Home » エクセルマクロ・Excel VBAの使い方 » Workbookオブジェクト » すべて上書き保存して閉じるマクロ


すべて上書き保存して閉じるマクロ

対象:Excel2003, Excel2007, Excel2010

「エクセルマクロ 一括ファイル上書き保存して閉じる」
という検索が行われていました。

開いているExcelファイルを、すべて上書き保存して閉じるVBA(Visual Basic for Applications)マクロを探している方による検索です。

[スポンサードリンク]

すべてのブックを上書き保存して閉じるサンプルマクロ

以下のようなマクロで、開いているすべてのExcelファイルを上書き保存して閉じることができます。


Sub すべてのブックを上書き保存して閉じる()
 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自体を終了させてしまうのならば、以下のようなマクロでもいいでしょう。


Sub すべてのブックを上書き保存してExcelを終了する()
 Dim bk As Workbook
 
 For Each bk In Workbooks
  bk.Save
 Next bk
 
 Application.Quit
End Sub

ループの中では上書き保存だけを行い、保存が終わったところで、ApplicationオブジェクトのQuitメソッドで、Excelを終了させてしまうというマクロです。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Workbookオブジェクト » すべて上書き保存して閉じるマクロ

TrackBack:1

TrackBack URL
上書き保存をせずに閉じるPowerPointマクロ from インストラクターのネタ帳
上書き保存をせずにプレゼンテーションファイルを閉じるPowerPoint(パワーポイント)マクロをご紹介しています。

Home » エクセルマクロ・Excel VBAの使い方 » Workbookオブジェクト » すべて上書き保存して閉じるマクロ

「Workbookオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.