Cómo usar la función MsgBox en Excel 2016 VBA

  1. Software
  2. Oficina de Microsoft
  3. Excel
  4. Cómo usar la función MsgBox en Excel 2016 VBA

Libro Relacionado

Programación de Excel VBA para Dummies, 4ª Edición

Por John Walkenbach

Probablemente esté familiarizado con la función VBA MsgBox. La función MsgBox, que acepta los argumentos que se muestran a continuación, es útil para mostrar información y obtener una entrada de usuario sencilla. Es capaz de obtener información del usuario porque es una función. Una función, como probablemente sabes, devuelve un valor. En el caso de la función MsgBox, utiliza una ventana de diálogo para obtener el valor que devuelve. Siga leyendo para ver exactamente cómo funciona.

ArgumentWhat It AffectsPromptEl texto que Excel muestra en el cuadro de mensajeBotonesUn número que especifica qué botones (junto con qué icono)
Aparece en el cuadro de mensaje (opcional)TítuloEl texto que aparece en la barra de título del cuadro de mensaje
(opcional

)He aquí una versión simplificada de la sintaxis de la función MsgBox:

MsgBox(prompt[, botones][, título])

Mostrar un cuadro de mensaje simple

Puede utilizar la función MsgBox de dos maneras:

  • Simplemente mostrar un mensaje al usuario: En este caso, no le importa el resultado devuelto por la función.
  • Para obtener una respuesta del usuario: En este caso, usted se preocupa por el resultado devuelto por la función. El resultado depende del botón que el usuario haga clic.

Si utiliza la función MsgBox por sí misma, no incluya paréntesis alrededor de los argumentos. El siguiente ejemplo simplemente muestra un mensaje y no devuelve un resultado. Cuando aparece el mensaje, el código se detiene hasta que el usuario hace clic en Aceptar.

Sub MsgBoxDemo() MsgBox "Click OK to begin printing."
 Hojas ("Resultados").PrintOutEnd Subtítulo

Mira abajo para ver cómo se ve este cuadro de mensaje. En este caso, la impresión comienza cuando el usuario hace clic en Aceptar. ¿Notas que no hay forma de cancelar la impresión? Sigue leyendo para averiguar cómo arreglarlo.

Un simple cuadro de mensajes.

Obtener una respuesta de un buzón de mensajes

Si muestra un cuadro de mensaje que tiene más que un botón OK, probablemente querrá saber qué botón hace clic el usuario. Estás de suerte. La función MsgBox puede devolver un valor que representa el botón en el que se hace clic. Puede asignar el resultado de la función MsgBox a una variable.

En el siguiente código, se utilizan algunas constantes incorporadas que facilitan el trabajo con los valores devueltos por MsgBox:

Sub GetAnswer() Dim Ans As Long Ans = MsgBox("¿Empezar a imprimir?", vbSíNo) Select Case Ans Case vbSí ActiveSheet.PrintOut Case vbNo MsgBox "Impresión cancelada"End SelectEnd Submenú

ConstantValueWhat It DoesvbOKOnly0Displays OK button only.vbOKCancel1Displays OK and Cancel buttons.vbAbortRetryIgnore2Displays Abort, Retry, and Ignore buttons.vbSíNoCancel3Displays Sí, No y Cancelar botones.vbSíNo4Displays Sí y No botones.vbRetryCancel5Displays RetryCancel buttons.vbCritical16Displays Critical Message icon.vbQuestion32Despliega el icono Warning Query.vbExclamation48Despliega el icono Warning Message.vbInformation64Despliega el icono Information Message.vbDefaultButton10First button is default.vbDefaultButton2256Second button is default.vbDefaultButton3512Third button is default.vbDefaultButton4768Fourth button is default.

Mira cómo se ve. Al ejecutar este procedimiento, a la variable Ans se le asigna un valor de vbYes o vbNo, dependiendo del botón en el que haga clic el usuario. La instrucción Select Case utiliza el valor Ans para determinar qué acción debe realizar el código.


Un sencillo cuadro de mensajes, con dos botones.

También puede utilizar el resultado de la función MsgBox sin utilizar una variable, como se muestra en el siguiente ejemplo:

Sub GetAnswer2() Si MsgBox("¿Empezar a imprimir?", vbYesNo) = vbYes Then'...[code if Yes is clicked]...[code if Yes is clicked]...[code if Yes is not clicked]...[End IfEnd Sub

Post Your Thoughts