次の方法で共有

閉じるボタン押下時に「このドキュメントは変更されています~」メッセージを表示させない方法

Anonymous
2010-08-05T02:38:30+00:00

お分かりの方おられましたらご教示お願い致します。

EXCELの閉じるボタンを押下すると、Bookに変更があった場合、「このドキュメントは変更されています~」

というメッセージが表示されます。これを抑制する方法はありますでしょうか。

尚、WorkBook_BeforCloseイベントで ThisWorkBook.saved =true を行っても

イベント発生よりもメッセージ表示のほうが先に処理されるため、抑制できませんでした。

やはり、各Sheetのcahngeイベントやselectionchangeイベントに savedの設定を

しなければいけないのでしょうか。

閉じるボタン押下時に走るイベントがあればそこで制御したいのですが、

そういったものは存在するのでしょうか。

以上、宜しくお願い致します

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-08-05T08:27:01+00:00

こんにちは。

確認してみました。

ブラウザ上でExcelファイルを開いた場合にメッセージが表示されるようですね。

試しに、Excelの方ではなく親となるInternetExplorerオブジェクトのOnQuitイベントを

拾って見ましたが、OnQuitよりも早くダイアログが表示されました。

ブラウザでExcelファイルを表示させた場合、InternetExplorerオブジェクトの

DocumentがWorkbookとなり、HTMLWindow2オブジェクトのonbeforeunloadイベントを

拾うこともできませんでした(IE6の場合)。

どうしてもダイアログを表示させたくない場合はSheetChangeイベントあたりに

「ThisWorkbook.Saved = True」入れれば対応できるかと思いますが、

シート上の値が変化する度にイベントが走るので、あまり好ましくないように

思います。

私個人としては、ダイアログが表示されるのは気にせず、「確認メッセージが表示されたら

「いいえ」ボタンをクリックしてください。」と通達する等して、運用上でカバーした方が

方が良いのではないかと思います。

(もしくはブラウザ上でファイルを開かないようにするか)

もしどうしても制御したい場合には、例えばセルA1の値が変化したときだけ

ThisWorkbook.Saved = Trueが実行される、というように条件を指定しておいた

方が良いでしょう。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2010-08-09T03:04:56+00:00

    きぬあさ 様

    検証までし実施いただき有難うございました。

    おっしゃる通りこれは運用で対応する方向で

    検討を進めようと思います。

    以上、

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2010-08-05T05:00:14+00:00

    きぬあさ 様

    ご回答ありがとうございます。

    ご助言いただいたことを踏まえ再確認しました。

    現在、当Excelファイルの利用は、htmlのTOPページにExcelファイルのリンクが

    張られており、そこから起動した場合、BeforCloseとメッセージの表示順番が

    逆転してしまうようです。

    Excelファイルを直に起動した場合は抑止することができました。

    もし、何か改善策をご存知でしたらご教示ください。

    以上、宜しくお願い致します

    因みに、BforeCloseでの処理に関しましては saved=trueの処理のみです。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2010-08-05T04:02:35+00:00

    こんにちは。

    Workbook_BeforeClose内の「ThisWorkbook.Saved = True」でメッセージを

    抑止できるはずですが、終了時のイベントで他に何か処理しているのでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません