UserForm

27/08/2005 - 09:31 por Luis Caro | Informe spam
Saludos a todos.
Es posible insertar Sonido en un UserForm?


Cordialmente
Luis Caro
http://usuarios.lycos.es/maderascolombianas2/
http://www.geocities.com/maderascolombianas2002

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
27/08/2005 - 23:26 | Informe spam
hola, Luis !

Es posible insertar Sonido en un UserForm?



1) la manera mas 'comun'... es hacer 'llamadas' a las API's del Windows MediaManager
y existen [al menos] tres 'sub-secciones' del WMM que se pueden utilizar:
- PlaySound -> 'mas util' cuando 'falla' la busqueda del archivo 'a tocar'
- sndPlaySound -> 'mas util' cuando 'necesitas' que la musica toque 'mientras la macro continua'
- mciExecute -> igual a la anterior, 'acepta' las extensiones 'midi' [como -largos- archivos mp3, midi, etc.]
-> NO TODOS los 'formatos de compresion' estan 'cubiertos' POR TODAS las opciones anteriores :( <-
[tal parece que todo tiene sus 'pros' y 'contras'] :((
2) te expongo al final las 'declaraciones' de funciones para llamar a las API's [selecciona la que mejor te convenga]
3) podrias 'ejecutar' la musica [p.e.] al activarse el formulario... o al pulsar algun boton de comando [elige tu] :))

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
== op 1 en el modulo de codigo del formulario =Private Declare Function Usar_mciExecute _
Lib "winmm.dll" Alias "mciExecute" ( _
ByVal Comando As String) As Long
Private Sub UserForm_Activate()
Dim Archivo As String
Archivo = "C:\Windows\Media\Baby_01.mid"
Usar_mciExecute "Play " & Archivo
End Sub

notas: si la musica es muy 'larga'... se seguira escuchando aun despues de cerrar el formulario :))
para detenerla, usa la misma funcion, 'pero' con 'Stop'
[p.e.] Usar_mciExecute "Stop " & Archivo <=MISMO ARCHIVO <= OJO
-> solo una 'observacion'... la cadena 'completa' [ruta + directorio/s + archivo + EXTension]
-> NO debera tener 'espacios' <== [p.e. C:\Mis doc\este archivo.mid' o... C:\Mi mus...]
[te mandaria un error 'diciendo': mmsystem263 no es un componente MCI registrado...] :((
[a menos que 'recortes' la ruta completa al tipo de archivos MS-DOS de 8+3]

== op 2 en el modulo de codigo del formulario =Private Declare Function _
Usar_sndPlaySound _
Lib "winmm.dll" _
Alias "sndPlaySoundA" ( _
ByVal Archivo As String, _
ByVal Continua As Long) As Long
Private Sub UserForm_Activate()
Dim EsteArchivo As String
EsteArchivo = "C:\Windows\Media\Entrada de Windows XP.wav"
Usar_sndPlaySound EsteArchivo, 1
End Sub

notas: 1) con el parametro [Continua] en cero... la ejecucion de una macro se detiene 'mientras la musica toca'
2) con el parametro [Continua] en UNO... la ejecucion de una macro continua 'mientras la musica toca'

== op 3 en el modulo de codigo del formulario =Private Declare Function _
Usar_PlaySound _
Lib "winmm.dll" _
Alias "PlaySoundA" ( _
ByVal Archivo As String, _
ByVal Modulo As Long, _
ByVal Bandera As Long) As Long
Private Sub UserForm_Activate()
Dim EsteArchivo As String
EsteArchivo = "C:\Windows\Media\Entrada de Windows XP.wav"
Usar_PlaySound EsteArchivo EsteArchivo, 0&, &H1 Or &H20000
End Sub

notas: 'segun' el archivo que especifiques...
si NO 'existe'... 'tocara' un sonido 'asincrono' [speakers de la pc]
si SI 'existe'...
- si 'se puede tocar'... se toca
- si NO 'se puede tocar'... ni modo !!!... no hara 'sonido alguno' ;)
Respuesta Responder a este mensaje
#2 Luis Caro
28/08/2005 - 00:57 | Informe spam
Gracias Héctor Miguel.
Lo probaré y si alguna duda,por aquí vuelvo a molestar!

Cordialmente
Luis Caro
http://usuarios.lycos.es/maderascolombianas2/
http://www.geocities.com/maderascolombianas2002

"Héctor Miguel" escribió en el mensaje
news:
hola, Luis !

Es posible insertar Sonido en un UserForm?



1) la manera mas 'comun'... es hacer 'llamadas' a las API's del Windows
MediaManager
y existen [al menos] tres 'sub-secciones' del WMM que se pueden
utilizar:
- PlaySound -> 'mas util' cuando 'falla' la busqueda del archivo
'a tocar'
- sndPlaySound -> 'mas util' cuando 'necesitas' que la musica toque
'mientras la macro continua'
- mciExecute -> igual a la anterior, 'acepta' las extensiones
'midi' [como -largos- archivos mp3, midi, etc.]
-> NO TODOS los 'formatos de compresion' estan 'cubiertos' POR TODAS
las opciones anteriores :( <-
[tal parece que todo tiene sus 'pros' y 'contras'] :((
2) te expongo al final las 'declaraciones' de funciones para llamar a las
API's [selecciona la que mejor te convenga]
3) podrias 'ejecutar' la musica [p.e.] al activarse el formulario... o al
pulsar algun boton de comando [elige tu] :))

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
== op 1 => == en el modulo de codigo del formulario => Private Declare Function Usar_mciExecute _
Lib "winmm.dll" Alias "mciExecute" ( _
ByVal Comando As String) As Long
Private Sub UserForm_Activate()
Dim Archivo As String
Archivo = "C:\Windows\Media\Baby_01.mid"
Usar_mciExecute "Play " & Archivo
End Sub

notas: si la musica es muy 'larga'... se seguira escuchando aun despues de
cerrar el formulario :))
para detenerla, usa la misma funcion, 'pero' con 'Stop'
[p.e.] Usar_mciExecute "Stop " & Archivo <=MISMO ARCHIVO <= OJO
-> solo una 'observacion'... la cadena 'completa' [ruta + directorio/s +
archivo + EXTension]
-> NO debera tener 'espacios' <== [p.e. C:\Mis doc\este
archivo.mid' o... C:\Mi mus...]
[te mandaria un error 'diciendo': mmsystem263 no es un componente MCI
registrado...] :((
[a menos que 'recortes' la ruta completa al tipo de archivos MS-DOS de
8+3]

== op 2 => == en el modulo de codigo del formulario => Private Declare Function _
Usar_sndPlaySound _
Lib "winmm.dll" _
Alias "sndPlaySoundA" ( _
ByVal Archivo As String, _
ByVal Continua As Long) As Long
Private Sub UserForm_Activate()
Dim EsteArchivo As String
EsteArchivo = "C:\Windows\Media\Entrada de Windows XP.wav"
Usar_sndPlaySound EsteArchivo, 1
End Sub

notas: 1) con el parametro [Continua] en cero... la ejecucion de una macro
se detiene 'mientras la musica toca'
2) con el parametro [Continua] en UNO... la ejecucion de una
macro continua 'mientras la musica toca'

== op 3 => == en el modulo de codigo del formulario => Private Declare Function _
Usar_PlaySound _
Lib "winmm.dll" _
Alias "PlaySoundA" ( _
ByVal Archivo As String, _
ByVal Modulo As Long, _
ByVal Bandera As Long) As Long
Private Sub UserForm_Activate()
Dim EsteArchivo As String
EsteArchivo = "C:\Windows\Media\Entrada de Windows XP.wav"
Usar_PlaySound EsteArchivo EsteArchivo, 0&, &H1 Or &H20000
End Sub

notas: 'segun' el archivo que especifiques...
si NO 'existe'... 'tocara' un sonido 'asincrono' [speakers de la
pc]
si SI 'existe'...
- si 'se puede tocar'... se toca
- si NO 'se puede tocar'... ni modo !!!... no hara 'sonido
alguno' ;)

Respuesta Responder a este mensaje
#3 Luis Caro
28/08/2005 - 01:45 | Informe spam
Hola Héctor Miguel.
Estos son mis primeros pasos en VBA.
Estoy usando el UserForm(es lo mismo que el Formulario de que tu hablas?
para mostrar una Pantalla Inicial antes de que se abra una Hoja de
Excel,cuya instrucción es:

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

La instrucción que me estas enviando para escuchar música con el UserForm:

Private Declare Function Usar_mciExecute _
Lib "winmm.dll" Alias "mciExecute" ( _
ByVal Comando As String) As Long
Private Sub UserForm_Activate()
Dim Archivo As String
Archivo = "C:\Windows\Media\Baby_01.mid"
Usar_mciExecute "Play " & Archivo
End Sub

donde se coloca:antes o después de la Instrucción que ya tengo?
Me puedes ayudar con la Instrucción completa, incluyendo la que ya tengo
para que me abra la ventana, y la que tu me envías?
Mil Gracias.

Cordialmente
Luis Caro
http://usuarios.lycos.es/maderascolombianas2/
http://www.geocities.com/maderascolombianas2002

"Héctor Miguel" escribió en el mensaje
news:
hola, Luis !

Es posible insertar Sonido en un UserForm?



1) la manera mas 'comun'... es hacer 'llamadas' a las API's del Windows
MediaManager
y existen [al menos] tres 'sub-secciones' del WMM que se pueden
utilizar:
- PlaySound -> 'mas util' cuando 'falla' la busqueda del archivo
'a tocar'
- sndPlaySound -> 'mas util' cuando 'necesitas' que la musica toque
'mientras la macro continua'
- mciExecute -> igual a la anterior, 'acepta' las extensiones
'midi' [como -largos- archivos mp3, midi, etc.]
-> NO TODOS los 'formatos de compresion' estan 'cubiertos' POR TODAS
las opciones anteriores :( <-
[tal parece que todo tiene sus 'pros' y 'contras'] :((
2) te expongo al final las 'declaraciones' de funciones para llamar a las
API's [selecciona la que mejor te convenga]
3) podrias 'ejecutar' la musica [p.e.] al activarse el formulario... o al
pulsar algun boton de comando [elige tu] :))

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
== op 1 => == en el modulo de codigo del formulario => Private Declare Function Usar_mciExecute _
Lib "winmm.dll" Alias "mciExecute" ( _
ByVal Comando As String) As Long
Private Sub UserForm_Activate()
Dim Archivo As String
Archivo = "C:\Windows\Media\Baby_01.mid"
Usar_mciExecute "Play " & Archivo
End Sub

notas: si la musica es muy 'larga'... se seguira escuchando aun despues de
cerrar el formulario :))
para detenerla, usa la misma funcion, 'pero' con 'Stop'
[p.e.] Usar_mciExecute "Stop " & Archivo <=MISMO ARCHIVO <= OJO
-> solo una 'observacion'... la cadena 'completa' [ruta + directorio/s +
archivo + EXTension]
-> NO debera tener 'espacios' <== [p.e. C:\Mis doc\este
archivo.mid' o... C:\Mi mus...]
[te mandaria un error 'diciendo': mmsystem263 no es un componente MCI
registrado...] :((
[a menos que 'recortes' la ruta completa al tipo de archivos MS-DOS de
8+3]

== op 2 => == en el modulo de codigo del formulario => Private Declare Function _
Usar_sndPlaySound _
Lib "winmm.dll" _
Alias "sndPlaySoundA" ( _
ByVal Archivo As String, _
ByVal Continua As Long) As Long
Private Sub UserForm_Activate()
Dim EsteArchivo As String
EsteArchivo = "C:\Windows\Media\Entrada de Windows XP.wav"
Usar_sndPlaySound EsteArchivo, 1
End Sub

notas: 1) con el parametro [Continua] en cero... la ejecucion de una macro
se detiene 'mientras la musica toca'
2) con el parametro [Continua] en UNO... la ejecucion de una
macro continua 'mientras la musica toca'

== op 3 => == en el modulo de codigo del formulario => Private Declare Function _
Usar_PlaySound _
Lib "winmm.dll" _
Alias "PlaySoundA" ( _
ByVal Archivo As String, _
ByVal Modulo As Long, _
ByVal Bandera As Long) As Long
Private Sub UserForm_Activate()
Dim EsteArchivo As String
EsteArchivo = "C:\Windows\Media\Entrada de Windows XP.wav"
Usar_PlaySound EsteArchivo EsteArchivo, 0&, &H1 Or &H20000
End Sub

notas: 'segun' el archivo que especifiques...
si NO 'existe'... 'tocara' un sonido 'asincrono' [speakers de la
pc]
si SI 'existe'...
- si 'se puede tocar'... se toca
- si NO 'se puede tocar'... ni modo !!!... no hara 'sonido
alguno' ;)

Respuesta Responder a este mensaje
#4 Héctor Miguel
28/08/2005 - 07:33 | Informe spam
hola, Luis !

... son mis primeros pasos en VBA.
Estoy usando el UserForm (es lo mismo que el Formulario de que tu hablas?)



=> yes, sir :))

para mostrar una Pantalla Inicial antes de que se abra una Hoja... cuya instruccion es:
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:10"), "KillTheForm"
End Sub

La instruccion que me estas enviando para escuchar musica con el UserForm:
donde se coloca: antes o despues de la Instrucción que ya tengo?
Me puedes ayudar con la Instruccion completa, incluyendo la que ya tengo [...]



en el modulo de codigo del formulario ==Private Declare Function Usar_mciExecute _
Lib "winmm.dll" Alias "mciExecute" ( _
ByVal Comando As String) As Long
Private Sub UserForm_Activate()
Dim Archivo As String
Archivo = "C:\Windows\Media\OneStop.mid"
Application.OnTime Now + TimeValue("00:00:10"), "KillTheForm"
Usar_mciExecute "Play " & Archivo
End Sub

=> [solo] ASEGURATE que el archivo 'a tocar'... exista en la ruta especificada ;)
[ademas de las 'otras' notas y observaciones aplicables a cada 'metodo'] :)
si cualquier duda... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Luis Caro
28/08/2005 - 13:40 | Informe spam
Gracias Héctor Miguel.

Cordialmente
Luis Caro
http://usuarios.lycos.es/maderascolombianas2/
http://www.geocities.com/maderascolombianas2002

"Héctor Miguel" escribió en el mensaje
news:
hola, Luis !

... son mis primeros pasos en VBA.
Estoy usando el UserForm (es lo mismo que el Formulario de que tu
hablas?)



=> yes, sir :))

para mostrar una Pantalla Inicial antes de que se abra una Hoja... cuya
instruccion es:
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:10"), "KillTheForm"
End Sub

La instruccion que me estas enviando para escuchar musica con el
UserForm:
donde se coloca: antes o despues de la Instrucción que ya tengo?
Me puedes ayudar con la Instruccion completa, incluyendo la que ya tengo
[...]



en el modulo de codigo del formulario ==> Private Declare Function Usar_mciExecute _
Lib "winmm.dll" Alias "mciExecute" ( _
ByVal Comando As String) As Long
Private Sub UserForm_Activate()
Dim Archivo As String
Archivo = "C:\Windows\Media\OneStop.mid"
Application.OnTime Now + TimeValue("00:00:10"), "KillTheForm"
Usar_mciExecute "Play " & Archivo
End Sub

=> [solo] ASEGURATE que el archivo 'a tocar'... exista en la ruta
especificada ;)
[ademas de las 'otras' notas y observaciones aplicables a cada
'metodo'] :)
si cualquier duda... comentas?
saludos,
hector.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida