Преобразование десятичного или цветового кода RGB в HTML (шестнадцатеричный) код - PullRequest
0 голосов
/ 03 мая 2018

Как преобразовать цветовой код VBA (или VB) в десятичный или RGB-код в цветовой код HTML (Hex) с помощью VBA или на листе Excel?

Примеры:

INPUT:         OUTPUT:
123456         #40E201
vbRed          #FF0000
(48, 151, 62)  #30973E

1 Ответ

0 голосов
/ 03 мая 2018

Следующая функция 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
...