sábado, 10 de marzo de 2012

Trabajar con colores

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.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.