ColorIndex genera hasta 57 colores:
Podemos generar el listado anterior con los colores de relleno y de fuente con el siguiente código:
Sub ColorIndex()
Dim Cindex As Integer
For Cindex = 0 To 56
Cells(Cindex + 1, 1).Interior.ColorIndex = Cindex
Cells(Cindex + 1, 1).Value = "Interior.ColorIndex = " & Cindex
Cells(Cindex + 1, 2).Font.ColorIndex = Cindex
Cells(Cindex + 1, 2).Value = "Font.ColorIndex = " & Cindex
If Cells(Cindex + 1, 1).Interior.ColorIndex = 1 _
Then Cells(Cindex + 1, 1).Font.ColorIndex = 48
Next Cindex
Columns(1).EntireColumn.AutoFit
Columns(2).EntireColumn.AutoFit
End Sub
La propiedad Color es más extensa que ColorIndex ya que permite especificar colores con valores numéricos, hexadecimales, octales y RGB. Además, la paleta de Color es más extensa que la de ColorIndex. 57 colores en ColorIndex, 256 3 en RGB (16.777.216). Sin embargo, por su simplicidad, un índice del 0 al 56 en la paleta, podemos optar por ColorIndex en lugar de especificar 3 dígitos de 0 a 255 para un color en RGB.
Para ver el valor de las propiedades seleccionamos una celda y en la ventana de inmediato escribimos
?Selection.Interior.ColorIndex o ?Selection.Interior.Color y presionamos Entrar.
En una celda que no tiene asignado un color de relleno el resultado de ColorIndex es -4142 (xlColorIndexNone) y el de Color es 16777215. Como ColorIndex solamente admite 56 colores, es posible que a dos colores diferentes les asigne el mismo valor. ColorIndex asignará el valor más cercano de la paleta del 0 al 56. Para conocer y asignar un color con precisión deberemos usar la propiedad Color.
Para mostrar en la barra de estado la propiedad ColorIndex del relleno de una celda y del color de fuente añadimos estos dos eventos en la hoja deseada:
' Muestra las propiedades
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = "Celda actual: Interior.ColorIndex = " & _
ActiveCell.Interior.ColorIndex & " / Font.ColorIndex = " & _
ActiveCell.Font.ColorIndex
End Sub
' Devuelve a Ms Excel el control de la barra de estado Private Sub Worksheet_Deactivate() Application.StatusBar = False End SubReferencias:
Artículo de Microsoft Developer Network
Nube de datos
No hay comentarios:
Publicar un comentario