教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA ブック操作】ブックを閉じる(Close)にはどうすればいいの?教えて!

構文

構文は以下の通りです。

Workbooks.Close(SaveChanges, Filename, RouteWorkbook)

【解説】

Workbooks.Closeは、Excelワークブックを閉じるために使用されます。このメソッドを使用すると、プログラム内で開いたExcelファイルを閉じることができます。

引数 指定 内容
SaveChanges 省略可 Boolean値です。Trueの場合は、変更を保存してからブックを閉じます。Falseの場合は、変更を保存せずにブックを閉じます。デフォルトはFalseです。
Filename 省略可 文字列型の値です。閉じた後のWorkbookのファイル名を指定します。デフォルト値は空の文字列("")です。
RouteWorkbook 省略可 Variant型の値です。閉じた後のWorkbookの保存場所を指定します。デフォルト値はEmptyです。

使い方

Workbooks.Close メソッドは、開いているWorkbookを閉じるために使用されます。このメソッドは、変更内容を保存してからWorkbookを閉じるか、変更内容を保存せずにWorkbookを閉じるかを指定することができます。また、閉じた後のWorkbookの保存先やファイル名を指定することもできます。

以下は、Workbooks.Close メソッドを使用して、Workbookを閉じるための一般的な方法の例です。

Sub CloseWorkbook()
    'Workbookを閉じる
    Workbooks.Close
End Sub

上記の例では、Workbooks.Close メソッドは、開いているWorkbookを閉じています。SaveChanges、Filename、および RouteWorkbook 引数は省略されています。この場合、Workbookの変更内容は保存されずに閉じられます。

Sub CloseAndSaveWorkbook()
    'Workbookを閉じて変更内容を保存する
    Workbooks.Close True
End Sub

上記の例では、SaveChanges 引数にTrueを指定することにより、変更内容を保存してからWorkbookを閉じています。Filename および RouteWorkbook 引数は省略されています。

Sub CloseAndSaveWorkbookWithFileName()
    'Workbookを閉じて変更内容を保存し、ファイル名を指定する
    Workbooks.Close True, "NewWorkbook.xlsx"
End Sub

上記の例では、SaveChanges 引数にTrueを指定することにより、変更内容を保存してからWorkbookを閉じています。Filename 引数には、閉じた後のWorkbookのファイル名を指定しています。RouteWorkbook 引数は省略されています。

Sub CloseAndSaveWorkbookWithRoute()
    'Workbookを閉じて変更内容を保存し、保存先のフォルダーを指定する
    Workbooks.Close True, "Workbook1.xlsx", "C:\Users\Username\Documents"
End Sub

上記の例では、SaveChanges 引数にTrueを指定することにより、変更内容を保存してからWorkbookを閉じています。Filename 引数には、閉じた後のWorkbookのファイル名を指定しています。RouteWorkbook 引数には、閉じた後のWorkbookの保存先のフォルダーのパスを指定しています。

プログラミング例

以下は、Workbooks.Close メソッドを使用した簡単なプログラム例です。この例では、Workbookを閉じるためにWorkbooks.Closeメソッドを使用しています。

Sub CloseWorkbook()
    'Workbookを閉じる
    Workbooks.Close
End Sub

以下は、Workbookを閉じる前に変更内容を保存するためにWorkbooks.Closeメソッドを使用したプログラム例です。

Sub CloseAndSaveWorkbook()
    'Workbookを閉じて変更内容を保存する
    Workbooks.Close True
End Sub

以下は、Workbookを閉じる前に変更内容を保存し、閉じた後のWorkbookのファイル名を指定するためにWorkbooks.Closeメソッドを使用したプログラム例です。

Sub CloseAndSaveWorkbookWithFileName()
    'Workbookを閉じて変更内容を保存し、ファイル名を指定する
    Workbooks.Close True, "NewWorkbook.xlsx"
End Sub

以下は、Workbookを閉じる前に変更内容を保存し、閉じた後のWorkbookの保存先を指定するためにWorkbooks.Closeメソッドを使用したプログラム例です。

Sub CloseAndSaveWorkbookWithRoute()
    'Workbookを閉じて変更内容を保存し、保存先のフォルダーを指定する
    Workbooks.Close True, "Workbook1.xlsx", "C:\Users\Username\Documents"
End Sub

まとめ

Workbooks.Closeメソッドを使用することで、開いているWorkbookを簡単に閉じることができます。また、変更内容を保存してから閉じるか、変更内容を保存せずに閉じるかを指定することができます。閉じた後のWorkbookのファイル名や保存先のフォルダーも指定できます。