Msgbox vba excel

La función VBA MsgBox es como una función de salida que se utiliza para mostrar el cuadro de dialogo en excel, proporcionado por el desarrollador, es como una declaración de impresión.

La funcion msgbox vba

Cuando comenzamos a aprender VBA, lo primero que intentamos aprender es la función Message Box o msgbox vba excel. No es más que un pequeño cuadro de dialogo en excel que contiene el mensaje para el usuario.A qui le mostraremos cómo mostrar un mensaje, cómo personalizar el cuadro de mensaje, el cambio de icono, el cambio de botones y otras modalidades del cuadro de mensaje.

Sintaxis de la función VBA MsgBox

Como mencioné, MsgBox es una función y tiene una sintaxis similar a otras funciones de VBA.

MsgBox (indicador [, botones] [, título] [, archivo de ayuda, contexto])

  • prompt : este es un argumento obligatorio. Muestra el mensaje que ve en MsgBox. En nuestro ejemplo, el texto «Este es un MsgBox de muestra» es el ‘mensaje’. Puede usar hasta 1024 caracteres en la solicitud y también puede usarlo para mostrar los valores de las variables. En caso de que desee mostrar un mensaje que tenga varias líneas, también puede hacerlo (más sobre esto más adelante).
  • [botones] : determina qué botones e iconos se muestran en el MsgBox. Por ejemplo, si uso vbOkOnly, solo mostrará el botón Aceptar, y si uso vbOKCancel, mostrará los botones Aceptar y Cancelar. Cubriré diferentes tipos de botones más adelante.
  • [título] : aquí puede especificar qué título desea en el cuadro de diálogo del mensaje. Esto se muestra en la barra de título de MsgBox. Si no especifica nada, mostrará el nombre de la aplicación.
  • [ archivo de ayuda ] : puede especificar un archivo de ayuda al que se puede acceder cuando un usuario hace clic en el botón Ayuda. El botón de ayuda solo aparecerá cuando use el código del botón. Si está utilizando un archivo de ayuda, también debe especificar el argumento de contexto.
  • [contexto] : es una expresión numérica que es el número de contexto de ayuda asignado al tema de ayuda correspondiente.

Si es nuevo en el concepto de Msgbox, no dude en ignorar los argumentos [helpfile] y [context]. Rara vez he visto que se utilicen estos.

Nota: Todos los argumentos entre corchetes son opcionales. Solo el argumento ‘prompt’ es obligatorio.

Constantes de botón MsgBox de Excel VBA (ejemplos)

En esta sección, cubriré los diferentes tipos de botones que puede usar con un msgbox vba excel.

Antes de mostrarle el código VBA y cómo se ve MsgBox, aquí hay una tabla que enumera todas las diferentes constantes de botón que puede usar.

Constante del botónDescripción
vbOKOnlyMuestra solo el botón Aceptar
vbOKCancelMuestra los botones Aceptar y Cancelar.
vbAbortRetryIgnoreMuestra los botones Abortar, Reintentar e Ignorar
vb Sí NoMuestra los botones Sí y No
vbYesNoCancelMuestra los botones Sí, No y Cancelar
vbRetryCancelMuestra los botones Reintentar y Cancelar
vbMsgBoxHelpButtonMuestra el botón de Ayuda. Para que esto funcione, debe usar los argumentos de ayuda y contexto en la función MsgBox
vbDefaultButton1Hace que el primer botón sea predeterminado. Puede cambiar el número para cambiar el botón predeterminado. Por ejemplo, vbDefaultButton2 hace que el segundo botón sea el predeterminado

Nota: Mientras repasa los ejemplos de creación de diferentes botones, es posible que se pregunte cuál es el sentido de tener estos botones si no tiene ningún impacto en el código.

¡Lo hace! Según la selección, puede codificar lo que desea que haga el código. Por ejemplo, si selecciona Aceptar, el código debería continuar y si hace clic en Cancelar, el código debería detenerse. Esto se puede hacer usando variables y asignando el valor del cuadro de mensaje a una variable. Cubriremos esto en las secciones posteriores de este tutorial.

Ahora echemos un vistazo a algunos ejemplos de cómo se pueden mostrar los diferentes botones en un msgbox vba excel y cómo se ve.

Botones MsgBox – vbOKOnly (predeterminado)

Si solo usa el indicador y no especifica ninguno de los argumentos, obtendrá el cuadro de mensaje predeterminado como se muestra a continuación:

Msgbox vba excel

A continuación se muestra el código que le dará este cuadro de mensaje:

Sub DefaultMsgBox ()
MsgBox "Este es un cuadro de muestra"
End Sub

Tenga en cuenta que la cadena de texto debe estar entre comillas dobles.

También puede usar la constante de botón vbOKOnly, pero incluso si no especifica nada, se toma por defecto.

Botones MsgBox – Aceptar y Cancelar

Si solo desea mostrar el botón Aceptar y Cancelar, debe usar la constante vbOKCancel.

Sub MsgBoxOKCancel ()
MsgBox "¿Desea continuar?", VbOKCancel
End Sub
Botones MsgBox - Aceptar y Cancelar

Botones MsgBox Sí y No

Puede utilizar la constante ‘vbYesNo’ para mostrar los botones Sí y No.

Sub MsgBoxYesNo ()
MsgBox "¿Debemos detenernos?", VbYesNo
End Sub
Botones MsgBox: Sí, No y Cancelar

Botones MsgBox: Sí, No y Cancelar

Puede utilizar la constante ‘vbYesNoCancel’ para mostrar los botones Sí, No y Cancelar.

Sub MsgBoxYesNoCancel ()
MsgBox "¿Debemos detenernos?", VbYesNoCancel
End Sub

Constantes de icono de Excel VBA MsgBox (ejemplos)

Además de los botones, también puede personalizar los iconos que se muestran en el cuadro de diálogo MsgBox. Por ejemplo, puede tener un ícono rojo crítico o un ícono de información azul.

A continuación se muestra una tabla que enumera el código que mostrará el icono correspondiente.

Constante de iconoDescripción
vbCriticalMuestra el icono de mensaje crítico
vbQuestionMuestra el icono de pregunta
vbExclamaciónMuestra el icono de mensaje de advertencia
vbInformaciónMuestra el icono de información

Iconos de MsgBox – Crítico

Si desea mostrar un icono crítico en su MsgBox, use la constante vbCritical. Puede usar esto junto con otras constantes de botón (colocando un signo + entre los códigos).

Si desea mostrar el icono crítico con los botones Sí y No, utilice el siguiente código:

Sub MsgBoxCriticalIcon ()
MsgBox "Este es un cuadro de muestra", vbYesNo + vbCritical
End Sub
Msgbox vba excel

Iconos de MsgBox – Pregunta

Si desea mostrar un icono crítico en su MsgBox, use la constante vbQuestion.

Sub MsgBoxQuestionIcon ()
MsgBox "Este es un cuadro de muestra", vbYesNo + vbQuestion
End Sub
Msgbox vba excel

Iconos de MsgBox – Exclamación

Si desea mostrar un icono de exclamación en su MsgBox, utilice la constante vbExclamation.

Sub MsgBoxExclamationIcon ()
MsgBox "Este es un cuadro de muestra", vbYesNo + vbExclamation
End Sub
Msgbox vba excel

Iconos de MsgBox vba – Información

Si desea mostrar un icono de información en su MsgBox, use la constante vbInformation.

Sub MsgBoxInformationIcon ()
MsgBox "Este es un cuadro de muestra", vbYesNo + vbInformation
End Sub
Mensaje vba excel

Personalizar el título y el mensaje en MsgBox

Al usar MsgBox, puede personalizar el título y los mensajes de aviso.

Hasta ahora, el ejemplo que hemos visto ha utilizado Microsoft Excel como título. En caso de que no especifique el argumento del título, MsgBox usa automáticamente el título de la aplicación (que ha sido Microsoft Excel en este caso).

Puede personalizar el título especificándolo en el código como se muestra a continuación:

Sub MsgBoxInformationIcon ()
MsgBox "¿Desea continuar?", VbYesNo + vbQuestion, "Paso 1 de 3"
End Sub
Mensaje vba excel

También puede agregar saltos de línea en el mensaje de solicitud.

En el siguiente código, agregué un salto de línea usando ‘vbNewLine’.

Sub MsgBoxInformationIcon ()
MsgBox "¿Desea continuar?" & vbNewLine & "Haga clic en Sí para continuar", 
vbYesNo + vbQuestion, "Paso 1 de 3"
End Sub
Mensaje vba excel

También puede utilizar el carácter de retorno de carro – Chr (13) – o salto de línea – Chr (10) para insertar una nueva línea en el mensaje de solicitud.

Tenga en cuenta que puede agregar una nueva línea solo al mensaje de solicitud y no al título.

Asignar valor MsgBox a una variable

Hasta ahora, hemos visto ejemplos en los que hemos creado cuadros de mensaje y personalizamos los botones, los iconos, el título y el mensaje.

Sin embargo, hacer clic en un botón no ha hecho nada.

Con la función MsgBox VBA Excel, puede decidir qué desea hacer cuando un usuario hace clic en un botón específico. Y esto es posible ya que cada botón tiene un valor asociado.

A continuación se muestra una tabla que muestra los valores exactos y la constante devuelta por la función MsgBox. 

Botón pulsadoConstanteValor
OkayvbOk1
CancelarvbCancel2
AbortarvbAbort3
RevervbRetry4
IgnorarvbIgnore5
sivb Sí6
Novb No7

En el siguiente código, si el usuario hace clic en Sí, se muestra el mensaje «Hizo clic en Sí», y si el usuario hace clic en No, muestra «Usted hizo clic en No».

Sub MsgBoxInformationIcon ()
Resultado = MsgBox ("¿Desea continuar?", VbYesNo + vbQuestion)
Si Result = vbYes Entonces
MsgBox "Hiciste clic en Sí"
De lo contrario: MsgBox "Hiciste clic en No"
Terminara si
End Sub
Mensaje vba excel

En el código anterior, he asignado el valor de la función MsgBox a la variable Result. Cuando hace clic en el botón Sí, la variable Resultado obtiene la constante vbYes (o el número 6) y cuando hace clic en No, la variable Resultado obtiene la constante vbNo (o el número 7).

Luego utilicé una construcción If Then Else para verificar si la variable Result tiene el valor vbYes. Si lo hace, muestra el mensaje «Hizo clic en Sí», de lo contrario, muestra «Hizo clic en No».

Puede usar el mismo concepto para ejecutar un código si un usuario hace clic en Sí y sale del sub cuando hace clic en No.

2 comentarios en «Msgbox vba excel»

  1. Mientras recorre los registros segun un ciclo me gustaria que muestre un mensaje sin detener, es decir «Leyendo registros: n / 25639» donde n es la secuencia
    Se puede?

Deja un comentario