VBA Excel. Цвет текста (шрифта) в ячейке
Опубликовано: 01.09.2018
Изменение цвета текста (шрифта) в ячейке рабочего листа Excel с помощью кода VBA. Свойства ячейки (диапазона) .Font.Color, .Font.ColorIndex и .Font.TintAndShade.
Использование цветовой палитры для присвоения цвета тексту в ячейке листа Excel аналогично присвоению цвета фону ячейки , только свойство диапазона .Interior меняем на свойство .Font .
Цвет текста и предопределенные константы Цвет шрифта и модель RGB Свойство .Font.ColorIndex Основная палитра Отрицательные значения свойства .Font.Color Свойство .Font.TintAndShadeЦвет текста и предопределенные константы
Цвет шрифту в ячейке можно присвоить с помощью предопределенных констант:
Как изменить цвет букв, сделать заливку в эксель
Range("A1:C3").Font.Color = vbGreen Range(Cells(4, 1), Cells(6, 3)).Font.Color = vbBlue Cells(7, 1).Font.Color = vbRed
Напомню, что вместо индексов строк и столбцов можно использовать переменные. Список предопределенных констант смотрите здесь .
Цвет шрифта и модель RGB
Для изменения цвета текста в ячейке можно использовать цветовую модель RGB:
Range("A1").Font.Color = RGB(200, 150, 250) Cells(2, 1).Font.Color = RGB(200, 150, 100)Аргументы функции RGB могут принимать значения от 0 до 255. Если все аргументы равны 0, цвет - черный, если все аргументы равны 255, цвет - белый. Функция RGB преобразует числовые значения основных цветов (красного, зеленого и синего) в индекс основной палитры .
Свойство .Font.ColorIndex
Свойство .Font.ColorIndex может принимать значения от 1 до 56. Это стандартная ограниченная палитра, которая существовала до Excel 2007 и используется до сих пор. Посмотрите примеры:
Range("A1:D6").Font.ColorIndex = 5 Cells(1, 6).Font.ColorIndex = 12Таблица соответствия значений ограниченной палитры цвету:
Стандартная палитра Excel из 56 цветовОсновная палитра
Основная палитра, начиная c Excel 2007, состоит из 16777216 цветов. Свойство .Font.Color может принимать значения от 0 до 16777215, причем 0 соответствует черному цвету, а 16777215 - белому.
Cells(1, 1).Font.Color = 0 Cells(2, 1).Font.Color = 6777215 Cells(3, 1).Font.Color = 4569325Отрицательные значения свойства .Font.Color
При записи в Excel макрорекордером макроса с присвоением шрифту цвета используются отрицательные значения свойства .Font.Color , которые могут быть в пределах от -16777215 до -1. Отрицательные значения соответствуют по цвету положительному значению, равному сумме наибольшего индекса основной палитры и данного отрицательного значения. Например, отрицательное значение -8257985 соответствует положительному значению 8519230 , являющегося результатом выражения 16777215 + (-8257985) . Цвета текста двух ячеек из следующего кода будут одинаковы:
Cells(1, 1).Font.Color = -8257985 Cells(2, 1).Font.Color = 8519230Свойство .Font.TintAndShade
Еще при записи макроса с присвоением шрифту цвета макрорекордером добавляется свойство .Font.TintAndShade , которое осветляет или затемняет цвет и принимает следующие значения:
-1 - затемненный; 0 - нейтральный; 1 - осветленный.При тестировании этого свойства в Excel 2016, сравнивая затемненные и осветленные цвета, разницы не заметил. Сравните сами:
Range(Cells(1, 1), Cells(3, 1)).Font.Color = 37985 Cells(1, 1).Font.TintAndShade = -1 Cells(2, 1).Font.TintAndShade = 0 Cells(3, 1).Font.TintAndShade = 1При тестировании в первых трех ячейках первого столбца должен быть одинаковый текст для удобства сравнения оттенков.