¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Macros y lenguaje VBA
  3. Comunicarse con el usuario: MsgBox e InputBox
Extrait - Macros y lenguaje VBA Descubra la programación en Excel (nueva edición)
Extractos del libro
Macros y lenguaje VBA Descubra la programación en Excel (nueva edición) Volver a la página de compra del libro

Comunicarse con el usuario: MsgBox e InputBox

Objetivo del capítulo

A fin de equiparle mejor para comunicarse con los usuarios sin tener que escribir cientos de líneas de código, descubrirá en este capítulo las funciones MsgBox e InputBox. Mostrar mensajes a los usuarios puede servir para varios propósitos, como darles la bienvenida o informarles sobre el proceso de su programa, pero también advertirles de los pasos críticos.

Así, en este capítulo, se repasará la función MsgBox, con los botones e iconos que puede añadir a sus cuadros de diálogo, y la función InputBox, con las diferentes opciones de que dispone cuando quiere interactuar de forma más específica con sus usuarios.

Al final del capítulo, encontrará una serie de ejercicios para entrenarse en adaptar mejor su comunicación a través de las herramientas VBA.

Mostrar un mensaje al usuario: MsgBox

Independientemente del lenguaje informático, siempre es importante mostrar la información al usuario y obtener una confirmación o afirmación por su parte. En VBA, esta función de visualización de mensajes se llama MsgBox, que se pronuncia «Message Box» (mesaʒ boks).

images/cap05_img_01.png

La función MsgBox es probablemente la más utilizada de las disponibles en VBA. Es importante saber cómo escribirla, pero también las opciones que se le ofrecen al utilizarla.

Usar MsgBox para un despliegue básico

 Después de añadir un módulo en el que pueda escribir su código, comience escribiendo estas pocas líneas:

Sub Buenosdias() 
  'Mostrar Buenos días al usuario 
End Sub 

Ejemplo 1: escribiendo una primera macro

Las palabras clave Sub y End Sub se tratarán en el capítulo Procedimientos, funciones y macros. Por el momento su código no contiene más que un comentario. Si ejecuta la macro, no pasará nada.

Para mostrar «Buenos días» al usuario, basta con añadir la siguiente sentencia para obtener el siguiente código completo:

Sub Buenosdias() 
  'Mostrar Buenos días al usuario 
  MsgBox "Buenos días" 
End Sub 

Ejemplo 2: llamando a la función MsgBox

 Ejecute la macro; deberá ver en su pantalla el siguiente mensaje:

images/cap05_img_02.png

Enhorabuena, ¡ha escrito y ejecutado su primera macro! Siga ahora para descubrir cómo mejorarlo.

Propiedades y sintaxis general del cuadro de diálogo MsgBox

Cuando quiera mostrar un mensaje, deberá escribir la función MsgBox, seguida del texto que quiera mostrar. El texto va entre comillas.

De forma predefinida, la ventana muestra un único botón Aceptar y tiene el título Microsoft Excel.

Las cuatro partes que le interesarán en los próximos párrafos se muestran en la siguiente imagen.

images/cap05_img_03.png

El texto es la información principal que aparece en el cuadro de diálogo (1). A continuación, tiene uno o varios botones en la parte inferior de la caja (2). En la parte superior de la caja está el título (3). Por último, a la izquierda del texto puede ver lo que se llama un icono (4).

Usted puede manipular cada una de estas propiedades...

Pedir información al usuario: Application.InputBox

Cuando hacer clic en un botón ya no es una opción suficientemente útil para su programa, debe utilizar otros medios. Ya sea que se trate de un texto, un valor numérico o de una celda de Excel que se ha de suministrar, la función InputBox es una valiosa herramienta a su disposición.

Application.InputBox o VBA.InputBox

Una peculiaridad que puede confundirle en su proceso de aprendizaje es que hay dos funciones llamadas InputBox en VBA. Ambas tienen el mismo propósito: mostrar un cuadro de diálogo para solicitar información al usuario. Se puede considerar que ambas tienen las mismas propiedades y parámetros, con la salvedad de que aquí se estudiará Application.InputBox, que permite una gestión aún más fina de los tipos de valores solicitados al usuario. En los siguientes capítulos descubrirá que aquí Application hace referencia a Excel. Además, Application.InputBox solo está disponible en Excel, mientras que InputBox únicamente estará accesible para otras aplicaciones de Office (Access, Word u Outlook, por nombrar algunas).

images/cap05_img_19.png

Ejemplo visual de la caja de diálogo InputBox

Otro punto, técnicamente hablando, Application.InputBox llama al método VBA.InputBox. Por último, tenga en cuenta, que, si utiliza InputBox sin especificar Application delante, la versión llamada será entonces VBA.InputBox.

Diálogo básico

Application.Inputbox es un cuadro de diálogo que le pide al usuario introducir información con el teclado o el ratón para poder utilizar esa información en el resto del programa.

He aquí...

Ejercicios

Con el fin de aprender mejor las diferentes posibilidades que ofrecen las funciones MsgBox y Application.InputBox, he aquí una serie de ejercicios. Aunque todavía no sabe cómo hacer programas elaborados, aquí intentará mostrar cuadros de diálogo respetando ciertas restricciones.

 Comience por crear un módulo al que llamará Capítulo_05_Msgbox_InputBox.

Cada ejercicio puede realizarse por separado. Puede escribir su código entre las siguientes líneas:

Public Sub Capitulo05_EjercicioNumero() 
   'su código aquí 
End Sub 

 A continuación, ejecute su programa a través de la cinta de opciones de Excel o colocando el cursor dentro de su programa y pulsando la tecla F5.

Las correcciones de los ejercicios se encuentran en el capítulo Correcciones de los ejercicios, y el archivo de corrección pueden descargarse en la página Información.

Función MsgBox

Hola a todo el mundo

En el interior de una estructura:

Public Sub Capitulo05_Ejercicio1A() 
End Sub 

 Escriba una instrucción que muestre al usuario, en un cuadro de diálogo, el texto simple «Hola a todo el mundo».

 Ejecute el código para comprobar que obtiene el siguiente cuadro de diálogo:

images/cap05_img_24.png

Juego de botones

En el interior de una estructura:

Public Sub Capitulo05_Ejercicio1B() ...