MsgBox en Microsoft Excel VBA

Bilal Shahid 15 febrero 2024
  1. MsgBox en VBA
  2. Ejemplo 1: Sí/No MsgBox
  3. Ejemplo 2: Advertencia MsgBox
  4. Ejemplo 3: Asignar un MsgBox a una Variable
  5. Conclusión
MsgBox en Microsoft Excel VBA

VBA, abreviatura de Visual Basic for Applications, es un lenguaje de programación que proporciona a los desarrolladores varias funciones y características mientras trabajan con aplicaciones de Microsoft Office.

En este artículo, aprenderemos sobre la función MsgBox de VBA.

MsgBox en VBA

El MsgBox es una función en VBA que muestra un cuadro de mensaje cuando se ejecuta el código. Cuando se muestra el cuadro de mensaje, el código se detiene.

Luego espera la entrada del usuario y continúa la ejecución en consecuencia. Puede personalizar el mensaje en este cuadro de diálogo y hacer que su código se comporte de acuerdo con la opción elegida por el usuario.

La sintaxis de la función MsgBox en VBA se encuentra a continuación.

MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])

La función MsgBox toma varios argumentos, como se muestra arriba. Estos se explican a continuación.

  1. prompt: este argumento hace referencia a la expresión de tipo String que se muestra como mensaje en el cuadro de diálogo. Hay un límite en el número de caracteres que puede mostrar en el prompt, es decir, aproximadamente 1024 caracteres, dependiendo del espacio que ocupen los caracteres.

    También puede usar el argumento prompt para mostrar los valores de las variables. También puede dividir el mensaje en líneas separadas usando un carácter de retorno de carro o salto de línea entre las líneas.

  2. botones: Este argumento tiene un valor numérico. Se utiliza para especificar el tipo de botones que se mostrarán y el estilo de los iconos. También puede elegir el número de botones en el MsgBox.

    El valor predeterminado para el argumento botones es 0, que solo muestra un botón Aceptar. En este artículo explicaremos los diferentes tipos de botones e iconos.

  3. título: se refiere a un argumento de tipo String que especifica el título del MsgBox que se muestra en la barra de título. Si no se escribe este argumento, aquí se muestra el nombre de la aplicación, por ejemplo, Microsoft Excel.

  4. archivo de ayuda: Aquí, puede especificar un archivo de ayuda como una expresión de Cadena que ayudará al usuario cuando haga clic en el botón Ayuda. Este botón se muestra usando su código específico que mencionaremos a continuación.

    Si especifica un argumento de archivo de ayuda, también es necesario proporcionar el contexto.

  5. contexto: Este es el número de contexto de la Ayuda que el autor de la Ayuda asigna al tema de la Ayuda. Si especifica un argumento de contexto, también es necesario proporcionar el archivo de ayuda.

Nota: Solo se requiere el argumento prompt. El resto son opcionales de especificar.

Botones VBA MsgBox

Como se mencionó anteriormente, el argumento botones de la función MsgBox puede indicar el número y tipo de botones que se muestran en el cuadro de diálogo. Esto se hace especificando la constante del botón o su valor correspondiente.

Los tipos comunes de configuración de botones se resumen a continuación.

  1. vbOKOnly: Este botón tiene el valor 0. Se utiliza para visualizar únicamente el botón OK.
  2. vbOKCancel: El valor de este botón es 1. Muestra los botones Aceptar y Cancelar.
  3. vbAbortRetryIgnore: Tiene el valor 2. Muestra los botones Cancelar, Reintentar e Ignorar.
  4. vbYesNoCancel: Tiene el valor 3. Muestra los botones , No y Cancelar.
  5. vbYesNo: Este es el botón que tiene valor 4. Muestra los botones y No.
  6. vbRetryCancel: este botón tiene el valor 5. Muestra los botones Reintentar y Cancelar.
  7. vbDefaultButton1: el primer botón se establece como predeterminado. Cambiar el número cambia el botón predeterminado; por ejemplo, vbDefaultButton2 significa que el segundo botón es el predeterminado. El valor también cambia para cada uno.
  8. vbMsgBoxHelpButton: el valor para esto es 16384. Muestra el botón Ayuda. Cuando use esto, debe especificar los argumentos archivo de ayuda y contexto, o no funcionará.

Valores de retorno de VBA MsgBox

La función MsgBox devuelve un valor de tipo entero en función del botón pulsado. Hay 7 constantes de valor de retorno con el valor numérico correspondiente que se devuelve.

  1. vbOK
  2. vbCancelar
  3. vbAbortar
  4. vbReintentar
  5. vbIgnorar
  6. vb Sí
  7. vbNo

Puede almacenar estos valores numéricos en variables y realizar acciones en su código en consecuencia.

Iconos de VBA MsgBox

Puede personalizar el icono que se muestra en VBA MsgBox. Puede ser de los siguientes tipos:

  1. vbCrítico

    icono crítico

  2. vbPregunta

    icono de pregunta

  3. vbExclamación

    icono de exclamación

  4. vbInformación

    icono de información

Ejemplo 1: Sí/No MsgBox

Veamos un código de muestra que le mostrará cómo usar la función MsgBox. Daremos un ejemplo de Sí/No MsgBox, que muestra los botones y No.

El código para esto está abajo.

Sub YesNoMsgBox()

MsgBox "Still Want To Continue?", vbQuestion + vbYesNo

End Sub

Sí/No MsjBox

Ejemplo 2: Advertencia MsgBox

Veamos un ejemplo de un MsgBox que muestra un mensaje de advertencia con las opciones de Cancelar, Reintentar o Ignorar. También muestra el uso de vbNewLine y el argumento título.

Sub WarningMsgBox()

MsgBox "An exception occured" & vbNewLine & "Choose what you want to do", vbExclamation + vbAbortRetryIgnore, "Exception"

End Sub

Cuadro de mensaje de advertencia

Ejemplo 3: Asignar un MsgBox a una Variable

En los ejemplos anteriores, presionar los botones no hizo nada en particular. Sin embargo, si desea cambiar el curso de acción de su código de acuerdo con el botón seleccionado por el usuario, debe guardar el valor de retorno de MsgBox en una variable.

Veamos cómo podemos hacer eso usando el siguiente código.

Sub MsgBoxExample()

Dim result As Integer

result = MsgBox("Do you want to continue?", vbYesNo + vbQuestion)

If result = vbYes Then ' Or result == 6

MsgBox "You clicked Yes"

End If

If result = vbNo Then ' Or result == 7

MsgBox "You clicked No"

End If


End Sub

Ejecutar esta macro muestra el siguiente MsgBox:

Ejemplo de cuadro de mensaje

Si pulsamos en , se despliega este MsgBox:

Sí MsgBox

Del mismo modo, al hacer clic en No aparece el siguiente MsgBox:

Sin cuadro de mensaje

Conclusión

Esto resume nuestra discusión sobre la función MsgBox y las diferentes formas de personalizarla usando VBA. ¡Seguir aprendiendo!

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub