lunes, 13 de diciembre de 2021

Uso de la barra de estado en Microsoft Excel para interactuar con el usuario mediante VBA.

Además de poder usar MsgBox para motrar información al usuario, también es posible usar la barra de tareas.

Para ello se asigna la cadena de texto a mostrar a Application.StatusBar.

Sin embargo si se deja así, el mensaje permanecerá indefinidamente.

Podemos sustituirlo mediante otro mensaje, o desactivar los mensajes devolviendo el control de la barra de estado a Microsoft Excel mediante la intrucción Application.StatusBar = False



Este es el código que usaremos en este ejemplo.

Sub solicitarInformacion()

    'Declaracion de Variables

    Dim edadUuario As Integer

    

    'Mostramos ventana solicitando información

     edadUuario = Application.InputBox("¿Cuantos años tienes?", "Edad")

    

    'Mostramos edad directamente

     MsgBox (edadUuario)


    'Mostramos edad concatenando con un texto mejorar la legibilidad

    'resaltar que hemos incluido los espacios necesarios en las cadenas

    'de texto

     MsgBox ("Has dicho que tienes " & edadUuario & " años de edad.")

     

     'Despues de pulsar el boton aceptar motramos la edad en la barra de estado

     Application.StatusBar = "Has dicho que tienes " & edadUuario & " años de edad."

     

     'Volvemos a mostrar un aviso, en este

     'caso, para borrar la barra de estado

     MsgBox ("En cuanto pulse el botón, la barra de estado volverá a su estado normal")

     

     'Reseteamos la barra de estado

     Application.StatusBar = False

     

End Sub


Comenzamos ejecutando la macro.

Mediante un InputBox solicitamos información al usuario que luego almacenamos en una variable.

    'Mostramos ventana solicitando información

     edadUuario = Application.InputBox("¿Cuantos años tienes?", "Edad")


El usuario introduce su edad en el InputBox y al pulsar el botón aceptar visual Basic for application automáticamente asigna el valor escrito en la casilla de texto a la variable.

Mostramos el valor de la variable directamente mediante un MsgBox.

    'Mostramos edad directamente

     MsgBox (edadUuario)


Esta forma de mostra informacion se puede mejorar concatenando un texto explicativo.

    'Mostramos edad concatenando con un texto mejorar la legibilidad

    'resaltar que hemos incluido los espacios necesarios en las cadenas

    'de texto

     MsgBox ("Has dicho que tienes " & edadUuario & " años de edad.")


De igual forma que podemos mostrar el contenido de una variable una ventana también lo podemos mostrar en la barra de estado.

En este caso el mensaje de la barra de estado permanecerá hasta que se sustituya por otro o se resetea la barra de estado.

     'Despues de pulsar el boton aceptar motramos la edad en la barra de estado

     Application.StatusBar = "Has dicho que tienes " & edadUuario & " años de edad."

Decidimos liberar la barra de estado y devolverle el control de nuevo a Microsoft Excel para ello asignamos el valor false eh a la variable StatusBar.


     'Reseteamos la barra de estado

     Application.StatusBar = False



A partir de este momento los mensajes mostrados en la barra de estado serán los que indique Microsoft Excel.

Este método de mostrar información la barra de estado puede sernos muy útil cuando estamos haciendo un proceso y deseamos dejar constancia del paso mal que vamos ya que no necesita interacción por parte del usuario.

No hay comentarios:

Publicar un comentario