Mensajes personalizados con MsgBox

A la hora de estar ejecutando instrucciones o realizando operaciones con nuestra macro, puede que nos interese informar al usuario con algún mensaje o solicitar confirmación para realizar una instrucción.

06-Oct-2016

Mensajes Personalizados

MsgBox

A la hora de estar ejecutando instrucciones o realizando operaciones con nuestra macro, puede que nos interese informar al usuario con algún mensaje o solicitar confirmación para realizar una instrucción. VBA nos ofrece la instrucción (método) MsgBox para crear ventanas de diálogo personalizadas que se mostrarán en el momento que nosotros lo decidamos.

MsgBox(“Mensaje personalizado”,TipoVentana,”Título ventana”)
  • Mensaje personalizado: es el mensaje propiamente dicho. Consiste en una cadena de texto que se mostrará dentro del cuadro de diálogo.

Estos mensajes pueden ser textos fijos, si simplemente escribimos el mensaje entre comillas o textos dinámicos si combinamos textos fijos con otras instrucciones de VBA como por ejemplo las propiedades de los objetos. En este segundo caso deberemos de crear el mensaje intercalando el carácter ‘&’ entre las distintas partes que componen el mensaje.

El libro de Excel ha sido abierto” → Mensaje de texto fijo
El libro de Excel: “ & ActiveWorkBook.Name & “ ha sido abierto” → Mensaje de texto dinámico

  • TipoVentana: constantes de VBA (valores predefinidos) que definen el tipo de ventana que vamos a mostrar y los botones que debe de contener.

Para el tipo de mensaje:

  • VbCritital → Muestra el icono de mensaje crítico.
  • VbExclamation → Muestra el icono de mensaje de aviso.
  • VbInformation → Muestra el icono de información.
  • VbQuestion → Muestra el icono de pregunta.

Botones del mensaje:

  • vbOkCancel → Muestra los botones de Aceptar y Cancelar
  • vbOkOnly → Muestra sólo el botón de Aceptar (por defecto)
  • vbYesNo → Muestra los botones de Sí y No
  • vbYesNoCancel → Muestra los botones de Sí, No y Cancelar
  • vbRetryCancel → Muestra los botones de Reintentar o Cancelar

Si deseamos combinar los iconos con los botones tendremos que ir escribiendo intercalando el sigo ‘+’ entre cada uno de los valores. Por ejemplo si deseamos mostrar un mensaje crítico con los botones de Sí y No lo indicaríamos de la siguiente manera: vbCritical+vbYesNo.

Para comprobar que botón ha pulsado el usuario, necesitamos almacenar la respuesta en una variable de trabajo para luego consultarla.

  • Título ventana: es el texto que se mostrará en el título del cuadro de diálogo.

Ejemplos MsgBox

  • Mostrar un mensaje simple de aviso
MsgBox(“La operación se realizó con éxito”)
  • Mostrar un mensaje crítico
MsgBox(“La operación generó errores de cálculo.”,vbCritical)
  • Mostrar mensaje de información con título de ventana
MsgBox(“La operación se realizó con éxito”,vbInformation,”Mi Nube Informática”)
  • Mostrar mensaje para solicitar confirmación del usuario y título de ventana
MsgBox(“¿Desea realizar cambios en el libro?”,vbQuestion+vbYesNo,”Mi Nube Informática”)
  • Mostrar mensaje para solicitar confirmación del usuario y realizar la operación según la respuesta
Dim Respuesta As VbMsgBoxResult
Respuesta=MsgBox(“¿Desea cerrar el libro?”,vbQuestion+vbYesNo,”Mi Nube Informática”)
If(Respuesta=vbYes) Then
   ActiveWorkbook.Close
End If