ブックの保存確認ダイアログ
Excelを終了する際に、以下の警告ダイアログが見たことがあると思います。
個人用マクロブックの場合はこのダイアログが出ます。
どちらも書いてある通りで、未保存の場合に出てきます。ところがそれが煩わしいことがあります。Now関数のようなブックが開くたびに結果が変わる関数を使っていると何もしていないのに編集されたとみなされます。でも保存する必要はない、という場合ですね。
対応方法として2つあります。
1つは保存はしないのですが保存済みとみなして、保存確認ダイアログを出さない方法で、もう1つは再計算の結果を自動保存して、保存確認ダイアログを出さない方法です。どちらを使うかは状況によって変わりますので、ブックごとに判断してください。
保存はしないけど保存済みとみなすソースコード
以下のソースは、ブックを閉じる直前のイベント処理で保存済みとみなしています。
ブックに対する処理になるため、ThisWorkBookに書かなければ動作しません。
1 2 3 4 |
Private Sub Workbook_BeforeClose(Cancel As Boolean) '// 保存済みとみなす Me.Saved = True End Sub |
閉じるたびに自動保存するソースコード
以下のソースは、ブックを閉じる直前に自動保存します。
こちらもブックに対する処理になるため、ThisWorkBookに書かなければ動作しません。
1 2 3 4 |
Private Sub Workbook_BeforeClose(Cancel As Boolean) '// 自動保存する Me.Save End Sub |
個人用マクロブックの自動保存
上記ソースコードは通常のExcelブックだけでなく個人用マクロブックにも利用できます。
方法は、personal.xlsbのThisWorkBookに同じように書きます。
警告ダイアログを一時的に出さないようにする
このページの趣旨とは違うのですが、シートの削除などを行う場合に出るダイアログがあります。
こういうダイアログを一時的に出さないようにするには以下のようにApplication.DisplayAlertsを一時的にFalseにして警告を回避します。
1 2 3 4 5 6 7 |
Sub testSub() Application.DisplayAlerts = False '// 警告が出る処理をここに書く Application.DisplayAlerts = True End Sub |
確認ダイアログを出さないようにする前に
上記の通り、保存確認ダイアログを出さないようにすることは可能ですが、ダイアログが出るというのは意味があって出していますので、本当に非表示にしてもよいかを確認するようにしましょう。