EXCELを使用していると、EXCELの作業終了後、ブックを閉じる作業を行いますが、その時に、開いているブックを閉じるには、Closeメゾットを使用します。また、ブックデータの状態が、保存後にデータが変更されているかされていないかを調べる時は、WorkBookオブジェクトのSavedプロパティを利用します。なお、EXCELアプリケーションを終了するには、ApplicationオブジェクトのQuitメゾットを利用します。それでは、順番に説明いたします。
●EXCEL VBA EXCELファイル・ワークブック・アクティブシートの保存・上書き保存・選択保存
(SaveAs・GetSaveAsFilename)の方法につきましては、下記のURLを参照にして下さい。
https://akira55.com/saveas/
●オブジェクト.Close(SaveChanges,Filename)
※ブックを閉じる時に使用
【SaveChanges】・・・下記参照
【Filename】・・・ブックの保存先を指定
| SaveChangesの値及び説明 |
|---|
| 値 | 説明 |
| True | ①引数:Filename(設定あり)ブックに変更があった場合は、指定されたファイル名で保存される。
②引数:Filename(設定なし)既存ブックは上書き保存される。ただし、新規ブックの場合は、「名前を付けて保存」ダイアログボックスが表示される。また、ブックに変更がない場合は、そのまま閉じる |
| False | ブック変更を保存しないで閉じる |
| 設定なし(省略) | ブックに変更がある場合は、保存するか確認メッセージが表示される |
記述例:ActiveWorkbook.Close True, “C:\HOZON\TEST_BOOK.xlsm”
説明 :現在開いているワークブックをCドライブの”Hozon”フォルダーの中に「TEST_BOOK.xlsm”」の名前で保存します。
●オブジェクト.Saved
※ブックの内容が変更されているか確認
Saved = True ・・・ ブックの内容が変更されている。
Saved = False ・・・ブックの内容が変更されていない。
●アプリケーションオブジェクト.Ouit
※EXCELアプリケーションを終了します。
Application.Quit ・・・EXCELを終了
下記のサンプルプログラムは、EXCELブックを閉じる方法を4パターン作成しました。
①アクティブブックを閉じます。[ True ]の場合、変更があれは、同じファイルに保存し閉じます。変更が無ければ、そのまま閉じます。
②アクティブブックを閉じます。[ False ]の場合、変更があってもそのまま閉じます。
③アクティブブックを閉じます。[ 省略 ]の場合、変更があった場合は、保存するか確認メッセージが表示されます。
④アクティブブックの変更が合った場合、別のファイル名で別の場所に保存します。
下記のサンプルプログラムは、EXCELブックを保存する方法の2パターンを作成しました。
①現在のアクティブブックを保存(Save)します。
②全てのブックを全て保存してEXCELを終了します。