¿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])
- 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
|
Sí
|
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
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
- No puede agregar cuatro botones a un cuadro de mensaje si no usa el botón de ayuda como cuarto botón.
- 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