Documente Academic
Documente Profesional
Documente Cultură
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
2
3
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:
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
2
3
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:
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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:
Con los ejemplos realizados hasta el momento hemos cubierto la gran mayora de
opciones de uso de lafuncin 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.
Otros Ejercicios
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un
botn y devuelve un entero que indica el botn utilizado.
Ejercicio 1
1.- Crear un formulario con un botn de comando como se muestra en la figura
siguiente cdigo
msgbox "Quieres seguir?", vbYesNo, "Informacin importante"
Ejercicio 3
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el
siguiente cdigo
Dim intRespuesta As Integer
intRespuesta = MsgBox("Quieres seguir?", vbQuestion + vbYesNo, Informacin
importante")
If intRespuesta = 6 Then
MsgBox"Seguimos"
Else
MsgBox"Terminamos"
End If
Ejercicio 4
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el
siguiente cdigo
msgbox "Actualizacin terminada:" & vbCrLf & vbCrLf & _
"- Importacin de datos de venta." & vbCrLf & "- Clculos de impuestos." & _
vbCrLf & "- Venta por proveedor." & vbCrLf , vbOKOnly, "Actualizacin
terminada."
Ejercicio 5
Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el
siguiente cdigo
msgbox "Actualizacin terminada:" & vbCrLf & vbCrLf & _
"- Importacin de datos de venta." & vbCrLf & _
"- Clculos de impuestos." & vbCrLf & _
"- Venta por proveedor." & vbCrLf _
, vbExclamation + vbOKOnly, _
"Actualizacin terminada."
INPUTBOX
Esta funcin muestra un cuadro de dilogo modal (ste es un trmino tcnico para
definir un formulario que ha de cerrarse antes de poder continuar con el desarrollo
Propiedad Valor
Form
Name
frmCajas
""
Caption
Label
Name
lblTexto
""
Caption
Label
Name
lblProd
""
Caption
CommandButton Name
cmdTexto
""
&Escribir
Caption
CommandButton Name
cmdProd
""
&Multiplicar
Caption