(プチ改善)EXCEL 時間がきたらマクロ関数を実行する

EXCELマクロで指定した時間がきたら、特定のマクロ関数を実行させる方法について紹介します。この機能はEXCELマクロでRPA的な処理を実行させる場合に有効です。

 この処理には、「Application.OnTime メソッド」を使います。

'
' 処理
'
Sub test()
    Dim cc As Range
    Set cc = Worksheets("20231231").Range("B3")
    
    tdata = DateValue(Format(Date, "yyyy/mm/dd")) + TimeValue(cc.Value)
    
    pp = "'Msg" & Chr(34) & Worksheets("20231231").Cells(cc.Row(), "C").Value & "'"
    
    Application.OnTime EarliestTime:=tdata, Procedure:=pp
              
End Sub

'
' 指定の時間がきたら実行される
'
Sub Msg(msgdata As String)
    MsgBox (msgdata)
End Sub

20231230シート

上記の処理では、
①「20231230」シートのB3セルに時刻を設定します。
② ①の時刻に日付を加えて、tdata に入力する
③ OnTimeメソッドに日時と引数を加えて実行する
④ 時間がくると、Msg関数(プロシージャ)が実行されます。
 以下のポップアップが表示されます。
 

本記事にたいする質問やお問合せ・IT改善のご相談はこちら