Vba MsgBox – InputBox: estos cuadros de diálogo permiten presentar información en pantalla para el usuario de Excel. La instrucción MsgBox muestra un mensaje en un cuadro de diálogo personalizable. Por otro lado, la instrucción InputBox, además de mostrar un mensaje, solicita la introducción de un texto por parte del usuario. Sin embargo, antes de explicar más detalladamente estas instrucciones y ver el uso que le podemos dar en nuestra programación, hablemos de los cuadros de diálogo propios del programa Microsoft Excel.
Vba Cuadros de diálogo de Microsoft Excel
Cuando utilizamos la aplicación Microsoft Excel estamos acostumbrados a abrir distintos cuadros de diálogo o ventanas para trabajar con nuestras hojas de cálculo. Mediante estas ventanas aplicamos el formato a las celdas, gestionamos los libros, configuramos la página de impresión,… y accedemos a un sinfín de opciones del programa.
Si necesitamos utilizar alguna de estos cuadros de diálogo en nuestras macros, podemos hacerlo mediante la colección de objetos Application.Dialogs.
Se trata de una colección de todos los objetos Dialogs de Excel, que representan los distintos cuadros de diálogo que utilizamos en la aplicación. Mediante el método Show podemos mostrar el cuadro de diálogo deseado.
Application.Dialogs(xlDialogSaveAs).Show
Estos son algunos cuadros de diálogo de la aplicación que podemos utilizar:
Nombre | Descripción |
---|---|
xlDialogAlignment | Alineación |
xlDialogBorder | Borde |
xlDialogCellProtection | Proteger celda |
xlDialogDataSeries | Serie de datos |
xlDialogDataValidation | Validación de datos |
xlDialogFontProperties | Propiedades de fuente |
xlDialogInsert | Insertar |
xlDialogOpen | Abrir |
xlDialogPageSetup | Configurar página |
xlDialogPasteSpecial | Pegado especial |
xlDialogPrint | Imprimir |
xlDialogPrinterSetup | Configurar impresora |
xlDialogSaveAs | Guardar como |
xlDialogSaveWorkbook | Guardar libro |
xlDialogSearch | Buscar |
xlDialogZoom | Zoom |
Si lo deseas, puedes consultar el Listado completo de cuadros de diálogo para la aplicación Microsoft Excel. También puedes acceder a la explicación del equipo de soporte de Microsoft
Vba MsgBox – InputBox Cuadros de diálogo personalizados
Vba MsgBox
Esta función nos permite mostrar un mensaje en pantalla mediante un cuadro de diálogo personalizado. Además, espera a que el usuario pulse sobre uno de los botones de la ventana y devuelve un valor que indica qué botón se ha pulsado.
La función tiene la siguiente sintaxis:
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
- Prompt: El mensaje que se va a mostrar en pantalla. Se trata de una cadena de texto.
- Buttons: Una expresión numérica que indicará el número y tipo de botones que se van a mostrar en el cuadro de diálogo, así como el icono que acompañará al mensaje y el botón predeterminado.
En este argumento podemos hacer uso de las siguientes constantes:
Constante | Descripción |
---|---|
vbOKOnly | Botón Aceptar. |
vbOKCancel | Botones Aceptar y Cancelar |
vbAbortRetryIgnore | Botones Anular, Reintentar e Ignorar. |
vbYesNoCancel | Botones Sí, No y Cancelar. |
vbYesNo | Botones Sí, No. |
vbRetryCancel | Botones Reintentar y Cancelar. |
vbCritical | Icono Mensaje crítico. |
vbQuestion | Icono Consulta de advertencia. |
vbExclamation | Icono Mensaje de advertencia. |
vbInformation | Icono Mensaje de información. |
vbDefaultButton1 | El primer botón es el predeterminado. |
vbDefaultButton2 | El segundo botón es el predeterminado. |
vbDefaultButton3 | El tercer botón es el predeterminado. |
vbDefaultButton4 | El cuarto botón es el predeterminado. |
- Title: Título del cuadro de diálogo. Se trata de una cadena de texto.
- Helpfile y Context: argumentos con los que especificamos la ayuda para el cuadro de texto.
Todos los argumentos, excepto Prompt, son opcionales.
La función devolverá como resultado el botón pulsado por el usuario:
Constante | Descripción |
---|---|
vbOK | Aceptar |
vbCancel | Cancel |
vbAbort | Anular |
vbRetry | Reintentar |
vbIgnore | Ignore |
vbYes | Sí |
vbNo | No |
Ejemplo de uso de Vba MsgBox
resp = MsgBox("Este es el mensaje", vbYesNo, "Título")
If resp = vbYes Then
MsgBox "Pulsaste Sí"
Else
MsgBox "Pulsaste No"
End If
Este código mostraría el siguiente cuadro de diálogo y recogería la respuesta del usuario.
También, es posible utilizar la función MsgBox para mostrar un mensaje en pantalla sin necesidad de recoger el valor que devuelve la función. En ese caso no usaríamos los paréntesis al llamar a la función. Esta sería la sintaxis de la función:
MsgBox prompt, [ buttons, ] [ title, ] [ helpfile, context ]
Si lo deseas, en este enlace puedes acceder a la explicación del equipo de soporte de Microsoft.
Vba InputBox
Esta función nos permite mostrar un mensaje en pantalla mediante un cuadro de diálogo personalizado. Además, espera a que el usuario introduzca un texto. Esta cadena de texto es el valor que devuelve la función.
La función tiene la siguiente sintaxis:
InputBox(prompt, [ title ], [ default ], [ xpos ], [ ypos ], [ helpfile, context ])
- Prompt: El mensaje que se va a mostrar en pantalla. Se trata de una cadena de texto.
- Title: Título del cuadro de diálogo. Se trata de una cadena de texto.
- Default: Respuesta predeterminada que aparecerá en el cuadro de diálogo.
- xpos , ypos: Posición en pantalla del cuadro de texto.
- Helpfile y Context: argumentos con los que especificamos la ayuda para el cuadro de texto.
Todos los argumentos, excepto Prompt, son opcionales.
Veamos un ejemplo del uso de esta función:
resp = InputBox("Escribe un mensaje", "Por favor")
MsgBox "Escribiste:" & resp
También puedes acceder a la explicación del equipo de soporte de Microsoft
Diseño de macros en Excel. Con ejemplos prácticos
Esta entrada es parte de nuestro curso Diseño de macros en Excel. Con ejemplos prácticos