Excel 2003でタスクや類似アイテムを追跡するためのカレンダーを作成しました。 VBAを使用してタイマーを設定する必要があります。このような何か:Excel VBAの時間アラーム
run_in_x_secs (timetowait, function to exec)
は、Excel VBAでそれを行う方法はありますか、私は試してみて、コマンドラインから実行し、VBAからそれを実行するためのアラームを見つける必要があります。
どうすればよいですか?
Excel 2003でタスクや類似アイテムを追跡するためのカレンダーを作成しました。 VBAを使用してタイマーを設定する必要があります。このような何か:Excel VBAの時間アラーム
run_in_x_secs (timetowait, function to exec)
は、Excel VBAでそれを行う方法はありますか、私は試してみて、コマンドラインから実行し、VBAからそれを実行するためのアラームを見つける必要があります。
どうすればよいですか?
これはトリックを行う必要があります:あなたは、時間の長い期間を待つためにそれを設定することになるだろう場合は特に、のOnTimeで少し注意する必要がありますが
Public Sub RunSubInXSeconds(secondsToWait As Long, nameOfFunction As String)
Application.OnTime Now + secondsToWait/(24# * 60# * 60#), nameOfFunction
End Sub
を例えば...タイマーの有効期限が切れてSubが実行される前にブックを閉じると、ワークブックを開いて実行することができます。あなたがそれを期待していない場合、混乱する!
これは、Excelアプリケーションがまだ実行されている場合にのみ発生します。 – froeschli
これは、OnTimeをスケジュールし、コールバックを実行する前にブックを閉じると発生しますが、**アプリケーションを開いたままにします。 Excelをハックしてファイルを再オープンするのは面白い方法です! –
素晴らしいサイモン。それが望ましい動作です。私のユーザーはそれがExcelファイルであることを知らず、自分のボタンだけを使用します。 (そして、私の閉じるボタンは、アプリケーションではなくワークブックを閉じます) –
Public Sub tt()
timerset = TimeValue("01:00:00") 'the time you want
Application.OnTime timerset, "myfun"
End Sub
Sub myfun()
'do whatever you want
End Sub
あなたはできるだけ早く私はそれが絶対時間であることがわかったとして、(あまりにも素晴らしい作品)。 Thnx –
@Diego申し訳ありませんが、私はそれを言及するのを忘れました。ボアソート! –
さらに2つのオプション:
'Option 1
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Sub Sleep()
Sleep 1000 'whait 1 second
End Sub
'Option 2
Sub MyWaitMacro()
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 3
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
End Sub
http://visualbasic.about.com/od/learnvba/a/vbatiming1.htm –