[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Auto_Closeで複数ブックを閉じる時、エクセルも同時に終了させたい』(ilskater)
Auto_Closeについて教えて下さい。
Auto_Closeで、指定のブックを一緒に閉じる処理を
書きましたが、エクセル自体を終了できません。
Workbook_BeforeCloseでも試しましたが、うまく処理
できません。エクセル本体も終了させたいです。
どのように記述したらよいでしょうか?
宜しくお願い致します。
ファイル("BBB")に下記コードを記入。
↓
Private Sub Auto_Close()
'指定のブックを閉じる(すでに別ファイル("AAA")は開いている状態)
Application.Windows("AAA.xlsx").Close False
Application.Quit
End Sub
↓
ファイルは両方終了するが、エクセルが閉じない
< 使用 Excel:Excel2010、使用 OS:Windows7 >
うーん不思議ですね。 こちらでは下記だけでも問題なく動きますが。
Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.Quit End Sub
保存確認を出したくないのであれば、どうせすべてのファイルを閉じるのですから、
Private Sub Workbook_BeforeClose(Cancel As Boolean) For Each wb In Workbooks If wb.Name <> ThisWorkbook.Name Then wb.Close False Next Application.Quit End Sub くらいでもできそうです。
このあたり一読してみてどうでしょうか。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_060.html
(Mook) 2014/08/02(土) 11:58
当該ブックのウインドーを閉じるのではなく、Excel本体のウィンドーを閉じた場合、 投稿されたような現象が再現できますねえ。
これは、Excel2010からなのか、2007からなのか、仕様に変更があるみたいですねえ・・・。
Thisworkbookのモジュールに
Private cls_cancel As Boolean '=========================================================================== Private Sub Workbook_BeforeClose(Cancel As Boolean) '指定のブックを閉じる(すでに別ファイル("AAA")は開いている状態) Cancel = Not cls_cancel If Cancel Then On Error Resume Next Workbooks("AAA.xlsx").Close False On Error GoTo 0 Application.OnTime Now(), "thisworkbook.quit" End If End Sub '=========================================================================== Sub quit() cls_cancel = True Application.quit End Sub
このようなコードで試して見てください。
(ichinose@子供がC++の勉強を一緒にしてくれなくなった) 2014/08/02(土) 20:24
エクセル2007 WinXPで投稿されたコードでichinoseさんの >当該ブックのウインドーを閉じるのではなく、Excel本体のウィンドーを閉じた場合 を確認し、再現できました。 また当たり前ですけど、エクセルを多重起動した場合もウィンドウが一つ残りました。
ご報告まで。
(稲葉@羨ましい息子さんですね!代わりに私と一緒n・・) 2014/08/04(月) 09:38
本当にありがとうございました。
(ilskater) 2014/08/05(火) 08:59
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.