El tema que nos trae a este post surge a raíz de un video que publicamos hace un tiempo en nuestro
canal
donde presentábamos el efecto HOVER por así decirlo, dentro de una caja
de TextBox en una hoja de Excel. Pero a que nos referimos con el
efecto HOVER, mira, si observas la imagen inferior donde en una hoja de
Excel tenemos un control TextBox y por defecto nos muestra un
texto que dice buscar, pero cuando damos clic para escribir dentro de él el
texto buscar desaparece y nos deja escribir un nuevo texto y de otro color,
ahora si salimos del control el texto buscado se mantiene, pero si se borra el
texto y se selecciona cualquier otra celda de la hoja vemos que nuevamente se
muestra la palabra Buscar que teníamos al inicio. Entonces en este
artículo te muestro a cómo hacerlo en un par de líneas de código.
Para que tengas toda la información a tu alcance puedes descargar el material
usado en este post:
Implementando el efecto HOVER
Básicamente implementar este efecto es muy sencillo, consiste simplemente en
programar unas líneas de código y tener el efecto listo para ser usado. Mira,
primero y el paso que no debería faltar es guardar el libro cómo libro
habilitado para macros y creo que esto no es un mayor problema puedes hacerlo
desde la pestaña
archivo, > guardar > Examinar > y en tipo seleccionar libro
habilitado para macros
o bien puedes ir directamente presionando la tecla F12, y guardar el
libro.
Insertando un control TextBox de tipo ActiveX
Para insertar un control de tipo ActiveX en una hoja de Excel, nos
vamos a la pestaña
programador < grupo controles > insertar > Control ActiveX, lo dibujamos en un espacio de la hoja y así ya tendríamos nuestro control
implementado.
Para programar el código damos dos veces clic sobre del control y nos lleva a
la ventana de visual Basic para aplicaciones. Estando aquí básicamente
vamos a usar dos eventos, primero el evento SelectionChange de la hoja
y al evento GouFocus, del control ActiveX estos dos eventos son
los que harán la magia para el efecto HOVER de nuestro control.
Primero, dentro del evento SelectionChange de nuestra hoja vamos a
delimitar un rango de celdas para que cuando seleccionemos alguna celda el
texto Buscar se muestre en el control, para eso dentro de este
evento vamos a pegar el código que a continuación se muestra:
If Not Intersect(Target, Range("A:M")) Is Nothing Then 'Rango donde se aplica el efecto al hacer clic
If TextBox1.Value = "" Then 'Si el control está vacío
Me.TextBox1.Value = "Buscar..." 'Insertamos la palabra Buscar...
TextBox1.ForeColor = vbRed ' Color de texto Rojo
TextBox1.Font.Size = 20 'Tamaño de texto de 20 puntos
End If
End If
En Visual Basic sería como se muestra:
Posteriormente en el evento GotFocus vamos revertir el efecto.
Este evento significa un cambio al ubicarse sobre el control, es muy similar
al evento Change. Entonces, dentro de este evento usamos el código:
If TextBox1.Value = "Buscar..." Then 'Revertimos la condición anterior
TextBox1.Value = "" 'Limpiamos el control
TextBox1.ForeColor = vbBlack 'Aplicamos un color negro al texto
TextBox1.Font.Size = 20 'Aplicamos un tamaño de 20 puntos al texto
End If
El código en visual Basic quedaría:
De esta forma hemos implementado el efecto HOVER en un control TextBox
de una hoja de Excel. De esto podríamos concluir que el efecto HOVER no
solo mejora la funcionalidad y la estética de un control en Excel, sino que
también potencia la interacción del usuario y favorece el dominio el
rendimiento de los espacios usados. Por tanto, su implementación cuidadosa y
efectiva es esencial para lograr una experiencia de usuario satisfactoria y
memorable.
Publicar un comentario