Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


40832 / 76736 ←次へ | 前へ→

【40994】Excel終了時の動きについて
質問  foo  - 06/7/27(木) 14:50 -

引用なし
パスワード
   こんにちは、現在組んでいるマクロで、ブックのbeforecloseイベントにおいて、フラグ(グローバル変数)の値がTrueだった時にMsgBoxを出す処理を入れてます。

これがそのブックを閉じる操作の場合は期待通りの動作をするのですが、Excelを終了する時にはMsgBoxを出さずに終わってしまいます。
デバッガで見たところ、beforecloseの中でのフラグの値はFalseになっていました。

実はこの現象の要因と思われる条件が1つあります。
この要因が無ければExcel終了時でもMsgBoxが表示されました。

言葉で説明するよりサンプルコードを見ていただいた方が早いと思うので、以下に挙げます。

-----(標準モジュール)------
Public Flag As Boolean

Sub test()
  Flag = True
  
  Do While True
    newHour = Hour(Now())
    newMinute = Minute(Now())
    newSecond = Second(Now()) + 1
    waitTime = TimeSerial(newHour, newMinute, newSecond)
    Application.Wait waitTime  '(当然実際はここでもっと違う処理を行う)
    DoEvents
  Loop
End Sub
-----------------------------

-----(ThisWorkbookモジュール)------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  if Flag then MsgBox "End..."
End Sub
-----------------------------

testを実行してから、ブックを閉じようとした場合はMsgBoxが表示されますが、Excelを終了させようとした時は表示されません。

また前述のように、例えばtestのDoループ部分を削除してFlagの値をTrueにした後に、Excelを終了しようとした時は、MsgBoxが表示されました。

どういう経緯でこのような現象が起きるのか分かる方いらっしゃるでしょうか?
また、上記Doループがある時でも期待するような動作を実現するための解決案がありましたらご教授ください。

よろしくお願いします。
0 hits

【40994】Excel終了時の動きについて foo 06/7/27(木) 14:50 質問
【40996】Re:Excel終了時の動きについて neptune 06/7/27(木) 15:17 発言
【40998】Re:Excel終了時の動きについて foo 06/7/27(木) 15:30 お礼
【40997】Re:Excel終了時の動きについて Kein 06/7/27(木) 15:20 発言
【40999】Re:Excel終了時の動きについて foo 06/7/27(木) 15:38 発言
【41004】Re:Excel終了時の動きについて Kein 06/7/27(木) 15:56 発言
【41021】Re:Excel終了時の動きについて ichinose 06/7/27(木) 20:44 発言
【41022】Re:Excel終了時の動きについて ichinose 06/7/27(木) 21:02 発言
【41023】Re:Excel終了時の動きについて neptune 06/7/27(木) 21:13 発言
【41033】Re:Excel終了時の動きについて foo 06/7/28(金) 9:25 お礼
【41032】Re:Excel終了時の動きについて foo 06/7/28(金) 9:12 お礼
【41040】Re:Excel終了時の動きについて ichinose 06/7/28(金) 11:08 発言
【41051】Re:Excel終了時の動きについて foo 06/7/28(金) 13:13 発言
【41060】Re:Excel終了時の動きについて ichinose 06/7/28(金) 13:54 発言
【41062】Re:Excel終了時の動きについて foo 06/7/28(金) 14:12 お礼
【41076】Re:Excel終了時の動きについて ichinose 06/7/28(金) 16:57 発言
【41077】Re:Excel終了時の動きについて 追伸 ichinose 06/7/28(金) 17:05 発言
【41079】姑息技 Jaka 06/7/28(金) 17:14 発言
【41086】Re:姑息技 foo 06/7/28(金) 18:56 お礼
【41085】Re:Excel終了時の動きについて foo 06/7/28(金) 18:25 お礼

40832 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free