ワークブックを閉じる

にメンテナンス済み

VBA を活用することで、特定の Excel ブックを閉じることができます。

このページでは、VBA でワークブックを閉じる方法を紹介します。

Close メソッド

VBA でワークブックを閉じるには、WorkbookオブジェクトのCloseメソッドを使います。

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 で取り扱えるワークブックの範囲が広げることができます。

#VBA