• ベストアンサー

エクセル保存確認なしで終了するには

エクセルで二つのファイルを立ち上げて使用をしてます。 1つはデ-タファイルとして、 1つは検索機能を持たせていて、入力することによりデ-タファイルから検索してきて表示させるようにして使用しています。 デ-タファイルは数人で使用することもあり、常に保存しないで終了するようにしています。 あまりエクセルに詳しくない人も使用している為 終了時に×で閉じて二つのファイルを保存しないで終了させる方法はないでしょうか? 終了ボタンを作る方法で出来るならそちらでもいいのですが・・ よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

winarrow07です。 すいません、さっき回答したやつは実は試してなくて、さっき試したみたらよくないところとか間違ってるとこあったので、訂正させてください。 ■検索機能のあるほうのEXCELの"標準モジュール内"に下記をコードを記述。 ----------------------------------------------- Sub Auto_Close() Dim wbName As Workbook For Each wbName In Workbooks If wbName.Name = "xxxxx.xls" Then Workbooks("xxxxx.xls").Close savechanges:=False End If Next ThisWorkbook.Close False End Sub ------------------------------------------------------- ※xxxxx.xlsはもうひとつの一緒に落としたいファイル名です 以上です。すいません。 こちらは動かしてみたので大丈夫と思います。。

africat
質問者

お礼

はい。完璧にできました。 意味はわかっていませんが、ゆっくり考えて理解してみたいと思います。 この度はありがとうございました。

その他の回答 (4)

回答No.5

winarrow07です。 >はい。完璧にできました。 良かったです。 Sub Auto_Close() →ファイルを閉じる際に自動で実行されます。 For Each wbName In Workbooks If wbName.Name = "xxxxx.xls" Then Workbooks("xxxxx.xls").Close savechanges:=False End If Next →もし、xxxxx.xlsというファイルが開いていれば保存しないで閉じる。  xxxxx.xlsが開いていないとcloseできずにエラーになるので開いていることを確認させています。  確認不要ならWorkbooks("xxxxx.xls").Close savechanges:=Falseの一行ですみます。 ThisWorkbook.Close False →自分自身を保存しないで終了させてます。

africat
質問者

お礼

遅くなってすみません。 解説までして頂いて恐縮です。 ファイルが開いているかの確認ですか・・・すごいですね。 何となく・・を積み重ねて色々やっていってみたいと思います。 又何かの時はよろしくお願いします。

回答No.3

検索用のファイルのWorkbookオブジェクトに下記のような記述をします。そうすると検索用のファイルを×で閉じるともうひとつのほうを閉じて更に自分自身も閉じます。保存するかは確認せずに、保存しないで終了します。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Workbooks("xxxxx.xls").Close SaveChanges:=False ThisWorkbook.Close SaveChanges:=False End Sub ※xxxx.xlsはもうひとつのファイルのファイル名のほうです。

この投稿のマルチメディアは削除されているためご覧いただけません。
africat
質問者

お礼

お礼が遅れてすみません。 まさに望んでいた通りの回答を頂き、 ほぼ完璧ではないでしょうか。。。 今少し別の作業でまだ試せていないのですが・・ 又後ほど結果報告させて頂きますが、取り急ぎお礼まで。 わかりやすい説明と画像添付までして頂き ありがとうございました。

africat
質問者

補足

試してみましたが、 後少しで・・という雰囲気です。 (1)インデックスが有効範囲にありません。の表示 (2)デバッグはWorkbooks("***.xls").Close ・・のところです (3)このコマンドを使うとデバッグは中断を→OK (エクセルは閉じられていません) ただ検索とデ-タの二つのファイルは保存確認なしに閉じられています。 もう少し教えて頂けないでしょうか?お願いします。

回答No.2

×を押したら自動で保存しないで閉じるようにすればいいです。 workbook_BeforeCloseイベントで セーブしないで終了するようにすればいいと思います。 どちらにせよ、VBAの記述が必要かと。

africat
質問者

補足

早くに回答ありがとうございます。 VBAは理解出来ていないので、あちこちの参考を見つけては何とかやっている程度ですので・・・すみません。 以前『Workbooks("***.xls").Close SaveChanges:=True』で保存確認なしで終了をしていたのですが、一つのファイルしか終了しません。 最近の記述で Private Sub Workbook_Before Close(Cancel As Boolear) This Workbook Close False End Sub というのを見つけて書き込んでみましたが上手くいきませんでした。 それと出来れば検索機能のあるファイルを閉じる(×)ことにより 検索ファイル及びデ-タファイル二つのファイルが 保存確認なし(保存しない)に終了するようにしたいと思っています。 Workbookとすることで記述するファイルを指定しているのでその段階で無理なようにも思いますが。。。 Applicationとすれば? 記述の問題ではなくて何か別の理由があるのかも知れませんが・・

回答No.1

関連するQ&A