|
イマイチ何をしようとしているのか分からないので、OnTimeの再帰呼び出しをする
マクロを提示しておきます。このマクロの中で、変数 Lst の値は処理を繰り返す
時間を指定し、OnTime の引数の TimeValueの値で実行間隔を指定します。
処理を実行するのは Sub SC_Start() を一回のみで結構です。
やってみて、ご自分のマクロにどのように組み入れたらよいか、検討してみて下さい。
Declare Function sndPlaySound Lib "winmm.dll" Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long
Public Const SND_SYNC = &H0
Public Const SND_ASYNC = &H1
Sub SC_Start()
Dim Lst As Date
Lst = Time + TimeValue("00:00:15")
Call MySC(Lst)
End Sub
Sub MySC(Lst As Date)
Application.OnTime Time + TimeValue("00:00:05"), _
"'Ck_File" & """" & Lst & "'"
End Sub
Sub Ck_File(Lst As Date)
Dim Ret As Long
Const Ph As String = _
"C:\Documents and Settings\enokiz\My Documents\効果音\bubu.wav"
If Time > Lst Then
MsgBox "処理時間が経過したので終了します", 64: Exit Sub
End If
Ret = sndPlaySound(Ph, SND_ASYNC)
Call MySC(Lst)
End Sub
あと、指定した秒数だけ出せる MsgBox があります。↓
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "テストです。5秒間表示します", 5
Set WshShell = Nothing
必要なら、これもうまく組み入れたら良いと思います。
|
|