Resaltar la etiqueta sobre la que pasa el puntero del ratón usando VBA

resaltar-etiqueta-pasa-raton

Escrito por Administrador

10 de diciembre de 2021

Hoy vamos a aprender cómo resaltar la etiqueta sobre la que pasa el puntero del ratón usando VBA. Y, aunque es algo que no aporta nada en cuanto a funcionalidad, sí que le va a dar un toque estético y profesional a nuestro programa.

En el ejemplo que adjunto al final del post, he incluido un solo formulario que será suficiente para ver el efecto.

Se trata del calendario del mes de Noviembre. Si pasas el ratón por encima de cada día, verás como se va resaltando sobre los demás.

bloquear-access-fecha

En primer lugar, voy a mostraros el código que hay que implementar. Después, os explicaré cómo configurar la Hoja de propiedades del formulario para que todo esto funcione.

El código consiste en dos funciones, una para resaltar, y otra para dejar de resaltar. Fácil ¿no?

Function ActivaLabel(Etiqueta As Label)

'Resalta la etiqueta sobre la que se mueve el cursor del ratón

With Etiqueta

'Si el borde de la etiqueta del día es blanco, entonces pinta el borde y el fondo de la misma en azul

If .BorderColor = 16777215 Then

.BackColor = 16773345
.BorderColor = 16711680

End If

End With

End Function

Function DesactivaLabel()

'Devuelve la etiqueta a su estado original

Dim ctrLabel As Control
Dim ctrForm As Form
Dim FiestasFijas As Variant

Set ctrForm = Me

For Each ctrLabel In ctrForm

With ctrLabel

If .ControlType = acLabel Then

'Si el borde de la etiqueta del día es azul, entonces pinta el borde y el fondo de la misma en blanco

If .BorderColor = 16711680 Then

If .Caption <> Day(Date) Then

.BackColor = 16777215
.BorderColor = 16777215

End If

End If

End If

End With

Next ctrLabel

End Function

La función ActivaLabel() simplemente comprueba si el borde de la etiqueta del día sobre el que se encuentra el ratón es blanco. En caso afirmativo, pinta el borde y el fondo de la misma en azul.

Por el contrario, la función DesactivaLabel() comprueba si el borde de la etiqueta del día sobre el que se encuentra el ratón es azul. En caso afirmativo, pinta el borde y el fondo de la misma en blanco.

¿Cuándo se ejecuta cada una de ellas?

La función de desactivación se ejecuta cada vez que movemos el ratón por el detalle del formulario. Para ello, implementamos el siguiente código,

Private Sub Detalle_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

DesactivaLabel

End Sub

Sin embargo, la función de activación se ejecutará cada vez que pasemos el ratón por encima de cualquier día del calendario. Para ello, en modo diseño del formulario, selecciona cualquier día del calendario y fíjate en la pestaña Eventos de la Hoja de propiedades.

bloquear-access-fecha

Como podéis ver, en el evento "Al mover el mouse" llamamos a la función ActivaLabel() pasándole como parámetro el nombre de la etiqueta. Sencillo, ¿verdad?

Espero que hayas aprendido con este ejemplo cómo resaltar la etiqueta sobre la que pasa el puntero del ratón usando VBA para hacer más atractivos tus diseños.

Hasta la próxima.

Descarga el archivo del ejemplo

Por favor, ayúdame y haz clic en el anuncio. Solo te lleva un segundo 😉

 


0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto