アプリ版:「スタンプのみでお礼する」機能のリリースについて

 初めまして、よろしくお願いします。より正確な指定時間毎にマクロを実行させるやり方を考えています。
 1分毎ごとにマクロを実行する

nextTime = Now() + TimeValue("00:01:00")
Application.OnTime nextTime, "時間毎ごとに実行"

というやり方は解るのですが、

Application.OnTime TimeValue("09:00:00"), "時間毎ごとに実行"

 この指定時間("09:00:00")に実行するマクロを利用し
("09:01:00")、("09:02:00")、("09:03:00")、("09:04:00")、("09:05:00"),・・・・・の時間、秒が00になると("hh:ss:00")マクロを実行されるやり方は有るのでしょうか。
 もし有るのでしたら、よろしくお願いします。

A 回答 (3件)

例えばこんな感じでしょうか。



Dim SetTime As Date

Private Sub Test()
Range("A1").Value = Time
SetTime = TimeSerial(Hour(Time), Minute(Time) + 1, 0)
Application.OnTime SetTime, "Test"
End Sub

Sub TimerSet()
SetTime = TimeValue("09:00:00")
Application.OnTime SetTime, "Test"
End Sub

Sub TimerCancel()
Application.OnTime SetTime, "Test", , False
End Sub
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。このやり方でうまくできました。大変助かりました。

お礼日時:2010/12/31 21:27

>この指定時間("09:00:00")に実行するマクロを利用し



この意図がイマイチ見えませんが,こんな手もあります。



例:
今から5秒後から1秒ごとにMainをとりあえず30000回ほど実行してみる

sub setup()
 dim StartTime as date
 dim Interval as date
 dim Counter as double
 dim i as double
 
 starttime = now + timeserial(0, 0, 5)
 interval = timeserial(0, 0, 1)
 counter = 30000

 for i = 0 to counter
  application.ontime starttime + interval * i , "main"
 next i
end sub


sub main()
 range("A65536").end(xlup).offset(1) = now
end sub



#つまり一体何時になったら止めていいのかとか,そういった検討事項も必要になってきますね。
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。おもしろいものを教えていただき、参考にさせていただきたいと思います。

お礼日時:2011/01/03 09:33

確認することが出来ないので、考え方だけです。


If Time()<TimeValue("10:00:00")
nextTime = Now() + TimeValue("00:01:00")
Application.OnTime nextTime, "時間毎ごとに実行"

End If
として10時まで実行される様にする。


Private Sub Workbook_Open()
If Time()<TimeValue("09:00:00") Then
Application.OnTime TimeValue("09:00:00"), "時に実行"
Else
Application.Run XXXX
End If

End Sub
ThisWorkBookにOpen(開いたときに実行させる。)
9時より前に起動した場合は、9時になったら実行が始まる。
9時より後に起動した場合は、即実行
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。参考にさせていただきたいと思います。

お礼日時:2010/12/31 20:19

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

このQ&Aを見た人はこんなQ&Aも見ています