教えて!ExcelVBA!

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

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

       f:id:m_kbou:20200418130356p:plain

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

 

【目次】

 

構文

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

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

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

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

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

[説明]:

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

[記述例]:

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

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

 

おわりに

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