Reproducir un WAV desde Excel a cierta Hora

07/07/2005 - 18:37 por Lyna | Informe spam
Hola a todos,

Quiero ver si alguien me puede orientar con lo siguiente, necesito que en
una hoja de Excel se ejecute una macro que me reproduzca un sonido WAV a
ciertas horas, y que me permita modificar esas horas, es decir un día puede
reproducirse a la 11:20 y quiza mañana ese mismo wav se reproduzca a las
11:50.

Les agradezco de antemano, a quien me pueda ayudar.

Saludos,
 

Leer las respuestas

#1 Héctor Miguel
07/07/2005 - 23:32 | Informe spam
hola, Lyna !

... que... se ejecute una macro que me reproduzca un sonido WAV a ciertas horas y que me permita modificar esas horas
... un dia puede reproducirse a la 11:20 y quiza mañana ese mismo wav se reproduzca a las 11:50



1) sera necesario manejar un procedimiento 'OnTime' [NO 'recursivo'] en el evento '_Open' del libro
2) tambien se requiere hacer una llamada a las API's de windows [a la aplicacion WindowsMediaManager]
3) sobra mencionar que el archivo debera ser abierto ANTES de que 'le llegue su hora' :D
4) toma nota que los procedimientos 'OnTime' tienen su 'comportamiento' -bastante- especial [p.e. si el libro se cierra antes] :-(

te paso un ejemplo al final y... si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Public Declare Function _
TocarMusicaWAV _
Lib "winmm.dll" _
Alias "sndPlaySoundA" ( _
ByVal Archivo As String, _
ByVal Estado As Long) As Long
Sub TocarMusica()
Dim EsteArchivo As String
EsteArchivo = "C:\Windows\Media\Entrada de Windows XP.wav"
TocarMusicaWAV EsteArchivo, 0
MsgBox "La macro estuvo detenida ""mientras"" la música ""tocaba""."
TocarMusicaWAV EsteArchivo, 1
MsgBox "La música está tocando, y la macro... se está ""ejecutando"" !!!"
End Sub
en el modulo de codigo del libro [ThisWorkbook] ==Private Sub Workbook_Open()
Application.OnTime TimeValue("16:14:00"), "TocarMusica"
End Sub

notas:
a) te expongo dos formas de 'tocar' la musica [o hacer la llamada a la funcion 'TocarMusicaWAV']
1) con el parametro [Estado] en cero... la ejecucion de la macro se detiene 'mientras la musica toca'
[observa que el mensaje NO aparece sino hasta que la musica ha dejado de tocar]
2) con el parametro [Estado] en UNO... la ejecucion de la macro continua 'mientras la musica toca'
[observa que el mensaje aparece de inmediato, en cuanto la musica empieza a tocar]
b) en el evento 'open' del libro, podrias 'tomar' la hora en que se ejecutara el procedimiento de alguna celda/hoja
[p.e.] ->Application.OnTime Worksheets("Hoja1").Range("a1"), "TocarMusica"<-
[sponiendo que en la celda 'A1' de la hoja 1 tienes un dato_hora del tipo: 16:14:00]
c) [igualmente] el nombre [o la asignacion] del archivo que se ha de tocar podrias 'tomarlo' igual que 'la hora' :))
d) existen otras diversas 'formas' de tocar musica por macros [incluso no solamente WAV's sino MP3, MIDI's, etc.]

Preguntas similares