Převod systémové barvy na RGB

Funkce:

Private Function gfnH2D(sChar As String) As Integer
   Select Case sChar
   Case "0" To "9"
      gfnH2D = Val(sChar)
   Case "A" To "F"
      gfnH2D = Asc(sChar) - 55
   Case Else
      Exit Function
   End Select
End Function

Public Function gfnLongToRGBString(lColor As Long) As String
   Dim sHex$, sHexString$
   Dim sString As String * 6
   sHexString = Hex$(lColor)
   sString = "000000"
   RSet sString = sHexString
   iBlue = 16 * gfnH2D(Mid$(sString, 1, 1)) + gfnH2D(Mid$(sString, 2, 1))
   iGreen = 16 * gfnH2D(Mid$(sString, 3, 1)) + gfnH2D(Mid$(sString, 4, 1))
   iRed = 16 * gfnH2D(Mid$(sString, 5, 1)) + gfnH2D(Mid$(sString, 6, 1))
   gfnLongToRGBString = Str$(iRed) & Str$(iGreen) & Str$(iBlue)
End Function

Použití je pak následující:
Dim RGBVal as String 
RGBVal = gfnLongToRGBString(SYSCol)
kde SYSCol je systémová barva (Long), například &H0 (černá). RGBVal pak bude obsahovat hodnotu '000000'.

Zpět

Autor: The Bozena