Excel

【Excel】VBAマクロでブックを閉じる(確認なしで保存しない:保存する:メッセージ選択も)方法

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では、VBAマクロでブックを閉じる(確認なしで保存しない:保存する:メッセージ選択も)方法について解説していきます。

特に、

・ユーザーの選択に基づいてブックを保存するかかどうかメッセージで出す方法

・アクティブブック以外のすべてのブックを保存せずに閉じる方法

を紹介します!

Workbook.CloseメソッドとApplication.DisplayAlertsプロパティを活用するといいです。

なお、初心者にも分かりやすいように、変数名を少々変わった名称(例:hensuu)で表現していますので、使用時は良い感じの変数名に変えてくださいませ。

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

 

VBAマクロで他のブックを閉じる(各ブックごとに保存するかどうかをメッセージで確認)方法【Workbook.Close, MsgBox関数】

それではまず、各ブックごとに保存するかどうかをメッセージで確認した上で、ファイルを閉じるコードを確認していきます。

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

Sub kakuninShiteHokaBookWoTojiru()
    Dim hokaWorkbook As Workbook
    Dim intResponse As Integer

    For Each hokaWorkbook In Application.Workbooks
        If Not hokaWorkbook Is ThisWorkbook Then
            intResponse = MsgBox("「" & hokaWorkbook.Name & "」を保存しますか?", vbYesNoCancel + vbQuestion, "ブックの保存確認")
            Select Case intResponse
                Case vbYes
                    hokaWorkbook.Close SaveChanges:=True
                Case vbNo
                    hokaWorkbook.Close SaveChanges:=False
                Case vbCancel
                    Exit Sub
            End Select
        End If
    Next hokaWorkbook
End Sub

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

このコードでは、すべての開いているブック(ThisWorkbookを除く)をループで処理し、各ブックに対して「保存しますか?」というメッセージボックスを表示します。

ユーザーが「はい」を選択すれば保存して閉じ、「いいえ」を選択すれば保存せずに閉じます。「キャンセル」を選択した場合は、処理を中断します。

間違って保存しないで閉じないか?のチェックにもなるのでいいですね!

 

VBAマクロで他のブックを閉じる(アクティブブック以外のすべてのブックを保存しないで閉じる)方法【Workbook.Close】

続いては、アクティブブック以外のすべてのブックを保存せずに閉じる方法について解説していきます。

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


Sub subeteNoHokaBookWoTojiru()
    Dim workbook As Workbook
    Application.DisplayAlerts = False
    For Each workbook In Application.Workbooks
        If workbook.Name <> ThisWorkbook.Name Then
            workbook.Close SaveChanges:=False
        End If
    Next workbook
    Application.DisplayAlerts = True
End Sub

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

このマクロは、アクティブなブック(ThisWorkbook)を除くすべてのブックを閉じます。

なおエクセルデフォルトの保存する・しないのメッセージを省略すべく、DisplayAlertsをFalseに設定して、保存の確認メッセージをスキップします。

作業中のブックに影響を与えないよう、最後にDisplayAlertsをTrueに戻しています。

 

まとめ VBAマクロで他のファイルを閉じる(上書き保存する・しない:選択も)方法

ここでは、VBAマクロでブックを閉じる(他のファイル:保存する・しない:選択も)方法について確認しました。

マクロをマスターしてさらに快適な生活を送っていきましょう!!(^^)/