## Colours in VB

VB provides an easy RGB function to convert three colours into a RGB colour code. However, it provides no way of converting it back to the three colours. It also provides no support for HTML colour codes used on web pages. We decided to write some functions to convert HTML colour codes to and from RGB codes, and also functions to break them back down into their constituent colours.

Public Const RedPart = 0
Public Const GreenPart = 1
Public Const BluePart = 2

Public Function HTML(Red As Integer, Green As Integer, Blue As Integer) As String

HTML = ""
If Len(Hex\$(Red)) = 1 Then
HTML = HTML & "0" & Hex\$(Red)
Else
HTML = HTML & Hex\$(Red)
End If
If Len(Hex\$(Green)) = 1 Then
HTML = HTML & "0" & Hex\$(Green)
Else
HTML = HTML & Hex\$(Green)
End If
If Len(Hex\$(Blue)) = 1 Then
HTML = HTML & "0" & Hex\$(Blue)
Else
HTML = HTML & Hex\$(Blue)
End If

End Function

Public Function UnRGB(RGBCol As Long, Part As Integer) As Integer

Select Case Part
Case 0
UnRGB = RGBCol And &HFF

Case 1
UnRGB = (RGBCol And &HFF00) / &HFF

Case 2
UnRGB = (RGBCol And &HFF0000) / &HFFFF

End Select

End Function

Public Function UnHTML(HTMLCol As String, Part As Integer) As Integer

Select Case Part
Case 0
UnHTML = (CLng("&H" & HTMLCol) And &HFF0000) / &HFFFF

Case 1
UnHTML = (CLng("&H" & HTMLCol) And &HFF00) / &HFF

Case 2
UnHTML = CLng("&H" & HTMLCol) And &HFF

End Select

End Function

Public Function RGB2HTML(RGBCol As Long) As String

RGB2HTML = HTML(UnRGB(RGBCol, RedPart),
UnRGB(RGBCol, GreenPart), UnRGB(RGBCol, BluePart))
End Function

Public Function HTML2RGB(HTMLCol As String) As Long
HTML2RGB = RGB(UnHTML(HTMLCol, RedPart), UnHTML(HTMLCol, _
GreenPart), UnHTML(HTMLCol, BluePart))
End Function