SSブログ

Excel2000 VBA 指定時間毎にマクロを実行 [Excel2000 VBA独習]

Excel2000 VBA 指定時間毎にマクロを実行

動作原理

’-----ーーontimeの設定
Sub ontime()
Application.ontime Now + TimeValue("00:00:05"), "test" ', TimeValue("00:0:02") ’5秒後にtestを実行
End Sub
’-------実行するマクロ
Sub test()
Dim MB As String
 MB = MsgBox("終了するには「はい」をOnTimeを実行するには「いいえ」を押して下さい", vbYesNo)
Select Case MB
    Case vbYes
    Exit Sub
    Case vbNo
    Application.Run "ontime"
End Select
End Sub
 


 

未完成 テストバージョン

Public row_b As Long

Sub 指定時間で更新()

’A2(文字列)に更新間隔時間を設定 例 00:10:00 10分毎
'B2から実行した日時を表示

Dim interval_time As String
Dim interval As Variant

Workbooks("指定時間で更新.xls").Activate
Sheets("sheet1").Select
interval_time = Range("A2").Value
interval = Now + TimeValue(interval_time)
Application.OnTime TimeValue(interval), "test",TimeValue("00:05:00") ’追記 待ち時間設定 '更新間隔時間の設定

End Sub

Sub test()
Workbooks("指定時間で更新.xls").Activate
Sheets("sheet1").Select

row_b = row_b + 1
Cells(row_b + 1, "B") = Now()
Application.Run "指定時間で更新"

Beep ’音を出す

End Sub


課題 自動更新の解除方法 (A2を空にすればエラーが出て止まる )
    指定した時刻毎にマクロを実行できるが、2回3回と続けて実行される時がある
    待ち時間を設定してみて様子見
    このタイマーマクロと実行するマクロだけ開いている時は正常動作するが、他のマクロのあるブックを多数同時に開いていると、
    たまに誤動作する

OnTime(EarliestTime, Procedure, LatestTime, Schedule)
OnTime(EarliestTime(マクロを実行する時間), Procedure(プロシージャ名), LatestTime(待ち時間), Schedule(有効無効))

  • 引数EarliestTimeには、マクロを実行する時刻
  • 引数Procedureには、指定した時刻に実行するプロシージャ名
  • 引数LatestTimeは省略可能(指定した時刻にほかのマクロが起動していると、OnTimeメソッドで設定したマクロが実行できない)
  • 引数Scheduleは省略可能(OnTimeメソッドの設定を有効/無効)
  • 数Scheduleを省略するかTrueを指定すると、スケジュールが有効になる
  • 引数ScheduleにFalseを指定すると、スケジュールを取り消し
  • 参照サイト http://www.moug.net/tech/exvba/0130013.htm

excel_timer.jpg


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。