アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのマクロを実行後、閉じるときにマクロ自身の変更を保存せずに閉じたいです。
現在作成しているエクセルのマクロなのですが、マクロを実行した後、そのマクロを閉じようとすると「'○○○○.xlsm'の変更内容を保存しますか?」というダイアログがでて「保存」が選択できてしまう状況です。
マクロ自身を閉じるときに上記のようなダイアログを表示せず、変更を保存せずに閉じたいのですが、方法がわかりません。
どなたか詳しい方教えてください。

excel ver.: 2007 & 2016
マクロは正常に動いています。

お願いします。

A 回答 (3件)

Application.DisplayAlertsを使用すれば可能ですよ。



ブックを閉じる(Office tanaka)
http://officetanaka.net/excel/vba/file/file03.htm
    • good
    • 0
この回答へのお礼

ご返信ありがとうございます。
検証できました。
----
MsgBox "マクロを終了します"
Application.DisplayAlerts = False
ThisWorkbook.Close
----
で、DisplayAlertsを切ってマクロから自身をcloseしてしまえばいいんですね。ありがとうございました。

お礼日時:2018/04/25 12:31

よく分からない話です。


この話が通じないようなら、もう少し說明をしていただきたいです。

ExcelのVBA 側を変更したら、
>「'○○○○.xlsm'の変更内容を保存しますか?」というダイアログがでて「保存」

当然、そうなりますね。もしも、マクロの実行の対象がその都度変わるようなコードを書いても、保存がでない方法、言い換えれば、マクロのコードは変更されていないコードを書けば済むわけです。

それは、どうするかというと、外部ファイルや他のExcelブックの値を、オープン時に読み取るようにするか、また、実行時に、InputBox をはじめ、ダイアログなどをつけて、そこで値を入れれば済むわけです。マクロVBAコードは、バグつぶしが終わって安定したら、「保存しますか?」というダイアログ・メッセージは出てこなくなります。そこで初めて、プロテクトを掛けて不用意に、コードを書き換えをしてしまうことを防ぎます。

むろん、コードを書いた後すぐに、Ctrl+ s で上書き保存して置けば、VBE側で、保存を促せられることはありませんが。

マクロ自身の変更で、何も出ないとしたら、それは使いづらくてしょうがないです。

アドインにしてリードオンリーの属性にさせたり最終ファイルにしてしまえばよいのですが、そこまで必要なのでしょうか?そういうマクロの設定というのは、よほどの実力がないと使えません。

マクロのThisworkbook モジュール のWorkbook_BeforeClose イベントで、Saved プロパティをTrue にして、保存ダイアログを封じる手段は、あくまでも、揮発性関数の終了時の再計算を無効にする方法だと考えたほうがよいと思います。
    • good
    • 0

> 「'○○○○.xlsm'の変更内容を保存しますか?」というダイアログがでて



シートの内容を保存しますか?ってダイアログでは?
Excelでは、シートの変更もマクロの変更も、ワークシートに保存されます。

そのマクロでは、シートは変更されないから保存されなくてOK?
そのマクロで自身のマクロの内容を更新しちゃう処理なの?

下記のような方法では?

Microsoft サポート - Excel でブックを閉じるときに表示される "変更を保存しますか?" というメッセージを非表示にする方法
https://support.microsoft.com/ja-jp/help/213428/ …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!