VBA for Excel颜色代码

时间:2018-09-03 23:45:55

标签: vba excel-vba

在对象属性中,可以设置格式化的自定义颜色,例如。 &H00893959&。玩这个似乎似乎与RGB或类似,但我找不到太多的逻辑。有谁知道这些代码的工作原理?

1 个答案:

答案 0 :(得分:2)

最有可能是三个颜色字节的十六进制表示。

您会发现它更常见地表示为HTML颜色代码,而没有额外的字符为 #893959 ,这是下面的颜色。 (有关此颜色here的更多信息。)

color


这是一个VBA函数,可使用RGB Function提取3个彩色字节并将十六进制转换为十进制(用于Excel / VBA)。

Function Hex2RGB(hex As String) As Long
    Dim r As Long, g As Long, b As Long
    With Application.WorksheetFunction
        r = .Hex2Dec(Mid(hex, 5, 2))
        g = .Hex2Dec(Mid(hex, 7, 2))
        b = .Hex2Dec(Mid(hex, 9, 2))
    End With
    Hex2RGB = RGB(r, g, b)
End Function


Sub Demo()
    Const hexColor = "&H00893959&"
    Debug.Print "The RBG (decimal) interpretation of '" _
        & hexColor & "' is " & Hex2RGB(hexColor) & "."  'returns 5847433
End Sub