Sunteți pe pagina 1din 7

La funcin MsgBox en VBA

exceltotal.com /la-funcion-msgbox-en-vba/

La funcin MsgBox en VBA nos permite mostrar un mensaje dentro de un cuadro de dilogo en espera de que el
usuario de Excel haga clic sobre alguno de los botones provistos. Si lo deseamos podemos tomar alguna accin
especfica despus de conocer el botn pulsado por el usuario.

Argumentos de la funcin MsgBox


La funcin MsgBox en VBA tiene 5 argumentos, los cuales explicar a continuacin:

Prompt (obligatorio): Es la cadena de texto que se mostrar como el mensaje dentro del cuadro de dilogo.
La longitud mxima es de 1024 caracteres, pero depende del tipo de fuente utilizada.
Buttons (opcional): Expresin numrica que proviene de la suma de ciertas constantes que representan el
tipo de botn e iconos a desplegar.
Title (opcional): Cadena de texto que se mostrar como el ttulo del cuadro de dilogo. Si se omite, el ttulo
ser el nombre de la aplicacin.
HelpFile (opcional): Cadena de texto con la ubicacin del archivo de ayuda asociado al cuadro de dilogo. Si
se especifica este argumento, debe indicarse tambin Context.
Context (opcional): Valor numrico asignado por el autor al tema de ayuda. Si se especifica este argumento,
debe indicarse tambin HelpFile.

Para dejar en claro el uso de cada uno de los argumentos de la funcin haremos varios ejemplos y para cada uno
de ellos crear un botn de comando ActiveX e insertar el cdigo correspondiente en su evento Click. Al final del
artculo encontrars el vnculo para descargar el libro de trabajo.

Ejemplo 1: La funcin MsgBox en VBA


Ya que solamente el primer argumento de la funcin MsgBox es obligatorio, podemos crear un mensaje informativo
para el usuario con la siguiente lnea de cdigo:

1 Private Sub CommandButton1_Click()

2 "Hola
MsgBoxMundo"
3
End Sub

Al ejecutar este cdigo se mostrar un cuadro de dilogo como el siguiente:

1/7
Al no haber especificado ningn valor para el segundo argumento, se muestra
solamente el botn Aceptar. Y ya que tampoco hay un tercer argumento, el cuadro de
dilogo tendr el ttulo Microsoft Excel que es el nombre de la aplicacin.

Ejemplo 2: El argumento Title


Antes de revisar el segundo argumento de la funcin MsgBox, hablaremos sobre su
tercer argumento que es el ttulo del cuadro de dilogo. Para poner un ttulo
personalizado ser suficiente indicarlo de la siguiente manera:

1 Private Sub CommandButton2_Click()

2 "Hola , "Mensaje
MsgBoxMundo" , especial"
3
End Sub

Esta instruccin mostrar el ttulo del cuadro de dilogo como Mensaje especial y ya no se mostrar el nombre de
la aplicacin. Observa el resultado:

Ejemplo 3: El argumento Buttons


Hasta ahora solo has visto el botn Aceptar en el cuadro de dilogo, pero el segundo
argumento de la funcin MsgBox nos permitir indicar los botones que deseamos
mostrar y tambin podremos elegir el icono desplegado y el comportamiento del cuadro
de dilogo. La siguiente tabla indica los valores que podemos utilizar para este
argumento:

2/7
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 mostrarn en el cuadro de dilogo, 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 botn predeterminado. El cuarto grupo (0, 4096)
es la modalidad del cuadro de dilogo y el ltimo grupo, que son los valores restantes, nos permiten indicar la
alineacin del texto y si deseamos mostrar un botn 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 adems mostrar un icono de mensaje de advertencia, entonces
debo utilizar la siguiente instruccin:

1 Private Sub CommandButton3_Click()

2 "Hola , vbYesNo + "Mensaje


MsgBoxMundo" vbExclamation, especial"
3
End Sub

Para el segundo argumento puedes utilizar las constantes definidas para cada opcin o utilizar directamente el
valor numrico correspondiente de acuerdo a la tabla. El resultado de esta instruccin ser el siguiente:

3/7
Para cada opcin adicional que desees indicar debers agregarla
utilizando el smbolo de suma (+). Recuerda que este argumento este
argumento de la funcin MsgBox es de valor numrico, as que Excel
obtendr la suma total para conocer las opciones indicadas.

Ejemplo 4: Conocer el botn pulsado


Para conocer el botn que ha sido pulsado por el usuario, es necesario
guardar el valor devuelto por la funcin MsgBox en una variable:

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


especial")

Antes de continuar debo mencionar algo importante sobre esta instruccin ya que, a diferencia de las anteriores, en
esta ocasin los argumentos de la funcin MsgBox estn encerrados en parntesis. Esto se debe a una regla de
programacin en VBA la cual indica que cuando se llama a una funcin que devolver un valor el cual ser
asignado a una variable, su lista de argumentos deber estar rodeada por parntesis. As que no podemos olvidar
colocar los parntesis si queremos conocer el botn pulsado por el usuario.

Ahora bien, la variable resultado guardar el valor devuelto por la funcin 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 botn, la funcin


MsgBox nos devuelve el valor correspondiente y podremos
comparar dicho valor con las contantes mencionadas en la tabla
anterior. Para nuestro ejemplo, utilizar una sentencia Select Case
para comparar la variable resultado con todas las opciones
posibles:

4/7
1 Private Sub CommandButton4_Click()

2 resultado = "Hola , vbAbortRetryIgnore +


MsgBox( Mundo" vbQuestion,
3 "Mensaje
especial" )
4

5 Select Case resultado

6 Case vbOK:

7 "Se puls el botn


MsgBoxAceptar"
8
Case vbCancel:
9
"Se puls el botn
10 MsgBoxCancelar"
11 Case vbAbort:
12
"Se puls el botn
13 MsgBoxAnular"

14 Case vbRetry:

15 "Se puls el botn


MsgBoxReintentar"
16
Case vbIgnore:
17
"Se puls el botn
18 MsgBoxOmitir"
19 Case vbYes:

"Se puls el botn


MsgBoxSi"

Case vbNo:

"Se puls el botn


MsgBoxNo"

End Select

End Sub

Una vez identificado el botn sobre el cual el usuario ha hecho clic, mostraremos otro mensaje con el nombre de
dicho botn. En un caso real, esa lnea de cdigo sera reemplazada por las instrucciones que se deseas ejecutar
de acuerdo a la respuesta del usuario.

En nuestro ejemplo mostramos un cuadro de dilogo con los botones Anular, Reintentar y Omitir, as que si el
usuario hace clic sobre el botn Reintentar se mostrar el mensaje que nos confirmar dicha accin:

5/7
Con los ejemplos realizados hasta el momento hemos cubierto la gran
mayora de opciones de uso de la funcin MsgBox en VBA. La verdad es
que los ltimos dos argumentos de la funcin son muy poco utilizados pero
haremos un ltimo ejemplo para mostrar su uso.

Ejemplo 5: El botn de Ayuda


En la seccin del ejemplo 3 mostr la tabla de posibles opciones para el
argumento Buttons y una de ellas es la opcin vbMsgBoxHelpButton la cual
ocasionar que se muestre un botn con la leyenda Ayuda dentro del cuadro
de dilogo. El nico objetivo de este botn es mostrar un archivo externo con ayuda adicional para el usuario sobre
los botones que puede a pulsar.

Para que el botn de Ayuda funcione correctamente es necesario utilizar el cuarto y quinto argumento de la funcin
MsgBox. En el cuarto argumento debemos indicar la ruta donde se encuentra el archivo de ayuda, que
generalmente es un archivo CHM, y el quinto argumento ser utilizado para indicar el nmero del tema que ser
mostrado. Este ltimo argumento es una caracterstica de los archivos de ayuda, y es una configuracin que se
hace al construir ese tipo de archivos.

Para nuestro ejemplo utilizaremos un archivo de ayuda previamente elaborado y donde sabemos que existe el tema
de ayuda 20000 y por lo tanto podemos utilizar las instrucciones siguientes para mostrarlo:

1 Private Sub CommandButton5_Click()

2 strRuta = ThisWorkbook.Path
& "CHM-example.chm"
3
"Hola , vbOKCancel + vbCritical + vbMsgBoxHelpButton,
4 MsgBoxMundo" _
5 "Mensaje , strRuta,
especial" 20000

End Sub

Para este ejemplo es necesario colocar el archivo CHM en la misma carpeta que el libro de Excel ya que he
utilizado la instruccin ThisWorkbook.Path para indicar que el archivo de ayuda se encuentra en la misma
ubicacin. Al hacer clic sobre el botn Ayuda, se abrir una nueva ventana que nos permitir visualizar el archivo
indicado.

6/7
Con este ltimo ejemplo hemos cubierto todos los
argumentos de la funcin MsgBox en VBA y ests
listo para comenzar a crear tus propios mensajes
dentro de tus aplicaciones de Excel. Descarga el
libro de trabajo para probar por ti mismo cada uno de
los ejemplos y seguir experimentando con la funcin
MsgBox.

7/7

S-ar putea să vă placă și