Como meter un Call PlaySound(Sonido, &H1, &H1 Or &H20000) dentro de un ciclo?

tengo el siguiente codigo que funciona pero lo que quiero hacer es que una alarma me suene 4 o 5 veces y luego deje de sonar. He tratado de meter el Call PlaySound(Sonido, &H1, &H1 Or &H20000) dentro de un ciclo y no me funciona. Solo suena una sola vez. Como puedo hacer?. Gracias de antemano.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime EarliestTime:=TimeValue("00:00:10"), _
Procedure:="MyMacro", Schedule:=False
End Sub

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:10"), "MyMacro"
End Sub

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Public Const SND_LOOP = &H8


Sub MyMacro()
'MsgBox "hello, see you in 10 seconds :)"
'definimos dos constantes para localizar la ruta y el nombre del archivo
Const RutaSonido As String = "D:\Documents and Settings\calderab\Escritorio\CALCULOS PRODUCCION\"
Const ArchivoSonido As String = "XP.wav"
Dim Sonido As String
'construimos la ruta completa del archivo de sonido
Sonido = RutaSonido & ArchivoSonido
Worksheets("CALCULO").Calculate
Application.OnTime Now + TimeValue("00:00:10"), "MyMacro"
Range("k37").Select
x = Range("k37").Value
I = 0
If x >= 20200 Then
MsgBox "VALOR ALTO= " & x
'llamamos a la función sndPlaySound32
Call PlaySound(Sonido, &H1, &H1 Or &H20000)
Else
If x <= 20000 Then
MsgBox "VALOR BAJO= " & x
'llamamos a la función sndPlaySound32
Call PlaySound(Sonido, &H1, &H1 Or &H20000)
End If

Añade tu respuesta

Haz clic para o