まさ工房

ExcelVBAとAcessDBを利用した業務支援ツールを作成する工房です

【Excelマクロ・VBA】ブックを保存して閉じる(Close)にはどうすればいいの?教えて!

       f:id:m_kbou:20190717081951p:plain

Excelブックを保存して閉じる方法について説明します。引数としてTrueを指定すると、ブックを保存して閉じます。また、Falseを指定すると、ブックを保存せずに閉じます。引数を省略すると、保存するかしないかを確認するダイアログボックスが表示されます。

 

【目次】

 

構文

記述方法は、以下の通りとなります。

=======================================================================

Workbooks(”[ブック名]”).Close SaveChanges: = True

Workbooks(”[ブック名]”).Close SaveChanges: = False

=======================================================================

[説明]:

ブックを保存する/しないを指定して閉じるには、Closeメソッドを記述します。[ブック名]には保存する/しないを指定するブック名を記述します。また、ブック名は「”」(ダブルクォーテーション)で囲みます。引数としてSaveChangesTrueを指定するとブックを保存して閉じ、Falseを指定するとブックを保存しないで閉じます。SaveChangesの後ろには「:」(コロン)が必要になります。内容を纏めると、「[ブック名]で記述したブックを保存する又は保存しないで閉じて下さい。」との意味になります。

[記述例]:

Workbooks("Book1.xlsx").Close Savechanges: = True
Workbooks("Book1.xlsx").Close Savechanges: = False
ActiveWorkbooks.Close Savechanges: = True
ActiveWorkbooks.Close Savechanges: = False

 

使い方

使い方について、具体的に説明していきます。

ブックを保存して閉じる方法

ブックを保存して閉じる方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    Workbooks("Book1.xlsx").Close Savechanges: = True
End Sub

-------------------------------------------------

内容は、「Book1.xlsxブックを保存して閉じて下さい。」との意味になります。

[実行例]:

・初期表示

※A1セルに「テスト」の文字を入力して実行する。

f:id:m_kbou:20190717082013p:plain

・実行後 

※再度Book1.xlsxブックを開くと、A1セルに「テスト」の文字が保存された事がわかる。

f:id:m_kbou:20190717082013p:plain

ブックを保存して閉じる方法についての説明は以上です。

 

ブックを保存しないで閉じる方法

ブックを保存しないで閉じる方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    Workbooks("Book1.xlsx").Close Savechanges: = False
End Sub

-------------------------------------------------

内容は、「Book1.xlsxブックを保存しないで閉じて下さい。」との意味になります。

[実行例]:

・初期表示

※A1セルに「テスト」の文字を入力して実行する。

f:id:m_kbou:20190717082013p:plain

・実行後 

※再度Book1.xlsxブックを開くと、A1セルに「テスト」の文字が保存されていない事がわかる。

f:id:m_kbou:20190717082108p:plain

ブックを保存しないで閉じる方法についての説明は以上です。

 

引数を指定しないでブックを閉じる方法

引数を指定しないでブックを閉じる方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    Workbooks("Book1.xlsx").Close
End Sub

-------------------------------------------------

内容は、「Book1.xlsxブックを閉じて下さい。」との意味になります。

[実行例]:

・初期表示

※A1セルに「テスト」の文字を入力して実行する。

f:id:m_kbou:20190717082013p:plain

・実行後 

※保存するかしないかの確認ダイアログボックスが表示される。

f:id:m_kbou:20190717082122p:plain

引数を指定しないでブックを閉じる方法についての説明は以上です。

 

おわりに

今回は、ブックを保存する/しないで閉じる方法について説明しました。引数であるSaveChangeは、ブックに変更があり、同じブックが他のウィンドウで開かれていない場合のみ有効になります。注意して下さい。