|
ブックを編集して閉じると、上書き保存をしていなければ下のようなダイアログボックスが出ます。これを出ないようにしてみましょう。それには2つの場合があります。1つはブックを自動で上書き保存させる場合、もう1つはブックに変更があっても保存しないで終了する場合です。 ブックを自動で上書き保存させる場合 ワークブックモジュール内に以下のプロシージャを記述します。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub
ブックに変更があっても保存しないで終了する場合 この場合もワークブックモジュール内に以下のプロシージャを記述します。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
以上のようにとても簡単なものです。1つ目のプロシージャは「はい」のボタンを押すことに相当します。いちいち確認のダイログボックスで「はい」を押さなくても、変更があればすべて更新するという場合に便利です。2つ目のプロシージャは「いいえ」のボタンを押すことに相当します。変更を加えたくないブックであれば有効ですが、このプロシージャだけでは意味がありません。なぜなら手動で上書き保存してしまえば更新されてしまうからです。ですからたいていの場合、「Workbook_BeforeSave」イベントと併用します。 余談ですが、それでは「キャンセル」のボタンに相当するプロシージャはあるでしょうか? 答えは「YES」で下のようになります。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = True
End Sub
困ったもので、どのようにしてもブックもアプリケーションも閉じなくなります。これはユーザー側に一定の操作を要求する場合に使います。例えば特定のセルに日付等を入力していなければ閉じることができないようにする時です。もちろんこの場合、追加の記述が必要です。 |