RGB

  • Thread starter Thread starter Douglas J. Steele
  • Start date Start date
D

Douglas J. Steele

Believe it or not, 123456 is RGB, but in the reverse order. If you convert
that value to Hex (01E240), the first 2 digits (Hex 01, or Decimal 1) are
the Blue value, the middle 2 digits (Hex E2, or decimal 226) are the Green
value and the last 2 digits (Hex 40, or Decimal 64) are the Red value.

Try the following will work:

Function Red(ColourValue As Long) As Long
Dim strHexColour As String

strHexColour = Right$("000000" & Hex(ColourValue), 6)
Red = CLng("&H" & Right$(strHexColour, 2))


End Function


Function Green(ColourValue As Long) As Long
Dim strHexColour As String


strHexColour = Right$("000000" & Hex(ColourValue), 6)
Green = CLng("&H" & Mid$(strHexColour, 3, 2))


End Function


Function Blue(ColourValue As Long) As Long
Dim strHexColour As String


strHexColour = Right$("000000" & Hex(ColourValue), 6)
Blue = CLng("&H" & Left$(strHexColour, 2))


End Function
 
Hello All
Can Anyone Tell Me How Can I Get The RGP Color Format RGB(,,) For The
BackColor

For Example The BackColor For The Form Is 123456
What Is The RGB Equvalant To It

Thanks For All In Advanced
 
If you convert
that value to Hex (01E240), the first 2 digits (Hex 01, orDecimal1) are
the Blue value

Function Blue(ColourValue As Long) As Long
Dim strHexColour As String

strHexColour = Right$("000000" & Hex(ColourValue), 6)
Blue = CLng("&H" & Left$(strHexColour, 2))

End Function

You could use bit-wise operators:

Sub SplitRGB( _
ByVal RGBValue As Long, _
ByRef R As Long, _
ByRef G As Long, _
ByRef B As Long _
)
R = RGBValue And 255
G = RGBValue \ 256 And 255
B = RGBValue \ 256 ^ 2 And 255
End Sub

Jamie.

--
 
Or
R = RGBValue And &HFF&
G = (RGBValue And &HFF00&) \ &H100&
B = (RGBValue And &HFF0000&) \ &H10000&

Pieter
 
Back
Top