スポンサーリンク

Excelマクロでファイル(ブック)を閉じる方法

VBA

「ファイルを開いて、データをコピーして、閉じて、と事務作業を自動化したい」
という悩みはVBA(マクロ)で解決できます。
今回はファイルを閉じる方法を解説。開く方法は別記事で解説しています。
>>>>Ecxelマクロでファイルを開く方法

閉じたいファイルを指定して、Closeと書くだけです。

Closeでファイルを閉じるコード

変更を保存することもできるので、目的に合わせて使ってみましょう。

✓内容は以下の通りです。
・Closeでファイルを閉じる方法
・変更を保存して閉じる方法
・Excelごと終了する方法

Closeでファイルを閉じる方法

プログラムを実行するファイルとは別で、“Book1.xlsx”というファイルを閉じたいとします。

プログラム実行ファイル:閉じないファイル
Book1.xlsx:閉じたいファイル
Sub test()

Workbooks("Book1.xlsx").Close

End Sub

Workbooks(“ファイル名”)で閉じたいファイルを指定してCloseと書きましょう。
>>Excelマクロでセル, シート, ファイルを指定する方法

変更を保存して閉じる方法

Sub test()

Workbooks("Book1.xlsx").Close savechanges:=True

End Sub

savechangesで、変更を保存するかしないかを決めることができます。

変更を保存してファイルを閉じるコード

=の手前にコロン「:」があるので注意してください。
もしsavechangesを設定しないと以下の画面が現れます。

ファイルを閉じる際に出てくるポップアップの図

これが出てくるとプログラムが止まってボタンの選択待ちになります。
せっかく自動化しているのに止まるのはナンセンスですよね。

ファイル名を変更して閉じる方法

Sub test()

savePath = "C:\Users\HTOM\Desktop"
saveName = "Changed.xlsx"
Workbooks("Book1.xlsx").Close savechanges:=True, Filename:=savePath & "\" & saveName

End Sub

引数Filenameに保存後のパスを書きます。
savechangesがFalseだと、そもそも変更を保存しないので注意してください。

ファイルを閉じる際に名前を変更するコード

“Book1.xlsx”の変更を保存して、”Changed.xlsx”としてデスクトップに保存しました。

ファイルに名前を付けて保存した後の図
ファイルを閉じる際にパスと名前を変数にしたコード

上記のコードでは、保存先フォルダのパスと保存後ファイル名とを分けました。
保存先フォルダのパスはアドレスバーをクリックすると簡単にわかります。

アドレスバーからファイルのパスをコピーする図

あとはsaveNameを好きな名前に変更するだけです。

全ファイルを保存してからExcelを終了する方法

Sub test()

For Each wb In Workbooks
    wb.Save
Next wb

Application.Quit

End Sub

For Eachで全ファイルを1つずつ操作できます。
全てのファイルをSaveで保存してからQuitで終了すればOKです。

まとめ

今回はVBAでファイルを閉じる方法について解説しました。
けっこうシンプルなので、すぐに使えるようになると思います。
ファイルを開いて閉じることができれば、あとは作業内容をプログラム化するだけですね。

コメント

タイトルとURLをコピーしました