引数を付けるにはシングルクォーテーションでマクロと引数を囲む!
ダブルクォーテーションを2連続で書くのはエスケープ処理という回避方法。ダブルクォ(略)を文字として認識させたい時などに使います。他言語では¥マーク等が使われます。
'抜粋 Procedure:="'AutoReload """ & s & """'"
繰り返し処理つくってみた。
Option Explicit Public reLoadFlag As Boolean Public loadCount As Long Public Sub AutoReLoad(Optional s As String) If reLoadFlag = False Then Exit Sub '引数のテスト If s = "" Then s = "テスト" Else: s = "" 'EarliestTime 実行予約。必須。2秒後に指定した。 'Procedure 実行するマクロ。必須。自分自身を指定してみた。 'LatestTime 待機限界時間指定。未指定で無限待機。3分にしてみた。 Application.OnTime EarliestTime:=(Now + TimeValue("00:00:02")), _ Procedure:="'AutoReload """ & s & """'", _ LatestTime:=(Now + TimeValue("00:03:00")) Call 実行したい処理(s) 'ステータスバーへのメッセージ表示 Application.StatusBar = "Load " & loadCount & "(" & getHHMMSS & ")" End Sub 'スタート用 Public Sub StartPrg() reLoadFlag = True loadCount = 0 Call AutoReLoad End Sub '停止用 Public Sub StopPrg() reLoadFlag = False Application.StatusBar = False 'ステータスバーの開放 End Sub Public Sub 実行したい処理(s As String) loadCount = loadCount + 1 Debug.Print s '確認用 End Sub '現在の時刻をHH:MM:SSで取得 Public Function getHHMMSS() As String getHHMMSS = Format(Now, "HH:MM:SS") End Function
以上。