6 febrero, 2025

PROGRAMAR MÉTODO POPUP DE VBSCRIPT

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)

PROGRAMAR MÉTODO POPUP DE VBSCRIPT

imensaje = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", vbInformation + vbAbortRetryIgnore)

PROGRAMAR MÉTODO POPUP DE VBSCRIPT_1

imensaje = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", vbCritical + 6)

PROGRAMAR MÉTODO POPUP DE VBSCRIPT_2

imensaje = MiObjShell.PopUp("DESEAS MOSTRAR LA INFORMACIÓN?", 1, "MI VENTANA", vbExclamation + 2)

PROGRAMAR MÉTODO POPUP DE VBSCRIPT_3

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.

Donate Button with Credit Cards

¡¡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

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies