Tratar con los colores en Excel no es un asunto trivial, admito que es algo complicado, grabar una macro mientras se cambia el color en una celda u objeto solo genera confusión.
Ahora podemos acceder en un libro a una cantidad de colores prácticamente ilimitada (16.777.216 colores), nadie puede conocer el valor de casi 17 millones de colores.
Podemos cambiar el color de la celda activa a verde utilizando la siguiente instrucción.
Sub colorVerde()
ActiveCell.Interior.color = 62280
End Sub
Una buena manera de cambiar los colores es especificar el color de acuerdo con sus componentes rojo, verde y azul, el sistema de colores RGB.
El rango de cada uno de estos colores va desde el 0 al 255, por lo tanto el número total de colores posibles seria 256x256x256= 16.777.216 colores.
Para especificar los colores en VB mediante RGB utilizamos la función RGB que nos devuelve un número que representa un valor de color.
Para representar el color del ejemplo anterior con RGB lo haríamos de la siguiente forma.
Sub colorVerde()
ActiveCell.Interior.color = RGB(0, 255, 0)
End Sub
La siguiente tabla muestra algunos colores estándar y sus valores de rojo, verde y azul:
Color | Valor de rojo | Valor de verde | Valor de azul |
Negro | 0 | 0 | 0 |
Azul | 0 | 0 | 255 |
Verde | 0 | 255 | 0 |
Cián | 0 | 255 | 255 |
Rojo | 255 | 0 | 0 |
Magenta | 255 | 0 | 255 |
Amarillo | 255 | 255 | 0 |
Blanco | 255 | 255 | 255 |
El siguiente procedimiento nos muestra las 60 variantes de los colores de la paleta de colores (Colores del Tema).
Quedaría más, menos así:
Sub TemaColores()
Dim r As Long, c As Long
For r = 1 To 6
For c = 1 To 10
With Cells(r, c).Interior
.ThemeColor = c
Select Case c
Case 1
Select Case r
Case 1: .TintAndShade = 0
Case 2: .TintAndShade = -0.05
Case 3: .TintAndShade = -0.15
Case 4: .TintAndShade = -0.25
Case 5: .TintAndShade = -0.35
Case 6: .TintAndShade = -0.5
End Select
Case 2
Select Case r
Case 1: .TintAndShade = 0
Case 2: .TintAndShade = 0.5
Case 3: .TintAndShade = 0.35
Case 4: .TintAndShade = 0.25
Case 5: .TintAndShade = 0.15
Case 6: .TintAndShade = 0.05
End Select
Case 3
Select Case r
Case 1: .TintAndShade = 0
Case 2: .TintAndShade = -0.1
Case 3: .TintAndShade = -0.25
Case 4: .TintAndShade = -0.5
Case 5: .TintAndShade = -0.75
Case 6: .TintAndShade = -0.9
End Select
Case Else
Select Case r
Case 1: .TintAndShade = 0
Case 2: .TintAndShade = 0.8
Case 3: .TintAndShade = 0.6
Case 4: .TintAndShade = 0.4
Case 5: .TintAndShade = -0.25
Case 6: .TintAndShade = -0.5
End Select
End Select
Cells(r, c) = .TintAndShade
End With
Next c
Next r
End Sub
Cells(x,x).Interior.TintAndShade
Devuelve o establece un valor que aclara u oscurece un color se escribir un número comprendido entre -1 (más oscuro) y 1 (más claro) para la propiedad TintAndShade; el cero (0) corresponde al valor neutro.