Следующая функция VBA преобразует десятичный код цвета (0
в 16777215
) в шестнадцатеричный код цвета HTML (#000000
в #FFFFFF
):
Function Dec2HexColor(decColor As Long) As String
If decColor > 16777215 Then decColor = 16777215
If decColor < 0 Then decColor = 0
Dec2HexColor = "#" & Right("00" & Hex((decColor Mod 256)), 2) & _
Right("00" & Hex((decColor \ 256) Mod 256), 2) & _
Right("00" & Hex(decColor \ 65536), 2)
End Function
Его также можно использовать с набором * из 1010 * значений цвета RGB (красный, зеленый, синий; каждый 0
до 255
), комбинируя его с функцией RGB
VBA, как показано ниже .
Примеры:
Sub test()
Debug.Print Dec2HexColor(vbRed) 'returns: "#FF0000"
Debug.Print Dec2HexColor(vbGreen) 'returns: "#00FF00"
Debug.Print Dec2HexColor(vbMagenta) 'returns: "#FF00FF"
Debug.Print Dec2HexColor(12345678) 'returns: "#4E61BC"
Debug.Print Dec2HexColor(0) 'returns: "#000000"
Debug.Print Dec2HexColor(RGB(255, 0, 0)) 'returns: "#FF0000"
Debug.Print Dec2HexColor(RGB(48, 151, 62)) 'returns: "#30973E"
End Sub