Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows XP全般 : Excel 2000)
ブックを閉じるときに表示されるメッセージにつきまして
投稿日時: 18/02/21 18:50:00
投稿者: SA90118

お世話になります。
 
ブックを閉じるときに表示されるメッセージにつきまして
 
概要
 変更していないのにブックを閉じると必ず「〜保存しますか?」とメッセージが表示される
  為、以下を参考に追加しますとメッセージが無くブックが閉じるようになりました。
https://support.microsoft.com/ja-jp/help/213428/how-to-suppress-save-changes-prompt-when-you-close-a-workbook-in-excel
 
Private Sub Auto_Close()
  Application.DisplayAlerts = False '追加
    ActiveWorkbook.Close '追加
    Application.DisplayAlerts = True '追加
End Sub
 
質問
ブックを閉じたとき、内容が変更された場合には「〜保存しますか?」とメッセージが表示され、
ブックの内容が変更されなかった場合にはメッセージが非表示で閉じるようにしたいのですが、
ご助言をお願いします。

回答
投稿日時: 18/02/21 19:33:41
投稿者: WinArrow
投稿者のウェブサイトに移動

揮発性関数を含む数式が使われていると思います。
 
揮発性関数は
代表的なもの
TODAY関数
OFFSET関数
INDIRECT関数
NOW関数
 

揮発性感とは?
など、詳細はネットで検索してみて

回答
投稿日時: 18/02/21 19:56:01
投稿者: めんたん

「変更」で意図しているのがたとえば「値の変更」の場合、ブックを開いた時に
データ入力部分の情報を隠しシートに貼り付けておいて、ブックを閉じる時に
変更の有無を確認する、という運用は出来ると思います。
  
「書式の変更」まで見張りたいのなら、すでに書かれているとおり揮発性関数を
使用しないように変更したうえでDisplayAlertsプロパティをTrueのままで
運用すればよいかと思います。

投稿日時: 18/02/21 21:19:35
投稿者: SA90118

WinArrow さん
 
ご回答をして頂きまして、ありがとうございました。
 
>揮発性関数を含む数式が使われていると思います。
はい、揮発性関数は、知りませんでした。
検索で調べましたら開いてなにもせずに閉じてもマクロや
関数で内部データを更新されますと説明されていました。
 
>TODAY関数 OFFSET関数 INDIRECT関数 NOW関数 ・・・
その為にメッセージは必ず出ますとのことです。
 
原因が分りましたので従来の方法で使用することにしました。
 
大変勉強になりました。
 
お世話になりました。