7.1 Msgbox

Msgbox en VBA, mandar mensajes al usuario

Con Msgbox en VBA para Excel podemos mandar de manera muy sencilla mensajes a los usuarios cuando estamos utilizando VBA bien en una macro normal o bien en un evento Este mensaje aparece en la pantalla del usuario como una ventana y puede tener varios elementos de configuración.


SINTAXIS DE MSGBOX EN VBA



La función Msgbox tiene una sintaxis bastante sencilla pero podemos complicarla mucho, casi tanto como se quiera. Básicamente esta función lanza un pop-up con un mensaje. Este pop-up tiene los siguientes argumentos:
  • Mensaje: una cadena de texto que se mostrará al usuario.
  • Título: es opcional. También una cadena de texto que deberá ser breve para mostrar al usuario.
  • Botones: es opcional, por defecto aparecerá “Aceptar”. Los botones pueden ser algunos de los siguientes: vbOKonly, vbCancelOnly, vbYesNo, vbCritical, vbExclamation, vbQuestion…


EJEMPLOS DE MSGBOX

A continuación vamos a mostrar algunos ejemplos de esta función y sus resultados.

EJEMPLO1: SÓLO EL MENSAJE
.
Sub MensajeSencillo()
 MsgBox "Bienvenidos a esta web!"
End Sub


Como puede verse en el código que hemos escrito, el mensaje tiene que ir escrito entre comillas dobles. En la siguiente imagen veréis el resultado de esta macro.

msgbox en VBA ejemplo sencillo

EJEMPLO2: MENSAJE CON UNA EXCLAMACIÓN DE TÍTULO
Sub Mensaje_con_botón()
 MsgBox "Bienvenidos a esta web!", vbExclamation
End Sub


Este mensaje además de ser muy visual, lanza una alerta sonara típica de windows. Como ves, el botón es el de aceptar pero en esta ocasión hay un símbolo de exclamación que hace más “pro” el mensaje.

mensaje con exclamación

EJEMPLO 3: MENSAJE CON BOTONES DE YES Y NO Y TÍTULO


Como puede verse en el siguiente ejemplo hemos añadido un ejemplo con los tres componentes principales de un Msgbox. No es muy complejo hacerlo pero aún podemos complicarlo un poco más. Fíjate que el título ha cambiado, ya no pone “Microsoft Excel” sino que pone “Mi título”

Sub Mensaje_con_título()
MsgBox "Bienvenidos a esta web!", vbYesNo,"Mi título"
End Sub

msgbox en vba con título y botones

EJEMPLO 4: COMBINAR DOS TIPOS DE BOTONES

En este ejemplo vamos a combinar el botón de vbYesNo para que aparezca como en la anterior imagen con el de la exclamación del ejemplo 2.
Sub Mensaje_con_dos_botones()
MsgBox "Bienvenidos a esta web!", vbYesNo + vbExclamation, "Mi título"
End Sub

En la siguiente imagen vemos como quedan combinados ambos botones creando un efecto muy útil e interesante.
msgbox en vba con dos botones

EJEMPLO 5: OBTENER LA RESPUESTA SI O NO DEL MSGBOX


¿Pero se puede hacer? Claro! Sino no habría posibilidad de poner dos botones. Obtener la respuesta es muy útil en los casos en los que queremos hacer algo o no hacerlo. En el ejemplo siguiente, VBA preguntará al usuario si está seguro de querer poner en rojo la celda A1 de este libro 
Sub Obtener_valor_del_mensaje() 
'primero pongo la pregunta
resultado = MsgBox("¿Quieres pintar de rojo la celda A1?", vbYesNo, "Colorear A1")
'ahora manejo el resultado a mi antojo
If resultado = vbYes Then
Range("A1").Interior.Color = vbRed
End If
End Sub
El resultado de esta pequeña macro te animo a que lo descubras tú mismo.



No hay comentarios:

Publicar un comentario