重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんにちは、VBAの初心者です。
Application.OnTimeとは目覚し時計をセットするみたいに
時間になったら実行させたいタスクの「予約をする」ことですか。
----------------
例えばThisWorkbookに

Sub ThisWorkbook_Open()
 Application.OnTime TimeValue("09:00:00"), "A"
 Application.OnTime TimeValue("10:00:00"), "B"
 Application.OnTime TimeValue("11:00:00"), "C"
End Sub

標準モジュールに

Sub A()
 Beep
End Sub

Sub B()
 Beep
End Sub

Sub C()
 Beep
End Sub
---------------
と書けば、Workbookを開いた時に「3つのタスクが予約された」と考えて良いのでしょうか。
その場合、11時前にEXCELを終了させたら
最後のタスクは自然消滅するのでしょうか、それともエラー扱いになるのでしょうか。

A 回答 (1件)

こんばんは。



今、改めて、Help で、OnTime メソッドを読んでみました。
その内容では、分からないですね。このヘルプの文章は非常に良くないですね。

>Workbookを開いた時に「3つのタスクが予約された」と考えて良いのでしょうか。

ちゃっん設定されています。

>その場合、11時前にEXCELを終了させたら
>最後のタスクは自然消滅するのでしょうか、

このOnTime イベントのトラップの設定は、Excelを終了すると消えてしまいます。しかし、そのブックを閉じても、Excelがオープンして、スケジュール(Schedule:=)をFalse にしない限りは、そのトラップは残って、そのブックを呼び出し、マクロを実行します。
    • good
    • 0
この回答へのお礼

Wendy02 様
ご返事ありがとうございました。

>>スケジュール(Schedule:=)をFalse にしない限りは、そのトラップは残って、そのブックを呼び出し、マクロを実行します。

なるほど、勉強になりました。

お礼日時:2007/02/04 22:23

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