Excel

【Excel】VBAマクロでブックを閉じる方法(残る:空のエクセルファイル:保存しない)【Workbooks.Close, Application.Quit】

当サイトでは記事内に広告を含みます。

この記事では、VBAマクロでブックを閉じる方法(残る:空のエクセルファイル:保存しない)【Workbooks.Close, Application.Quit】について解説していきます。

ポイントとしては`Workbooks.Close`と`Application.Quit`を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいように、あえて変数名を少々変わった名称にしております。そのため、ご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用ください。

それでは詳しく見ていきましょう!

 

VBAマクロでアクティブブックを完全に閉じる(空のエクセルファイルが残るのも削除する:保存しない)方法

それではまず、アクティブブックを完全に閉じる方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub CloseActiveWorkbookWithoutSaving()
    ' アクティブなブックを保存せずに閉じる
    ' "ActiveWorkbook"は現在開いているブックを指します
    ActiveWorkbook.Close SaveChanges:=False

    ' Excelが他にブックを開いていない場合は、Excel自体を閉じます
    If Workbooks.Count = 0 Then
        Application.Quit
    End If
End Sub

 

コードのAlt+F8を押し、マクロ選択画面でCloseActiveWorkbookWithoutSaving関数を実行します。

このコードは、現在アクティブなブックを保存せずに閉じ、Excelが他にブックを開いていない場合は、Excel自体を閉じる処理を行います。

空のエクセルファイルだけ残る場合にも閉じることができるでしょう(^^)/

 

VBAマクロで複数ブックをすべて保存しないで完全に閉じる(空のエクセルファイルが残るのも削除する)方法

続いては、複数ブックをすべて保存しないで完全に閉じる方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub CloseAllWorkbooksWithoutSaving()
    Dim aaaaaBookaaaaa As Workbook
    
    ' すべてのブックをループし、一つずつ閉じます
    For Each aaaaaBookaaaaa In Workbooks
        aaaaaBookaaaaa.Close SaveChanges:=False
    Next aaaaaBookaaaaa
    
    ' すべて閉じた後、Excel自体を閉じます
    Application.Quit
End Sub

コードのAlt+F8を押し、マクロ選択画面でCloseAllWorkbooksWithoutSaving関数を実行します。

このコードは、開いているすべてのブックをループ処理し、それぞれを保存せずに閉じていきます。

最終的にExcel自体も閉じるため、上と同様に空のエクセルファイルだけ残ってしまう状況も解決できますね(^^)

 

まとめ VBAマクロでブックを閉じる方法(空のエクセルファイルが残る:保存しない:アクティブブックも考慮など)【Workbooks.Close, Application.Quit】

ここでは、VBAマクロでブックを閉じる方法(残る:空のエクセルファイル:保存しない)【Workbooks.Close, Application.Quit】について確認しました。

マクロの扱いに慣れ、さらに快適な生活を送っていきましょう(^^)/