MsgBox en Microsoft Excel VBA
-
MsgBox
en VBA -
Ejemplo 1: Sí/No
MsgBox
-
Ejemplo 2: Advertencia
MsgBox
-
Ejemplo 3: Asignar un
MsgBox
a una Variable - Conclusión
VBA, abreviatura de Visual Basic for Applications
, es un lenguaje de programación que proporciona a los desarrolladores varias funciones y características mientras trabajan con aplicaciones de Microsoft Office.
En este artículo, aprenderemos sobre la función MsgBox
de VBA.
MsgBox
en VBA
El MsgBox
es una función en VBA que muestra un cuadro de mensaje cuando se ejecuta el código. Cuando se muestra el cuadro de mensaje, el código se detiene.
Luego espera la entrada del usuario y continúa la ejecución en consecuencia. Puede personalizar el mensaje en este cuadro de diálogo y hacer que su código se comporte de acuerdo con la opción elegida por el usuario.
La sintaxis de la función MsgBox
en VBA se encuentra a continuación.
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
La función MsgBox
toma varios argumentos, como se muestra arriba. Estos se explican a continuación.
-
prompt
: este argumento hace referencia a la expresión de tipoString
que se muestra como mensaje en el cuadro de diálogo. Hay un límite en el número de caracteres que puede mostrar en elprompt
, es decir, aproximadamente 1024 caracteres, dependiendo del espacio que ocupen los caracteres.También puede usar el argumento
prompt
para mostrar los valores de las variables. También puede dividir el mensaje en líneas separadas usando un carácter de retorno de carro o salto de línea entre las líneas. -
botones
: Este argumento tiene un valor numérico. Se utiliza para especificar el tipo de botones que se mostrarán y el estilo de los iconos. También puede elegir el número de botones en elMsgBox
.El valor predeterminado para el argumento
botones
es0
, que solo muestra un botónAceptar
. En este artículo explicaremos los diferentes tipos de botones e iconos. -
título
: se refiere a un argumento de tipoString
que especifica el título delMsgBox
que se muestra en la barra de título. Si no se escribe este argumento, aquí se muestra el nombre de la aplicación, por ejemplo,Microsoft Excel
. -
archivo de ayuda
: Aquí, puede especificar un archivo de ayuda como una expresión deCadena
que ayudará al usuario cuando haga clic en el botónAyuda
. Este botón se muestra usando su código específico que mencionaremos a continuación.Si especifica un argumento de
archivo de ayuda
, también es necesario proporcionar elcontexto
. -
contexto
: Este es el número de contexto de la Ayuda que el autor de la Ayuda asigna al tema de la Ayuda. Si especifica un argumento decontexto
, también es necesario proporcionar elarchivo de ayuda
.
Nota: Solo se requiere el argumento
prompt
. El resto son opcionales de especificar.
Botones VBA MsgBox
Como se mencionó anteriormente, el argumento botones
de la función MsgBox
puede indicar el número y tipo de botones que se muestran en el cuadro de diálogo. Esto se hace especificando la constante del botón o su valor correspondiente.
Los tipos comunes de configuración de botones se resumen a continuación.
vbOKOnly
: Este botón tiene el valor0
. Se utiliza para visualizar únicamente el botónOK
.vbOKCancel
: El valor de este botón es1
. Muestra los botonesAceptar
yCancelar
.vbAbortRetryIgnore
: Tiene el valor2
. Muestra los botonesCancelar
,Reintentar
eIgnorar
.vbYesNoCancel
: Tiene el valor3
. Muestra los botonesSí
,No
yCancelar
.vbYesNo
: Este es el botón que tiene valor4
. Muestra los botonesSí
yNo
.vbRetryCancel
: este botón tiene el valor5
. Muestra los botonesReintentar
yCancelar
.vbDefaultButton1
: el primer botón se establece como predeterminado. Cambiar el número cambia el botón predeterminado; por ejemplo,vbDefaultButton2
significa que el segundo botón es el predeterminado. El valor también cambia para cada uno.vbMsgBoxHelpButton
: el valor para esto es16384
. Muestra el botónAyuda
. Cuando use esto, debe especificar los argumentosarchivo de ayuda
ycontexto
, o no funcionará.
Valores de retorno de VBA MsgBox
La función MsgBox
devuelve un valor de tipo entero en función del botón pulsado. Hay 7 constantes de valor de retorno con el valor numérico correspondiente que se devuelve.
vbOK
vbCancelar
vbAbortar
vbReintentar
vbIgnorar
vb Sí
vbNo
Puede almacenar estos valores numéricos en variables y realizar acciones en su código en consecuencia.
Iconos de VBA MsgBox
Puede personalizar el icono que se muestra en VBA MsgBox
. Puede ser de los siguientes tipos:
-
vbCrítico
-
vbPregunta
-
vbExclamación
-
vbInformación
Ejemplo 1: Sí/No MsgBox
Veamos un código de muestra que le mostrará cómo usar la función MsgBox
. Daremos un ejemplo de Sí/No MsgBox
, que muestra los botones Sí
y No
.
El código para esto está abajo.
Sub YesNoMsgBox()
MsgBox "Still Want To Continue?", vbQuestion + vbYesNo
End Sub
Ejemplo 2: Advertencia MsgBox
Veamos un ejemplo de un MsgBox
que muestra un mensaje de advertencia con las opciones de Cancelar
, Reintentar
o Ignorar
. También muestra el uso de vbNewLine
y el argumento título
.
Sub WarningMsgBox()
MsgBox "An exception occured" & vbNewLine & "Choose what you want to do", vbExclamation + vbAbortRetryIgnore, "Exception"
End Sub
Ejemplo 3: Asignar un MsgBox
a una Variable
En los ejemplos anteriores, presionar los botones no hizo nada en particular. Sin embargo, si desea cambiar el curso de acción de su código de acuerdo con el botón seleccionado por el usuario, debe guardar el valor de retorno de MsgBox
en una variable.
Veamos cómo podemos hacer eso usando el siguiente código.
Sub MsgBoxExample()
Dim result As Integer
result = MsgBox("Do you want to continue?", vbYesNo + vbQuestion)
If result = vbYes Then ' Or result == 6
MsgBox "You clicked Yes"
End If
If result = vbNo Then ' Or result == 7
MsgBox "You clicked No"
End If
End Sub
Ejecutar esta macro muestra el siguiente MsgBox
:
Si pulsamos en Sí
, se despliega este MsgBox
:
Del mismo modo, al hacer clic en No
aparece el siguiente MsgBox
:
Conclusión
Esto resume nuestra discusión sobre la función MsgBox
y las diferentes formas de personalizarla usando VBA. ¡Seguir aprendiendo!
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub