MsgBox en Microsoft Excel VBA
-
MsgBoxen VBA -
Ejemplo 1: Sí/No
MsgBox -
Ejemplo 2: Advertencia
MsgBox -
Ejemplo 3: Asignar un
MsgBoxa 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 tipoStringque 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
promptpara 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
botoneses0, 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 tipoStringque especifica el título delMsgBoxque 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 deCadenaque 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 botonesAceptaryCancelar.vbAbortRetryIgnore: Tiene el valor2. Muestra los botonesCancelar,ReintentareIgnorar.vbYesNoCancel: Tiene el valor3. Muestra los botonesSí,NoyCancelar.vbYesNo: Este es el botón que tiene valor4. Muestra los botonesSíyNo.vbRetryCancel: este botón tiene el valor5. Muestra los botonesReintentaryCancelar.vbDefaultButton1: el primer botón se establece como predeterminado. Cambiar el número cambia el botón predeterminado; por ejemplo,vbDefaultButton2significa 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 ayudaycontexto, 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.
vbOKvbCancelarvbAbortarvbReintentarvbIgnorarvb 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