View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default Setting Background Color RGB (Always goes to closest index color)

As has been confirmed to you Excel maps colours that don't exist in the
palette to nearest (?) colour in the palette. It has also been suggested you
can customize your own colour.

However if you don't want to customize the palette you could use one of the
pattern shades combining two colours to get a reasonably close colour match.

As it happens, I have a colour match algorithm which can be used, amongst
other purposes, to return the best 5 permutations of interior + pattern
colours and shade to match a custom colour without customizing the palette.

For your RGB(228, 234, 244) - returns the following 5 suggestions -

Sub MyBlue()
Dim i As Long
Dim vIntIdx, vPattern, vPatIdx

' match RGB(228, 234, 244)
vIntIdx = Array(34, 2, 2, 2, 24)
vPatIdx = Array(38, 37, 24, 47, 36)
vPattern = Array(xlGray25, xlGray25, xlGray25, xlGray25, xlGray25)

For i = 0 To 4
With Cells(i + 2, 2).Interior
.ColorIndex = vIntIdx(i)
.Pattern = vPattern(i)
.PatternColorIndex = vPatIdx(i)
End With
Next

With ActiveSheet.Shapes.AddShape(1, 150, 15#, 150#, 65#)
.Fill.ForeColor.RGB = RGB(228, 234, 244)
End With

End Sub

Un-typically, none of these are a particularly close match and unfortunately
none with 50% shade (preferable to 25% or 75%).

I understand in the pending Excel 12 it will be possible to format cells
with any colour.

Regards,
Peter T

wrote in message
oups.com...
I'm trying to set the background color of cells in excel 2003.

target.Interior.Color = RGB(228, 234, 244)

Except no matter what color I use it seems to default to the closest
index color. So the above goes to color

RGB(204, 255, 255) which is ColorIndex 20. How I can set it to a custom
RGB color?

Thanks