【Excel VBA】ファイルを閉じる基本コードとやさしい解説

VBA & Excel
スポンサーリンク
スポンサーリンク

はじめに

VBAで作業をしていると、
「処理が終わったのでファイルを閉じたい」
「保存せずに閉じたい」
「複数のブックを順番に閉じたい」
そんな場面がよくあります。

ここでは、ファイルを閉じる基本の使い方と、
実務で安心して使える書き方を解説します。

まずはコードを確認(もっともシンプル)

ActiveWorkbook.Close

開いているブックを閉じます。
保存するかどうかは Excel が確認してくれます。

保存するかどうかを指定して閉じる

保存して閉じる

ActiveWorkbook.Close SaveChanges:=True

保存せずに閉じる

ActiveWorkbook.Close SaveChanges:=False

実務では SaveChanges を明示する ことで、
予期せぬ保存ダイアログを防げます。

変数に入れたブックを閉じる

Dim wb As Workbook
Set wb = Workbooks.Open("C:\Data\report.xlsx")

wb.Close SaveChanges:=False

外部ファイルを扱うときの基本パターンです。

具体的な例で理解する

開いたブックを処理して閉じる

Dim wb As Workbook
Set wb = Workbooks.Open("C:\Data\report.xlsx")

wb.Sheets("集計").Range("A1").Value = "更新日:" & Date

wb.Close SaveChanges:=True

処理 → 保存 → 閉じる の流れをまとめた実務向けの例です。

複数のブックをすべて閉じる

Dim wb As Workbook

For Each wb In Workbooks
If wb.Name <> ThisWorkbook.Name Then
wb.Close SaveChanges:=False
End If
Next

自動処理の最後に“後片付け”として使えます。

指定した名前のブックだけ閉じる

Workbooks("report.xlsx").Close SaveChanges:=False

名前がわかっている場合のシンプルな方法です。

注意点(実務で気をつけたいこと)

  • 保存ダイアログが出ると処理が止まる
    → SaveChanges:=True/False を明示すると安全。
  • ThisWorkbook を閉じるとコードが止まる
    → 自分自身のブックは閉じないように注意。
  • ネットワーク保存は時間がかかる
    → 保存後すぐに Close するとエラーになることも。
  • 開いていないブックを Close するとエラー
    → Workbooks(“名前”) の存在チェックが必要。

応用:安全にブックを閉じる関数

Function CloseSafe(wb As Workbook, Optional save As Boolean = False) As Boolean
On Error GoTo ErrHandler

wb.Close SaveChanges:=save
CloseSafe = True
Exit Function

ErrHandler:
CloseSafe = False
End Function

複数の処理で使い回せる“安全なクローズ関数”です。

まとめ

  • Close でブックを閉じられる
  • 保存するかどうかは SaveChanges で指定
  • 変数に入れたブックを閉じるのが実務で基本
  • 複数ブックのクローズや名前指定も可能
  • 保存ダイアログを出さない工夫が大切

ファイルを閉じる処理は、
作業の“しめくくり”を静かに整える大切なステップです。


decopon
decopon

ブックを丁寧に閉じることで、
処理全体がすっと整い、安心感が生まれます。
VBAは、そんな小さな後片付けもそっと支えてくれます。

moco
moco

閉じるって、なんだか一日の終わりみたいで落ち着くね。
VBAなら、その瞬間もやさしく手伝ってくれるよ。

コメント

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