Excel VBA(エクセル マクロ) 小技集そのI 指定時刻、一定時間毎に繰り返しマクロ自動実行

指定時刻になったらマクロを自動実行する方法。
また、一定時間毎にマクロを繰り返し実行する方法。

ExcelにはOnTime関数というものがあって、指定時刻にサブルーチンを実行する関数がある。

http://msdn.microsoft.com/ja-jp/library/cc384090.aspx


早速活用する。

Public sum As Integer

Sub mes()
sum = sum + 1
Cells(sum, 1) = Now
Application.OnTime Now + TimeValue("00:00:05"), "mes", Now + TimeValue("00:00:10")
End Sub


Application.OnTimeを使用する。
(詳しい説明はマイクロソフトのMSDNのサイトを読んでください。)
http://msdn.microsoft.com/ja-jp/library/cc384090.aspx


Now + TimeValue("00:00:05")で現在から5秒後に

"mes"は実行するマクロ関数mes、ここでは回帰的にmesを初めから実行、

Now + TimeValue("00:00:10")で現在から10秒後に実行終了。


5秒後にmes関数を実行し続ける。

Public sumで関数が終了してもsumの値が保存されるようにしているので

5秒ごとに、Cells(sum, 1) = Nowがエクセルシートの記入されていく。


Nowは日付と時刻のシリアル値。
TimeValue("00:00:05")は"00:00:05"をシリアル値に変更した値。

Now + TimeValue("00:00:05")の部分はシリアル値を入れるようだ。
DateValue("2008/9/2")もシリアル値に変更する関数だ。


これを応用すると、毎日指定時間にマクロを自動実行してくれる。
(パソコンはつけっぱなしでエクセルは開いていないといけないが。。)


Sub mes()
*
*
Application.OnTime Date + 1 + TimeValue("17:00:00"), "mes", Date + 1 + TimeValue("17:05:00")
End Sub

これで「*」の部分を毎日17:00:00に自動実行してくれる。



忍者Admaxのテキスト広告で収入UP!

実践!ExcelデータベースTOP