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 (ver más sobre eventos).  Este mensaje aparece en la pantalla del usuario como una ventana y puede tener varios elementos de configuración.

Antes de nada tengo que aclarar que un Msgbox puede ser muy útil en cualquier aplicación basada en Office. Puede utilizarse en cualquiera de sus programas y en este breve tutorial mostraremos cómo hacerlo en Excel pero será igual de válido en cualquier otro.

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:

  • Mensjae: 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

Ejemplo3: 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

Ejemplo4: 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

Ejemplo5: 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 (ver más sobre formato de celdas).

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.

En el siguiente enlace puedes descargar un libro con ejemplos para que puedas practicar tú mismo este pequeño ejercicio:

Ejemplos de Msgbox en VBA

(Visited 221.124 times, 1 visits today)
Categorías VBA

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información ACEPTAR

Aviso de cookies