Пользовательская функция для преобразования HTML-цвета из шестнадцатеричного формата #RRGGBB в десятичное число, задающее цвет в VBA Excel.
Преобразование HTML-цвета в число
Как известно, цвет фона ячейки или текста в ней задается в VBA Excel десятичным числом от 0 до 16777215 (всего 16777216 цветов).
В HTML используются цвета в формате #RRGGBB, где RR, GG и BB — шестнадцатеричные числа от 00 до FF, задающие интенсивность красного (red), зеленого (green) и синего (blue) в описываемом цвете.
Для преобразования шестнадцатеричных чисел, составляющих HTML-цвет, в десятичные (от 0 до 255) будем использовать префикс &H
.
Получить десятичное число, задающее цвет в VBA Excel, из десятичных чисел, определяющих интенсивность красного (red), зеленого (green) и синего (blue), нам поможет встроенная функция RGB
.
Функция преобразования HTML-цвета
Пользовательская функция для преобразования цвета из шестнадцатеричного HTML-формата #RRGGBB в десятичное число, задающее цвет в VBA Excel:
1 2 3 4 5 6 7 8 |
Function ColorHTMLtoVBA(colorHTML As String) As Long Dim r As Byte, g As Byte, b As Byte If Len(colorHTML) = 7 Then colorHTML = Right(colorHTML, 6) r = "&H" & Left(colorHTML, 2) g = "&H" & Mid(colorHTML, 3, 2) b = "&H" & Right(colorHTML, 2) ColorHTMLtoVBA = RGB(r, g, b) End Function |
Пример использования функции
Пример использования пользовательской функции для преобразования HTML-цвета из шестнадцатеричного формата #RRGGBB в десятичное число, задающее цвет в VBA Excel:
1 2 3 4 5 6 |
Sub Primer() [A1].Interior.Color = ColorHTMLtoVBA("#FF0000") [A2].Interior.Color = ColorHTMLtoVBA("#00FF00") [A3].Interior.Color = ColorHTMLtoVBA("#0000FF") [A4].Interior.Color = ColorHTMLtoVBA("#FF77FF") End Sub |