Tabla de contenido:
- Puede usar la función MsgBox de dos maneras:
- Si visualiza un cuadro de mensaje que tiene algo más que un botón Aceptar, probablemente querrá saber en qué botón hace clic el usuario. Estás de suerte. La función MsgBox puede devolver un valor que representa en qué botón se hace clic. Puede asignar el resultado de la función MsgBox a una variable.
Video: Curso VBA para Excel - Clase 2 Función Msgbox 2024
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 simple del usuario. Es capaz de obtener la entrada del usuario porque es una función. Una función, como probablemente sepa, devuelve un valor. En el caso de la función MsgBox, utiliza un cuadro de diálogo para obtener el valor que devuelve. Sigue leyendo para ver exactamente cómo funciona.
Argumento | Lo que afecta |
---|---|
Solicitud | El texto Excel se muestra en el cuadro de mensaje |
Botones | Un número que especifica qué botones (junto con qué icono)
aparece en el cuadro de mensaje (opcional) |
Título | El texto que aparece en la barra de título del cuadro de mensaje
(opcional) |
Aquí hay una versión simplificada de la sintaxis de la función MsgBox: <
Visualización de un cuadro de mensaje simple
Puede usar la función MsgBox de dos maneras:
Para mostrar simplemente un mensaje para el usuario:
-
En este caso, no le importa el resultado devuelto por la función. Para obtener una respuesta del usuario:
-
En este caso, le importa el resultado devuelto por la función. El resultado depende del botón en el que el usuario haga clic.
Sub MsgBoxDemo () MsgBox "Haga clic en Aceptar para comenzar a imprimir. "Hojas (" Resultados "). PrintOut End Sub
Mire a continuación para ver cómo se ve este cuadro de mensaje. En este caso, la impresión comienza cuando el usuario hace clic en Aceptar. ¿Notó que no hay forma de cancelar la impresión? Sigue leyendo para descubrir cómo solucionarlo.
Un cuadro de mensaje simple.
Obtención de una respuesta desde un cuadro de mensajeSi visualiza un cuadro de mensaje que tiene algo más que un botón Aceptar, probablemente querrá saber en qué botón hace clic el usuario. Estás de suerte. La función MsgBox puede devolver un valor que representa en qué botón se hace clic. Puede asignar el resultado de la función MsgBox a una variable.
En el siguiente código, se usan algunas constantes integradas que facilitan el trabajo con los valores devueltos por MsgBox:
Sub GetAnswer () Dim Ans As Long Ans = MsgBox ("¿Iniciar impresión?", VbYesNo) Seleccione Case Ans Case vbYes ActiveSheet. PrintOut Case vbNo MsgBox "Impresión cancelada" End Select End Sub
Constant
Value | Lo que hace | vbOKOnly |
---|---|---|
0 | Muestra el botón OK solamente. | vbOKCancel |
1 | Muestra los botones Aceptar y Cancelar. | vbAbortRetryIgnore |
2 | Muestra los botones Anular, Reintentar e Ignorar. | vbYesNoCancel |
3 | Muestra los botones Sí, No y Cancelar. | vbYesNo |
4 | Muestra los botones Sí y No. | vbRetryCancel |
5 | Muestra los botones Reintentar y Cancelar. | vbCritical |
16 | Muestra el icono del mensaje crítico. | vbQuestion |
32 | Muestra el ícono de Advertencia de consulta. | vbExclamation |
48 | Muestra el icono del mensaje de advertencia. | vbInformation |
64 | Muestra el icono del mensaje de información. | vbDefaultButton1 |
0 | El primer botón es el predeterminado. | vbDefaultButton2 |
256 | El segundo botón es el predeterminado. | vbDefaultButton3 |
512 | El tercer botón es el predeterminado. | vbDefaultButton4 |
768 | El cuarto botón es el predeterminado. | Mira cómo se ve. Cuando ejecuta este procedimiento, a la variable Ans se le asigna un valor de vbYes o vbNo, dependiendo de en qué botón haga clic el usuario. La sentencia Select Case usa el valor Ans para determinar qué acción debe realizar el código. |
Un cuadro de mensaje simple, con dos botones.
También puede usar el resultado de la función MsgBox sin usar una variable, como se muestra en el siguiente ejemplo:Sub GetAnswer2 () Si MsgBox ("¿Iniciar impresión?", VbYesNo) = vbYes Then '… [código si es Sí clickeado] … Else '… [código si no se hace clic en Yes] … End If End Sub