La Función Msgbox en Vba
La Función Msgbox en Vba
La Función Msgbox en Vba
La función MsgBox en VBA nos permite mostrar un mensaje dentro de un cuadro de diálogo
en espera de que el usuario de Excel haga clic sobre alguno de los botones provistos. Si lo
deseamos podemos tomar alguna acción específica después de conocer el botón pulsado por
el usuario.
• Title (opcional): Cadena de texto que se mostrará como el título del cuadro de diálogo.
Si se omite, el título será el nombre de la aplicación.
• HelpFile (opcional): Cadena de texto con la ubicación del archivo de ayuda asociado al
cuadro de diálogo. Si se especifica este argumento, debe indicarse también Context.
Para dejar en claro el uso de cada uno de los argumentos de la función haremos varios
ejemplos y para cada uno de ellos crearé un botón de comando ActiveX e insertaré el código
correspondiente en su evento Click. Al final del artículo encontrarás el vínculo para descargar
el libro de trabajo.
3 End Sub
3 End Sub
Esta instrucción mostrará el título del cuadro de diálogo como “Mensaje especial” y ya no se
mostrará el nombre de la aplicación. Observa el resultado:
Hasta ahora solo has visto el botón Aceptar en el cuadro de diálogo, pero el segundo
argumento de la función MsgBox nos permitirá indicar los botones que deseamos mostrar y
también podremos elegir el icono desplegado y el comportamiento del cuadro de diálogo. La
siguiente tabla indica los valores que podemos utilizar para este argumento:
Todos estos valores los podemos dividir en cinco grupos. El primer grupo (0, 1, 2, 3, 4, 5) nos
permite indicar los botones que se mostrarán en el cuadro de diálogo, el segundo grupo (16,
32, 48, 64) determinará el tipo de ícono mostrado, el tercer grupo (0, 256, 512, 768) es útil
para indicar el botón predeterminado. El cuarto grupo (0, 4096) es la modalidad del cuadro de
diálogo y el último grupo, que son los valores restantes, nos permiten indicar la alineación del
texto y si deseamos mostrar un botón de Ayuda.
Ya que los valores de cada grupo son excluyentes, solo hace sentido elegir un valor de cada
uno de ellos. De esta manera, si deseo mostrar los botones Si y No, y además mostrar un icono
de mensaje de advertencia, entonces debo utilizar la siguiente instrucción:
3 End Sub
Para el segundo argumento puedes utilizar las constantes definidas para cada opción o utilizar
directamente el valor numérico correspondiente de acuerdo a la tabla. El resultado de esta
instrucción será el siguiente:
Para cada opción adicional que desees indicar deberás agregarla utilizando el símbolo de suma
(+). Recuerda que este argumento este argumento de la función MsgBox es de valor numérico,
así que Excel obtendrá la suma total para conocer las opciones indicadas.
Para conocer el botón que ha sido pulsado por el usuario, es necesario guardar el valor
devuelto por la función MsgBox en una variable:
Antes de continuar debo mencionar algo importante sobre esta instrucción ya que, a
diferencia de las anteriores, en esta ocasión los argumentos de la función MsgBox están
encerrados en paréntesis. Esto se debe a una regla de programación en VBA la cual indica que
cuando se llama a una función que devolverá un valor el cual será asignado a una variable, su
lista de argumentos deberá estar rodeada por paréntesis. Así que no podemos olvidar colocar
los paréntesis si queremos conocer el botón pulsado por el usuario.
Ahora bien, la variable resultado guardará el valor devuelto por la función MsgBox el cual
puede ser cualquiera de las siguientes opciones dependiendo los botones que hayamos
decidido mostrar:
Una vez que el usuario hace clic sobre un botón, la función MsgBox nos devuelve el valor
correspondiente y podremos comparar dicho valor con las contantes mencionadas en la tabla
anterior.