Lección 14: La función msgbox en VBA.

msgbox-vba

Escrito por Administrador

12 de septiembre de 2021

En esta lección vas a aprender a crear ventanas emergentes con avisos, errores, resultados…todo ello haciendo uso de la función msgbox en VBA. Además, os enseñaré otros usos de esta función que nos pueden ser de gran utilidad. ¡Empezamos!

La sintaxis de la función es la siguiente:

Msgbox Prompt, Buttons, Title, HelpFile, Context

  • Prompt: Es el mensaje que aparecerá dentro del cuadro de diálogo.
  • Buttons: Código de la siguiente tabla mediante el cual elegiremos el número y tipo de botones que queremos que aparezcan en nuestro cuadro de diálogo.
total-operaciones-matematicas-macros
  • Title: Título del cuadro de diálogo.
  • HelpFile: Ubicación del archivo de ayuda asociado al cuadro de diálogo. Si se especifica este argumento, debe indicarse también Context.
  • Context: Valor numérico asignado por el autor al tema de ayuda. Si se especifica este argumento, debe indicarse también HelpFile.

En la mayoría de los casos, simplemente querremos que aparezca una frase de aviso o el resultado de una operación en el cuadro de diálogo, como por ejemplo “Operación incorrecta”. Para esto, escribiríamos:

Msgbox "Operación incorrecta"

Pero su uso va más allá de mostrar simplemente un aviso o un resultado. Son comúnmente usados por programadores para detectar fallos en códigos extensos. Intercalando msgbox en el código VBA, puedes ir viendo en qué parte del programa te encuentras, si hay algún fallo en un condicional, en un cálculo, etc…

Vamos a ver ejemplos de todo esto para familiarizarnos con esta función que tanto nos va a ayudar de aquí en adelante.

Para empezar, creamos un libro en blanco, abrimos el editor VBA e insertamos 5 módulos. Copia las siguientes macros en ellos.

 

Macro 1. Mostrar una ventana de texto usando msgbox.

Sub Leccion14_1()

'Macro que muestra una ventana con el texto "Esto es una prueba"

'Mostramos cuadro de diálogo

MsgBox "Esto es una prueba"                                                

End Sub

Macro 2. Mostrar una ventana de texto con título usando msgbox.

Sub Leccion14_2()

'Macro que muestra una ventana con el texto "Esto es una prueba" y con título "Aviso"

'Mostramos cuadro de diálogo

MsgBox "Esto es una prueba", , "Aviso"                            

End Sub

Macro 3. Mostrar el resultado de una operación en una ventana de texto usando msgbox.

Sub Leccion14_3()

'Macro que muestra ventana con el resultado de operación matemática y título "Operación matemática"

'Guardamos en la variable resultado el valor de la celda F4

resultado = Cells(4, "F").Value            

'Mostramos cuadro de diálogo              

MsgBox "El resultado es " & resultado, , "Aviso"           

End Sub

Macro 4. Mostrar ventana de texto con opciones Sí/No.

Sub Leccion14_4()

'Macro que muestra una ventana con titulo "Advertencia", con texto "¿Borrar celdas C4 y D4?" y los botones de opciones Si y No junto con el icono de mensaje de advertencia

'Guardamos en la variable eleccion, la opcion elegida (Yes o No)

eleccion = MsgBox("¿Borrar celdas C4 y D4?", vbYesNo + vbExclamation, "Advertencia")         

Select Case eleccion

'Si la eleccion ha sido Yes, entonces

Case vbYes:        

'Borramos las celdas C4 y D4                                                                

Range("C4:D4").ClearContents                                             

End Select

End Sub

Rellena la hoja de cálculo tal y como se muestra en la figura y crea 4 botones para asociarle las macros anteriores.

Aquí te dejo dos enlaces donde explico cómo configurar Microsoft Excel para el uso de macros y cómo asignar macros a botones, por si te interesan.

total-operaciones-matematicas-macros

Ejecuta la primera macro, verás como aparece el cuadro de diálogo con el mensaje de texto “Esto es una prueba”. Como no hemos seleccionado un título para el cuadro de diálogo, por defecto, nos aparece “Microsoft Excel”.

total-operaciones-matematicas-macros

La segunda macro lanza un cuadro de diálogo con el mismo texto que el anterior, pero con el título “Aviso”.

total-operaciones-matematicas-macros

La tercera macro va a crear un cuadro de diálogo con el resultado de la celda F4, que no es más que la suma de C4 y D4. Podemos jugar con los valores de C4 y D4 y ver cómo cambia el resultado en el cuadro de diálogo al lanzar esta tercera macro.

total-operaciones-matematicas-macros

La cuarta macro da un pasito más, y exprime la función msgbox al máximo. Partiendo de la tabla mostrada al comienzo de esta lección, vamos a crear un cuadro de diálogo con dos botones Yes/No (vbYesNo), con el icono de advertencia (vbExclamation) y con el título “Advertencia”. Este cuadro de diálogo nos va a dar la opción de borrar el contenido de las celdas C4 Y D4.

total-operaciones-matematicas-macros

Si elegimos la opción Sí, se borrarán los números almacenados en C4 y D4 y el resultado de la suma será 0.

total-operaciones-matematicas-macros

Al principio de la lección comentaba que la función msgbox se utilizaba también en VBA para localizar fallos de programación intercalándolas en el código a modo de guía para saber por dónde va discurriendo el programa. Esto os lo mostraré más adelante cuando vayamos desarrollando códigos más largos y complejos.

Con esto llegamos al final de la decimocuarta lección, en la que has aprendido a usar la función msgbox en VBA.

Espero que te esté gustando el curso y que me plantees cualquier duda que te surja. También puedes proponerme macros que te interese desarrollar y las voy incluyendo en el temario, soy todo oídos. Nos vemos en el próximo capítulo.

Descarga el archivo del ejemplo

« L13. Condicionales en macros (2).

L15. Buscar un valor en una columna Excel (Find). »

0 comentarios

Enviar un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto