[[20070709142135]] 『OnTimeメソッドの使用方法』(カルロ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『OnTimeメソッドの使用方法』(カルロ)

Excel2002、WindowsXP

こんにちわ。OnTimeソメッドの使い方について教えて下さい。
指定した時間にマクロを一旦停止し、データ処理後、マクロを再開
する命令ですが、処理が終了した後、OnTimeソメッドの取消し設定を教えて下さい。

次の使用例は、現在から 15 秒後に my_Procedure を実行します。

Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

OnTime設定の取消しマクロはどのように記入すればよいのでしょうか?
VBAヘルプにありましたが、設定の取り消しがマクロが動きません。
教えて下さい。


 OnTime の取り消しは、開始を指定した時間を指定して取り消します。

 Dim startTime
 startTime = Now + TimeValue("00:00:15")
 Application.OnTime startTime, "my_Procedure"

 のように指定した時間を記録しておき、
 Application.OnTime startTime, "my_Procedure",,False
 のようにして取り消します。
 (Mook)


上記 回答有難うございます(カルロ)
下記のようなマクロを試してみましたが、”Sub my_Procedure()”の方の
”startTime”に値が入らずエラー(実行時エラー1004:OnTimeは失敗しました。
Applicationオブジェクトとなってしまいました。
どうすればよいのでしょうか?

Dim startTime

Sub BBB()

 startTime = Now + TimeValue("00:00:05")
 Application.OnTime startTime, "my_Procedure"

End Sub

Sub my_Procedure()

MsgBox "取消しますか?", 48, "確認"

Application.OnTime startTime, "my_Procedure", , False

End Sub


 エラーが出る理由を勘ぐってみれば、「もう既に契約が成立しとんのに契約解除はでけ
 まへんで!」っちゅうとこでっしゃろか?
     (弥太郎)

 Sub BBB()
    Dim startTime
    MsgBox "5秒待ってんか!"
    startTime = Now + TimeValue("00:00:05")
    Application.OnTime startTime, "my_Procedure"
    If vbYes = MsgBox("取り消しますか?", vbYesNo) Then
        Application.OnTime startTime, "my_Procedure", , False
    End If
 End Sub
 Sub my_Procedure()
    MsgBox "取り消さなくて正解です"
 End Sub

 で成立しますけど
 かういう使い方が一般的ですわなぁ。

 Sub AAA()
    Dim startTime
    If vbYes = MsgBox("5秒待って作業しまっか?", vbYesNo) Then
        startTime = Now + TimeValue("00:00:05")
        Application.OnTime startTime, "my_Procedure"
    End If
 End Sub


弥太郎さん ユニークな回答有難うございます。

OnTimeソメッドは、指定した時間内に取り消さないとエラーがでるのですね。

大変 参考になりました。
なんとなくわかったような気がします。
お手数をお掛けしました。

今後共 よろしくお願いします。(カルロ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.