Cómo usar la función MsgBox para personalizar los mensajes al usuario

uso del MsgBox en VBA

Una de las funciones más utilizadas dentro de VBA es la ventana de mensajes o mejor conocida como MsgBox. Estos mensajes son utilizados para enviarle información al usuario final, bien sea solo para indicarle algo o invitarlo a que realice una acción. Utiliza la función MsjBox para personalizar todos los mensajes que le envías a los usuarios finales de las aplicaciones de Office.

Por lo general el MsgBox se utiliza cuando se requiere una respuesta simple de parte del usuario como Aceptar o Cancelar. Son fáciles de hacer y totalmente modificables, realiza uno distinto para cada acción.

Cómo usar la Función MsgBox para Personalizar los Mensajes al Usuario

Como usar la función MsgBox para personalizar los mensajes al usuario

Lo primero que debes conocer de MsgBox es que se crean a través del código del proyecto. El código se coloca dentro de un objeto y tiene una sintaxis específica. Por suerte, la sintaxis es bastante sencilla y no necesitas mayores conocimientos de programación.

Sintaxis de un MsgBox

MsgBox (texto [, boton(es)] [, título] [,archivo de ayuda, contexto])

  • Mensaje (prompt): es el texto que contiene el mensaje que desea comunicar al usuario final.
  • Titulo (title): es opcional y es el texto relacionado al nombre del mensaje. Puede ser útil para darle una referencia al usuario que le indique la relación del mensaje.
  • Botones (buttons): también es opcional y en caso de que no se configure se mostrará el botón Aceptar por defecto. Algunas de las constantes que se puede configurar de los botones son:

Sintaxis de un MsgBox

  • Archivo de ayuda (HelpFile): Es la cadena de texto que contiene la ubicación del archivo de ayuda relacionado al mensaje. Es opcional, pero en caso de que se coloque, se debe especificar el Contexto.
  • Contexto (context): El valor numérico que se asigna al tema de ayuda. Está relacionado con el archivo de ayuda.

Argumento del MsgBox

Hay varias formas de asignar valores a un argumento de MsgBox. Una forma sencilla de hacerlo es usando el nombre de la constante:

Private Sub CommandButton1_Click()
texto = "¿Quieres salir del sistema?" 'mensaje al usuario
estilo = vbYesNo + vbCritical + vbDefaultButton2 'tipos de botones
titulo = "MsgBox Mensaje de prueba" 'titulo del mensaje
ayuda = "DEMO.HLP" 'definir archivo de ayuda
Ctxt = 1000 ' Define el topico de contexto.
Response = MsgBox(texto, estilo, titulo, ayuda, Ctxt) 'MsgBox enviado al usuario
If Response = vbYes Then ' Si el usuario selecciona el Si
lbltexto.Caption = "Excelente" ' La acción que se realiza
Else ' Si el usuario selecciona no
lbltexto.Caption = "No pasa nada" ' mensaje de texto que se muestra si el usuario dice no
End If

End Sub

En el código anterior se le asigna la función MsgBox a un botón del formulario. El usuario al hacer clic en el botón le aparecerá un mensaje preguntándole si quiere salir del sistema con dos botones de acción (Si y No), un icono de mensaje crítico.

Si el usuario responde que si se mostrará la palabra "Excelente" en una etiqueta y en caso de que la respuesta sea No el mensaje que se muestra es "No pasa nada".

Otra forma de mostrar el argumento de un MsgBox es colocando el valor de cada constante o sumando el valor de los argumentos. La forma anterior es más sencilla porque permite interpretar el código a simple vista.

Valores devueltos del MsgBox

El importante determinar qué tipo de valor esta asociada a la respuesta del usuario, así como el nombre de la constante. Dependiendo del valor obtenido se puede asignar una acción específica. La siguiente imagen muestra los valores que se obtienen luego de pulsar un botón del MsgBox.

Valores devueltos del MsgBox

Ejemplos de MsgBox

Solo el primer argumento (el mensaje que al usuario) es obligatorio, lo demás es modificable y opcional.

1. Enviar un mensaje simple al usuario 

Private Sub btnbienvenida_Click()
MsgBox "Hola usuario bienvenido al sistema"
End Sub

Al ejecutarse la acción del botón se muestra un mensaje al usuario de bienvenida con el botón Aceptar que se muestra por defecto.

2. Enviar un mensaje al usuario con botones

Private Sub btncontinuar_Click()
MsgBox "¿Desea continuar?", vbYesNo + vbExclamation, "Continuar sistema"
End Sub

Este código es más específico porque se le muestra el mensaje al usuario, se asignan los botones "Si" y "No", el icono de exclamación y el título "Continuar sistema".

Subir