Hola a todos:
Hace unos días en LinkedIn os comenté una alternativa a la función MsgBox() en vba a la hora de mostrar una ventana emergente. Esta alternativa es el método Popup de VBScript.
Es muy sencillo de programar!. Vemos de qué argumentos se compone utilizando un ejemplo:
mensaje= MiObjShell.PopUp(Texto,[Tiempo de espera en segundos],[Titulo de la ventana (opcional)],[Tipo (opcional)])
El primer argumento es el que hace referencia al texto de contenido del PopUp.
El segundo argumento es el tiempo en espera y que se expresa en segundos. Indicaremos aquí el tiempo que queremos que se muestre la información.
El tercer argumento es el título de la ventana del PopUp, es opcional, si no ponemos nada por defecto se mostrará «Windows Script Host».
El cuarto argumento que también es opcional nos va a permitir mostrar un icono y el tipo de botones que queremos que se muestren en nuestro PopUp:
Iconos:
16 – Stop (o vbCritical)
32 – Interrogante (o vbQuestion)
48 – Exclamación (o vbExclamation)
64 – Información (o vbInformation)
Tipo de botones:
0 – Aceptar (o vbOKOnly)
1- Aceptar/Cancelar (o vbOkCancel)
2- Anular/Reintentar/Omitir (o vbAbortRetryIgnore)
3- Si/No/Cancelar (o vbYesNoCancel)
4- Si/No (o vbYesNo)
5- Reintentar/Cancelar (o vbRetryCancel)
6- Cancelar/Reintentar/Continuar
Por ejemplo, aquí lo programo con un Set:
Mostramos el mensaje «DESEAS MOSTRAR LA INFORMACIÓN?» que debe mostrarse durante 1 segundo y mostramos el icono de la interrogación y los botones Si/No
Sub PopUp()
Dim MiObjShell As Object
Dim imensaje As Long
Set MiObjShell = CreateObject("wscript.shell")
imensaje = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", 32 + 4)
End Sub
Podríamos ejecutar el mensaje varias veces para que veais que cada segundo (aprox) cambia automáticamente de mensaje hasta que finaliza la rutina:
Sub PopUp()
Dim MiObjShell As Object
Dim imensaje As Long
Set MiObjShell = CreateObject("wscript.shell")
imensaje1 = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", 32 + 4)
imensaje2 = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", vbInformation + vbAbortRetryIgnore)
imensaje3 = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", vbCritical + 6)
imensaje4 = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", vbExclamation + 2)
End Sub
Estos serían los PopUp’s generados:
imensaje = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", 32 + 4)
imensaje = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", vbInformation + vbAbortRetryIgnore)
imensaje = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", vbCritical + 6)
imensaje = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", vbExclamation + 2)
Como podéis observar son una buena alternativa a los MsgBox que todos solemos utilizar, solo que con alguna funcionalidad más.
Y eso es todo, espero que os haya resultado interesante y lo podáis implementar en vuestras programación y proyectos.
Descarga el archivo de ejemplo pulsando en: PROGRAMAR MÉTODO POPUP DE VBSCRIPT
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies