ブックを閉じる

Excel VBA を使って現在開いているブックを閉じる方法について解説します。

(Last modified: )

ブックを閉じる

ブックを閉じるには Workbook オブジェクトの「Close」メソッドを使います。

ActiveWorkbook.Close

閉じようとするブックが、最後に保存されてから変更が行われている場合にはファイルを保存するかどうか確認するための確認ダイアログが表示されます。

「SaveChanges」引数を使うことでブックに変更がある場合の処理を指定できます。「True」を設定する場合には上書き保存されます。また「FileName」引数も合わせて指定することで任意のファイル名で保存することが出来ます。「False」を指定した場合には変更を保存せずにブックを閉じます。(新規ブックの場合で「FileName」引数を指定しなかった場合には「名前を付けて保存」ダイアログが表示されて保存するファイル名を指定することになります。

ActiveWorkbook.Close SaveChanges:=True, _
    FileName:="backup.xls"

「Close」メソッドは単一のWorkbookオブジェクトに対してだけではなく、Workbooksコレクションに対しても実行できます。

Workbooks.Close

Workbooksコレクションに「Close」メソッドを使った場合には、全てのブックが閉じられます。この場合は引数を指定できません。よって変更されたブックがあった場合にはファイルを保存するかどうかの確認ダイアログが表示されます。

サンプルプログラム

では簡単なサンプルで試してみましょう。

Sub テスト()
    
    Workbooks.Open filename:="C:¥excelsample¥2005年成績.xls"
     
    ActiveSheet.Range("A1").Value = "保存"
    ActiveWorkbook.Close SaveChanges:=True, filename:="backup.xls"
    
End Sub

上記マクロを実行すると画面上は変化がありませんが、開いたブックには変更が加えられているので、閉じる際に「backup.xls」と言う名前で保存されたから閉じられます。(別の名前で保存していますので、元々のファイルには変更分は反映されません)。

-- --

Excel VBA を使って現在開いているブックを閉じる方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。