La Función Msgbox en Vba

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

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.

ARGUMENTOS DE LA FUNCIÓN MSGBOX

La función MsgBox en VBA tiene 5 argumentos, los cuales explicaré a continuación:

• Prompt (obligatorio): Es la cadena de texto que se mostrará como el mensaje dentro


del cuadro de diálogo. La longitud máxima es de 1024 caracteres, pero depende del
tipo de fuente utilizada.

• Buttons (opcional): Expresión numérica que proviene de la suma de ciertas constantes


que representan el tipo de botón e iconos a desplegar.

• 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.

• Context (opcional): Valor numérico asignado por el autor al tema de ayuda. Si se


especifica este argumento, debe indicarse también HelpFile.

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.

EJEMPLO 1: LA FUNCIÓN MSGBOX EN VBA

Ya que solamente el primer argumento de la función MsgBox es obligatorio, podemos crear un


mensaje informativo para el usuario con la siguiente línea de código:

1 Private Sub CommandButton1_Click()

2 MsgBox "Hola Mundo"

3 End Sub

Al ejecutar este código se mostrará un cuadro de diálogo como el siguiente:


Al no haber especificado ningún valor para el segundo argumento, se muestra solamente el
botón Aceptar. Y ya que tampoco hay un tercer argumento, el cuadro de diálogo tendrá el
título “Microsoft Excel” que es el nombre de la aplicación.

EJEMPLO 2: EL ARGUMENTO TITLE

Antes de revisar el segundo argumento de la función MsgBox, hablaremos sobre su tercer


argumento que es el título del cuadro de diálogo. Para poner un título personalizado será
suficiente indicarlo de la siguiente manera:

1 Private Sub CommandButton2_Click()

2 MsgBox "Hola Mundo", , "Mensaje especial"

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:

EJEMPLO 3: EL ARGUMENTO BUTTONS

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:

1 Private Sub CommandButton3_Click()

2 MsgBox "Hola Mundo", vbYesNo + vbExclamation, "Mensaje especial"

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.

EJEMPLO 4: CONOCER EL BOTÓN PULSADO

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:

resultado = MsgBox("Hola Mundo", vbAbortRetryIgnore + vbQuestion, "Mensaje especial")

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.

También podría gustarte