ワークブックを閉じる
VBA を活用することで、特定の Excel ブックを閉じることができます。
このページでは、VBA でワークブックを閉じる方法を紹介します。
Close メソッド
VBA でワークブックを閉じるには、Workbook
オブジェクトのClose
メソッドを使います。
ThisWorkbook.Close
このコードを実行すると、何の確認もなくワークブックが閉じられます。
ただし、もしワークブックに未保存の変更がある場合は、Excel が保存するかどうかを尋ねるダイアログボックスが表示されます。
保存の確認を避ける
保存の確認を避けてワークブックを閉じる場合は、Close メソッドに引数を渡すことで可能です。
Sub CloseWithoutPrompt()
' アクティブなワークブックを保存せずに閉じる
ActiveWorkbook.Close SaveChanges:=False
End Sub
このコードでは、SaveChanges
引数にFalse
を指定しています。これにより、ワークブックに未保存の変更があっても保存せずに閉じます。
ワークブックを保存しないで閉じる方法については、以下のページで詳しく解説しています。
変更を保存して閉じる
反対に、変更を保存してからワークブックを閉じたい場合は、SaveChanges
引数にTrue
を指定します。
Sub CloseAndSave()
' アクティブなワークブックを保存して閉じる
ActiveWorkbook.Close SaveChanges:=True
End Sub
このコードを実行すると、変更が保存された後にワークブックが閉じられます。
特定のワークブックを閉じる
特定のワークブックを閉じたい場合は、そのワークブックのオブジェクトに対して Close メソッドを呼び出します。
Sub CloseSpecificWorkbook()
' 特定のワークブックを変数に格納
Dim wb As Workbook
Set wb = Workbooks("Example.xlsx")
' 特定のワークブックを閉じる
wb.Close SaveChanges:=False
End Sub
このコードでは、“Example.xlsx”という名前のワークブックを閉じています。この方法を使用すれば、アクティブでないワークブックでも閉じることができます。
まとめ
VBA の Close メソッドを使用することで、Excel のワークブックをプログラム的に閉じることができます。
引数を適切に使用することで、保存の確認を避けたり、変更を保存して閉じたり、特定のワークブックをターゲットにすることも可能です。
Close
メソッドを使うことで、VBA で取り扱えるワークブックの範囲が広げることができます。