- ベストアンサー
VBAで、強制保存してブックを閉じるには?
私の持っている書籍によると、 ActiveWorkbook.Close SaveChanges:=True これで、上書き保存してクローズしてくれると思っているのですが、 ファイル指定のダイアログが表示されて、ファイル名の指定を促されます。 もちろん、ファイル名はすでについています。 また、上書き保存を指定しているつもりなのに、保存ボタンを押すと 上書きするか?と聞いてきます。 ダイアログなど表示せずに、静かにクローズしてほしいのですが、 どうすれば良いのでしょう?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
手元にExcelがないのですが、業務で使用している者です。 いろいろ調べてみると、確認ダイアログを表示しないようにする Application.DisplayAlerts= Flase が、あるようです。これを利用してみてはいかがでしょうか。 また、ファイル名が確定しているのにファイル名指定を促される場合、 もしかしたら、マクロによってCloseしようとしているのが、目当ての ファイル(ブック)ではなく、別の新規ファイルということはないでしょうか。 保存ボタンを押すと上書き確認が出る場合は、そのファイルのいずれかの シートに、DATE・TIMEなどといった、開くごとにセル内容の変更が行われる 数式・マクロが含まれていませんでしょうか。 業務での使用している限りでは、共有にしていてオートフィルタをかけているとき 開くごとに変更が行われるので、閉じるときに上書き確認が表示されます。 的外れでしたら申し訳ありませんが、いかがでしょうか。
その他の回答 (3)
- ykym
- ベストアンサー率22% (8/35)
こんばんは 下記の方法で保存後終了します。 'ワークブックを上書き保存 ActiveWorkbook.Save 'ワークブックを閉じる ActiveWorkbook.Close 'Excelを終了 Application.Quit です。
お礼
本件自体は解決していませんが、 そもそもの処理を別方式にしたことにより、 問題がなくなりました。 お付き合いいただき、ありがとうございました。 今後ともよろしくおねがいいたします。
- BlueRay
- ベストアンサー率45% (204/453)
確認メッセージの非表示は、wogotaさんの方法で出来ますよ。 更に追加で1件ほど、DisplayAlertsをfalseにしたままにしておくと excelが終了するまでその状態が続きますので必ずマクロ終了前にtrueに 戻しておく事を忘れないで下さい。 保存するのを忘れて閉じるをしてしまうと保存せずに終了してしまいますので。 '確認メッセージの非表示 Application.DisplayAlerts = Flase ~ここに、処理~ '確認メッセージの表示 Application.DisplayAlerts = true
お礼
本件自体は解決していませんが、 そもそもの処理を別方式にしたことにより、 問題がなくなりました。 お付き合いいただき、ありがとうございました。 今後ともよろしくおねがいいたします。
- ykym
- ベストアンサー率22% (8/35)
Save メソッドを使います。 ActiveWorkbook.Save です。
お礼
本件自体は解決していませんが、 そもそもの処理を別方式にしたことにより、 問題がなくなりました。 お付き合いいただき、ありがとうございました。 今後ともよろしくおねがいいたします。
補足
回答ありがとうございます。 保存はされるようですが、ブックは閉じないようです。 ちなみに、やりたい(かつ試した)のはこんな感じです。。。 Worksheets(sheet).Copy ActiveWorkbook.SaveAs Filename:=PathName, FileFormat _ :=xlText, CreateBackup:=False ActiveWorkbook.Save ' ActiveWorkbook.Close SaveChanges:=True
お礼
本件自体は解決していませんが、 そもそもの処理を別方式にしたことにより、 問題がなくなりました。 お付き合いいただき、ありがとうございました。 今後ともよろしくおねがいいたします。