• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで指定時刻まで一時停止するコード)

VBAで指定時刻まで一時停止するコード

このQ&Aのポイント
  • VBA初心者のため、VBAで指定時刻まで一時停止するコードがうまく動作しません。当日の午前9時から実行し、午後6時まで一時停止したいですが、すぐに午後6時以降のコードが実行されてしまいます。どのようなコードを記述すれば良いでしょうか?教えてください。
  • VBA初心者のため、VBAで指定時刻まで一時停止するコードがうまく動作しません。午前9時から実行し、午後6時まで一時停止したいですが、すぐに午後6時以降のコードが実行されてしまいます。解決策を教えてください。
  • VBA初心者のため、VBAで指定時刻まで一時停止するコードがうまく動作しません。午前9時から実行し、午後6時まで一時停止したいですが、すぐに午後6時以降のコードが実行されてしまいます。どうすれば良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.4

Sub testz()  Dim PauseTime As Date  PauseTime = Now() + TimeValue("0:2:0")  Do   DoEvents   'If Now() > PauseTime Then Exit Do  Loop While Now() < PauseTime  MsgBox "AAA" End Sub とすれば期待の動きになるものと思いますが、 長時間待つ間に、 他のマクロブックを開く、他のマクロを実行する といったことが行われると 課題マクロが停止してしまうんじゃないかと思います。 (未検証です。) 私だったら、 9時に行うマクロと18時に行うマクロを マクロブック単位で分け タスクスケジューラーを使います。 9時に行うマクロが正しく動作したかどうかを 18時に行うマクロでチェックしたいということであれば 例えば、 9時に行うマクロが正しく終了するときにダミーファイルを書き出し 18時に行うマクロがこのダミーファイルの有無をチェックする といった仕組みを組み込んではいかがでしょうか。

noyyon900
質問者

お礼

ご回答いただいたコードで実行してみましたが、他のExcelブックが開けない状態です。タイムスケジューラーを使う方法でやることにします。 ご回答ありがとうございました!

その他の回答 (4)

回答No.5

> Loop While Now() < Finish 今のコードでは、この部分が実行されるときにはFinishに値が入っていません。 なので、すぐにループを抜けてしまうのでしょう。

noyyon900
質問者

お礼

そういうことなんですね。まだまだ勉強中の身ですが、精進していきたいと思います。 ご回答ありがとうございました!

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

> Ontimeですと、Excelが固まってしまって(午後6時まで動作を中断し続けるので)、他の業務でExcelが使えません。 そうですか、なにかとバッティングするんでしょうか。単純なコードで試してみましたがtを実行したあと普通に使えて再度tが実行されました。 Sub t() Dim i As Long MsgBox "DDD" For i = 1 To 10 Cells(i, "A").Value = i Next Application.OnTime TimeValue("19:30:00"), "t" End Sub

noyyon900
質問者

お礼

そうですか。。 こちらでは何か別の要因があるのかもしれません。調べてみます。ご回答ありがとうございました!

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

OnTimeメソッドでどうでしょう https://excel-ubara.com/excelvba1/EXCELVBA420.html

noyyon900
質問者

補足

Ontimeですと、Excelが固まってしまって(午後6時まで動作を中断し続けるので)、他の業務でExcelが使えません。 使用はしましたが、上記のような都合でDoWhile構文にした次第です。

  • hahaha8635
  • ベストアンサー率22% (800/3610)
回答No.1

タイマー割込み https://excel-ubara.com/excelvba4/EXCEL299.html 二重起動防止とか割り込み禁止とか やらないといけないから APIの知識は必須だと思う

noyyon900
質問者

お礼

ありがとうございます。参考にします。

関連するQ&A