Inicio » VBA-Ejemplos » Excel VBA y la paleta de colores

Excel VBA y la paleta de colores

Excel emplea una paleta de 56 colores predefinidos. Puedes cambiar estos colores desde Herramientas – Opciones – Color o desde código VBA. Abajo presentamos unos ejemplos de código VBA para modificar la paleta de colores del libro Excel.

Por desgracia, a muchos de nosotros los colores de la hoja Excel predefinidos por Microsoft parecen bastante fuertes, y a veces hacen que la hoja sea difícil de leer.

Los colores forman parte del diseño del libro, son importantes para una buena presentación de un informe. Pero por regla general tampoco se debe pasar utilizando demasiado color.

Excel y Colores RGB

Excel expresa colores del formato RGB (Red, Green, Blue). Red, Green, Blue son variables cuales expresan el grado de estos colores, valores entre 1 y 255. Tambien podemos expresar el color en formato HEX (hexadecimal).

KfmDesign presenta una buena página de Colores RGB y HEX.

Cambiar colores de la paleta Excel

Entonces, ¿qué podemos hacer para que Excel siempre tenga los colores definidos por ti? Una solución sería crear una plantilla con nuestros formatos. Excel llamará esta plantilla al crear un libro nuevo.

Otra solución es crear una macro cual nosotros podemos llamar cuando nos convenga. Esto nos da un poco más de control. En este ejemplo cambiaremos los colores 40 y 41 (de los 56) de la paleta.

ActiveWorkbook.Colors(40) = RGB(234, 234, 234)
ActiveWorkbook.Colors(41) = RGB(236, 235, 194)

Código VBA para cambiar colores de celdas Excel

Para cambiar los colores aplicados a una celda ejecutamos una de las siguientes instrucciones.

Selection.Interior.ColorIndex = 40
Selection.Interior.ColorIndex = _
xlNone/xlColorIndexAutomatic/xlColorIndexNone
Selection.Interior.Color = RGB(234, 234, 234)
<pre lang="vb">
Selection.Interior.Color = ?000066? 'hexadecimal

Resetear paleta de colores

Para resetear los colores a los predefinidos de Excel, aplicamos el método ResetColors.

ActiveWorkbook.ResetColors

Copiar colores de otro libro Excel

También se puede copiar (importar) la paleta de otro libro Excel. Para esto cambiamos la propiedad Colors del libro.

ActiveWorkbook.Colors = Workbooks("C:\MiLibroDeColores.xls").Colors

Devolver colores del libro Excel actual

A lo mejor nos interesa saber que color tiene una celda. La propiedad ColorIndex nos ayuda.

i = Cells(1, 1).Interior.ColorIndex
MsgBox i

Aplicar colores por condiciones en Excel VBA

Podemos colorear celdas por condiciones, evaluando una cadena de texto, por ejemplo.

For Each Item In Intersect(ActiveSheet.UsedRange, Selection.Cells)
 If Item.Text = "ColaCao" Then
  Item.Interior.ColorIndex = 44
 End If
Next