プロが教えるわが家の防犯対策術!

エクセルVBAで タイマーイベントを 行っているのですが
行われたときは、その動作を 記録で残しているのですが
時々、行われないことがあります。

その時の 理由を 記録したいのですが、何か方法は有りますでしょうか
タイマーイベントに 何かありますでしょうか


ACT1 = Now
ACT1 = DateAdd("s", 260, ACT1 )
待ち時間 = DateAdd("s", 20, ACT1 )
yy = yy + 1
    orgdata.Cells(yy, 14) = " タイマー記録 1-- " & ACT1 & " -- " & 待ち時間
Application.OnTime ACT1 , "ACT-A", 待ち時間
DoEvents

ACT2 = Now
ACT2 = DateAdd("s", 520, ACT2)
待ち時間 = DateAdd("s", 20, ACT2)
yy = yy + 1
   orgdata.Cells(yy, 14) = "タイマー記録 2-- " & ACT2 & " -- " & 待ち時間
Application.OnTime ACT2, "ACT-B", 待ち時間
DoEvents

orgdata.Cells(yy, 14) の記録
タイマー記録 1-- 2018/08/10 18:04:45 -- 2018/08/10 18:05:05
タイマー記録 2-- 2018/08/10 18:09:05 -- 2018/08/10 18:09:25


マクロa8:e & 10000).ClearContents-in2018/08/10 18:01:28
マクロout2018/08/10 18:01:29
ACT-B() -in2018/08/10 18:09:05
Call doTradeMorning22018/08/10 18:09:05


この時は 1のタイマーがスルーされたのですが
エクセルを 弄っていたのかもしれません
しかし、20秒を超えることは無いかと・・・・
とりあえず 待ち時間を 40秒には変えてみるつもりではいるのですが

A 回答 (1件)

行われなかった理由とは、具体的にどんな記録を期待していますか?「セルに入力中だった」「メッセージボックスを表示中だった」とかですか?であれば、無理です。

Excelからしてみれば、「最終時刻まで待ったが、実行できなかった」というだけで、その理由を返す機能も無いと思います。
未実行の記録を残すだけであれば、最終時刻を設定しないで、必ず"ACT-A"を実行するようにし、"ACT-A"の中で最終時刻の経過を判断、本来の処理を行うか、未実行を記録するかを切り分ければ良いと思います。
    • good
    • 1
この回答へのお礼

ありがとうございます

actの実行記録は取るようになっていますから・・・

>最終時刻を設定しないで、必ず"ACT-A"を実行するようにし
若干、意味不明
その中のコードに問題があるわけではないので、その時間の時のデータが必要なわけでして

お礼日時:2018/08/14 08:34

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