¿cómo crear funciones de cuadro de mensaje en excel?

Lo primero que aprendí sobre VBA fue cómo usar un cuadro de mensaje («función msgbox»). Es como un simple cuadro emergente en su ventana de Excel para mostrar un mensaje específico. Si lo piensas bien, puedes usarlo de dos maneras.

  • Entregar un mensaje al usuario.
  • Obtenga una respuesta sencilla del usuario.

La mayoría de los programadores de VBA lo utilizan en sus códigos de macros para hacerlos más interactivos y, si no lo sabes, apuesto que después de leer este artículo te enamorarás de él.

Consejo de experto: si es principiante en VBA, podría ser una buena idea aprender más sobre el cuadro de mensaje de VBA.

Entonces, hoy en este artículo me gustaría compartir con ustedes todos los detalles sobre el uso de un cuadro de mensaje en Excel y algunos ejemplos del mundo real.

…Empecemos.

Sintaxis

=MSGBOX(mensaje, [botones], [título], [archivo de ayuda, contexto])

Sintaxis de la función msgbox vba

  • símbolo Expresión de cadena utilizada para mostrarse como un mensaje. La longitud máxima de caracteres es 1024, que depende del ancho de los caracteres.
  • [botones] Puede utilizar este argumento para especificar botones, estilo de icono, identidad del botón y modalidad del cuadro de mensaje.
  • [título] Puede utilizar este argumento para especificar el texto del título de su cuadro de mensaje.
  • [archivo de ayuda] Este argumento le ayudará a especificar un archivo de ayuda para el usuario. El usuario puede acceder a este archivo de ayuda utilizando el botón de ayuda. Si especifica un archivo de ayuda, es obligatorio especificar un número de contexto.
  • [contexto] Expresión numérica utilizada para asignar un tema de ayuda desde el menú de ayuda.

Nota: En la lista anterior, los argumentos anteriores que están entre corchetes son opcionales, puede omitirlos para especificarlos.

Cómo personalizar un cuadro de mensaje y usar diferentes botones

Puede personalizar fácilmente un cuadro de mensaje de VBA con todas las opciones disponibles. Echemos un vistazo a estas opciones.

#1. vbOKSolo

Esto le brinda un simple botón Aceptar. El usuario puede hacer clic en él después de leer el mensaje para cerrarlo. También puede utilizar una macro para ejecutarla una vez que se hace clic en el botón Aceptar.

En OKOnly()

Mensaje de MsgBox: = «Este es un MsgBox», _

Botones:=vbOKOnly, _

Título: = «Buzón»

Subtítulo final

#2. vbOKCancelar

Esta constante le proporciona un botón de Aceptar y cancelar. El usuario ahora tiene dos opciones: presionar OK para continuar o cancelar para salir.

En AceptarCancelar()

Mensaje de MsgBox:= »¿Estás bien? », _

Botones:=vbOKCancelar, _

Título: = «Buzón»

Subtítulo final

#3. vbAbortRetryIgnorar

Esto le permite mostrar tres botones para Acerca de, Reintentar y Omitir. El usuario puede cancelar la operación, volver a intentarla o ignorarla.

En AceptarCancelar()

Mensaje de MsgBox:= »¿Estás bien? », _

Botones:=vbOKCancelar, _

Título: = «Buzón»

Subtítulo final

#4. vbSíNoCancelar

Esta constante muestra tres botones para Sí, No y Cancelar. El usuario puede Sí para aceptar y continuar, No para rechazar o Cancelar para cerrar el cuadro de mensaje.

En SíNoCancelar()

Mensaje de MsgBox: = «Ahora tienes tres botones», _

Botones:=vbSíNoCancelar, _

Título: = «Buzón»

Subtítulo final

#5. vbSíNo

Esta constante muestra dos botones para Sí y No. El usuario puede hacer clic en Sí para aceptar y continuar o en No para rechazar.

Bajo SíNo()

Mensaje de MsgBox: = «Ahora tienes dos botones», _

Botones:=vbSíNo, _

Título: = «Buzón»

Subtítulo final

#6. vbReintentarCancelar

Ahora muestra dos botones, reintentar y cancelar. Puede usarlo para pedirle al usuario que vuelva a intentar la operación o la cancele.

Sub RetryCancel()MsgBox Prompt:=”Por favor, inténtelo de nuevo”, _Buttons:=vbRetryCancel, _Title:=”MsgBox”End Sub

#7. vbRevisión

Esta constante muestra un icono en el cuadro de mensaje, lo que indica que el mensaje es crítico.

Subcrítico()

Mensaje de MsgBox: = «Esto es crítico», _

Botones:=vbCrítico, _

Título: = «Buzón»

Subtítulo final

#8. vbPregunta

Esta constante se puede utilizar al hacer una pregunta al usuario.

Subpregunta()

Mensaje de MsgBox := »¿Qué hacer ahora? », _

Botones:=vbPregunta, _

Título: = «Buzón»

Subtítulo final

#9. vbExclamación

Esta constante mostrará un icono de exclamación con el mensaje.

Bajo exclamación()

Mensaje de MsgBox := »¿Qué hacer ahora? », _

Botones:=vbExclamación, _

Título: = «Buzón»

Subtítulo final

#diez. vbInformación

Mostrará un icono indicando que el mensaje es informativo.

Sub Información()MsgBox Prompt:=”¿Qué hacer ahora?”, _Buttons:=vbInformation, _Title:=”MsgBox”End Sub

#11. vbDefaultButton1

Utilice esta constante para especificar el primer botón en su cuadro de mensaje como botón predeterminado.

Sub DefaultButton1()MsgBox Prompt:=”¿El botón1 está resaltado?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton1, _Title:=”MsgBox”End Sub

#12. vbDefaultButton2

Utilice esta constante para especificar el segundo botón en su cuadro de mensaje como botón predeterminado.

Sub DefaultButton2()MsgBox Prompt:=”¿El botón2 está resaltado?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton2, _Title:=”MsgBox”End Sub

#13. vbDefaultButton3

Utilice esta constante para especificar el tercer botón en su cuadro de mensajes como botón predeterminado.

Sub DefaultButton3()MsgBox Prompt:=”¿El botón3 está resaltado?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton3, _Title:=”MsgBox”End Sub

#14. vbDefaultButton4

Utilice esta constante para especificar el cuarto botón en su cuadro de mensajes como botón predeterminado.

Sub DefaultButton4()MsgBox Prompt:=”¿El botón4 está resaltado?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton4, _Title:=”MsgBox”End Sub

#15. vbAplicaciónModal

Esta constante suspenderá la aplicación (Excel), el usuario deberá responder al msgbox para utilizar la aplicación.

En OKOnly()

Mensaje de MsgBox: = «Este es un MsgBox», _

Botones:=vbOKOnly, _

Título: = «Buzón», _

Subtítulo final

#dieciséis. vbSistemaModal

Esta constante suspenderá todas las aplicaciones de su sistema operativo, el usuario deberá responder primero al cuadro de mensaje.

Sub ApplicationModal()MsgBox Prompt := »Este es el modal de la aplicación», _Buttons :=vbOK + vbApplicationModal, _Title := »MsgBox »End Sub

#17. vbMsgBoxBotón de ayuda

Utilice esta constante para agregar un botón de ayuda a su buzón. Puede agregar un archivo de ayuda y un número de contexto para usar el botón de ayuda.

Sub HelpButton()MsgBox Prompt:=”Usar botón de ayuda”, _Buttons:=vbOK + vbMsgBoxHelpButton, _Title:=”MsgBox”, _HelpFile:=”C:UsersPuneet GogiaDesktopsamplehelp.chm”, _Context:=101End Sub

Una vez que el usuario hace clic en el botón de ayuda, aparece un menú de ayuda.

#18. vbMsgBoxSetPrimer plano

Esta constante le ayudará a convertir la ventana del cuadro de mensajes en una ventana de primer plano.

Sub SetForeground()MsgBox Prompt:=”Este MsgBox está en primer plano”, _Buttons:=vbOK + vbMsgBoxSetForeground, _Title:=”MsgBox”End Sub

#19. vbMsgBoxDerecha

El texto se alineará a la derecha usando esta constante.

En MsgBoxRight()

Mensaje de MsgBox: = «El texto está a la derecha», _

Botones:=vbOK + vbMsgBoxDerecha, _

Título: = «Buzón»

Subtítulo final

#20. vbMsgBoxRtlLectura

Usando esta constante, el cuadro de mensaje se desplazará hacia la derecha. Esta constante está diseñada principalmente para los sistemas hebreo y árabe.

Bajo MsgBoxRtlRead()

Mensaje de MsgBox: = «Este cuadro está anulado», _

Botones:=vbOK + vbMsgBoxRtlRead, _

Título: = «Buzón»

Subtítulo final

Valores de retorno

Cada vez que un usuario responde al cuadro de mensaje haciendo clic en uno de los botones, se genera un número. Esto le ayudará a identificar en qué botón hizo clic el usuario.

Constante
Valor
Descripción
vbOK
1
ESTÁ BIEN
vbCancelar
2
Cancelar
vbAbortar
3
Aborto
vb Inténtalo de nuevo
4
Empezar de nuevo
vbSaltar
5
Ignorar
vbSí
6
vbNo
7
No

Ejemplos del mundo real del uso de la función de cuadro de mensajes de VBA en Excel

Aquí he enumerado algunos ejemplos de cuadros de mensajes de VBA de la vida real y estoy seguro de que estos ejemplos lo inspirarán a usarlo.

#1. Ejecutar una macro con un VBA MsgBox

Ahora, con la ayuda de la función msgbox, puede avisar al usuario antes de ejecutar una macro. Veamos la macro a continuación para comprenderlo.

En Guardar esto()

Resultado tenue como número entero

Resultado = MsgBox(“¿Quieres guardar este archivo?”, vbOKCancel)

Si Resultado = vbOK Entonces

ActiveWorkbook.Guardar

Subtítulo final

guardar libro de trabajo con vba msgbox

Puede pedirle al usuario que guarde el libro y, si el usuario hace clic en el botón Aceptar, el código de macro guardará el libro.

#2. Insertar una tabla en un cuadro de mensaje

Puede usar vbTab para ingresar datos tabulares en el cuadro de mensaje. En este ejemplo, la tabla comienza en la celda A1.

En AddToMsgBox()

Mensaje atenuado como cadena

Dim r como int

Dim c como int

Dim rc como int

Dim cc como int

Atenuar myRows como rango

Atenuar mis columnas como rango

Mensaje = “”

Establecer misFilas = Rango («A:A»)

Establecer misColumnas = Rango («1:1»)

rc = Aplicación.CountA(misFilas)

cc = Aplicación.CountA(misColumnas)

Para r = 1 a rcPara c = 1 a cc

Mensaje = Mensaje y celdas (r, c). Texto

Si c <= cc Entonces

Mensaje = Mensaje y vbTab

siguiente cMsg = Msg & vbCrLf

siguiente r

Mensaje de cuadro de mensajes

Subtítulo final

#3. Mostrar cuadro de mensaje al abrir un archivo

Si observa la macro a continuación, utilicé auto_open para crear un mensaje que se mostrará cuando se abra el libro.

Bajo auto_open()

MsgBox “Bienvenido a Exceladvisor y gracias por descargar este archivo” _

+ vbNewLine + vbNewLine + “Aquí encontrará una explicación detallada de la función MsgBox. » _

+ vbNewLine + vbNewLine + “Y no olvides ver otras cosas interesantes. »

Subtítulo final

Comidas para llevar

  1. No puede agregar cuatro botones a un cuadro de mensaje si no usa el botón de ayuda como cuarto botón.
  2. Para crear un archivo de ayuda para su cuadro de mensaje, puede consultar el siguiente archivo de ejemplo.

Archivo de ejemplo

Descargue este archivo de muestra aquí para obtener más información al respecto.

Conclusión

El cuadro de mensaje no sólo le ayuda a transmitir un mensaje, sino que también produce una impresión creativa en el usuario. Puede enviarles un mensaje y obtener una respuesta sencilla.

Y como dije, si eres nuevo en VBA, aprender a usar un cuadro de mensaje es una de las mejores cosas. Espero que este artículo te haya ayudado a acercarte a tu sueño de dominar VBA, pero ahora dime una cosa.

¿Crees que la función MsgBox es una de las mejores cosas de VBA?

Asegúrate de compartir tus opiniones conmigo en la sección de comentarios, me encantaría saber de ti y no olvides compartir este consejo con tus amigos.

Más información sobre VBA

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *