Vba: MsgBox – InputBox – Cuadros de diálogo

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.

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:

NombreDescripció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 ])
Vba MsgBox
  • 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:

ConstanteDescripción
vbOKOnlyBotón Aceptar.
vbOKCancelBotones Aceptar y Cancelar
vbAbortRetryIgnoreBotones AnularReintentar e Ignorar.
vbYesNoCancelBotones No y Cancelar.
vbYesNoBotones No.
vbRetryCancelBotones Reintentar y Cancelar.
vbCriticalIcono Mensaje crítico.
vbQuestionIcono Consulta de advertencia.
vbExclamationIcono Mensaje de advertencia.
vbInformationIcono Mensaje de información.
vbDefaultButton1El primer botón es el predeterminado.
vbDefaultButton2El segundo botón es el predeterminado.
vbDefaultButton3El tercer botón es el predeterminado.
vbDefaultButton4El 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:

ConstanteDescripción
vbOKAceptar
vbCancelCancel
vbAbortAnular
vbRetryReintentar
vbIgnoreIgnore
vbYes
vbNoNo

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.

Vba MsgBox

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 ])
Vba InputBox
  • 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
Vba InputBox

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

Diseño de macros en Excel. Con ejemplos prácticos

Deja una respuesta

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