VBA Excel
241 subscribers
88 photos
23 links
VBA Excel для начинающих. Справка по VBA Excel. Visual Basic for Applications. Справочник. Самоучитель.
Download Telegram
Цвет ячейки (заливка, фон)

Свойство .Interior.Color объекта Range

Начиная с Excel 2007 основным способом заливки диапазона или отдельной ячейки цветом является использование свойства .Interior.Color объекта Range путем присваивания ему значения цвета в виде десятичного числа от 0 до 16777215 (всего 16777216 цветов).
Sub ColorTest1()
Range("A1").Interior.Color = 31569
Range("A4:D8").Interior.Color = 4569325
Range("C12:D17").Cells(4).Interior.Color = 568569
Cells(3, 6).Interior.Color = 12659
End Sub


Если присвоить свойству .Interior.Color отрицательное значение от -16777215 до -1, то цвет будет соответствовать значению, равному сумме максимального значения палитры (16777215) и присвоенного отрицательного значения. Например, заливка всех трех ячеек после выполнения следующего кода будет одинакова:
Sub ColorTest11()
Cells(1, 1).Interior.Color = -12207890
Cells(2, 1).Interior.Color = 16777215 + (-12207890)
Cells(3, 1).Interior.Color = 4569325
End Sub


Числовые значения цветов запомнить невозможно, поэтому часто возникает вопрос о том, как узнать числовое значение фона ячейки. Следующий код VBA Excel выводит сообщения о числовых значениях присвоенных ранее цветов:
Sub ColorTest2()
MsgBox Range("A1").Interior.Color
MsgBox Range("A4:D8").Interior.Color
MsgBox Range("C12:D17").Cells(4).Interior.Color
MsgBox Cells(3, 6).Interior.Color
End Sub

Вместо вывода сообщений можно присвоить числовые значения цветов переменным, объявив их как Long.

Использование предопределенных констант
В VBA Excel есть предопределенные константы часто используемых цветов для заливки ячеек:

#ЦветЯчейки #Заливка #Фон #InteriorColor #Interior #Color
👍1
Свойство .Interior.ColorIndex объекта Range

До появления Excel 2007 существовала только ограниченная палитра для заливки ячеек фоном, состоявшая из 56 цветов, которая сохранилась и в настоящее время. Каждому цвету в этой палитре присвоен индекс от 1 до 56. Присвоить цвет ячейке по индексу или вывести сообщение о нем можно с помощью свойства .Interior.ColorIndex:
Range("A1").Interior.ColorIndex = 8
MsgBox Range("A1").Interior.ColorIndex


Просмотреть ограниченную палитру для заливки ячеек фоном можно, запустив в VBA Excel простейший макрос:
Sub ColorIndex()
Dim i As Byte
For i = 1 To 56
Cells(i, 1).Interior.ColorIndex = i
Next
End Sub

Номера строк активного листа от 1 до 56 будут соответствовать индексу цвета, а ячейка в первом столбце будет залита соответствующим индексу фоном.

#VBA #ExcelVBA #ColorIndex #InteriorColorIndex #Interior
🔥 Свойство Interior объекта Range

Свойство Range.Interior позволяет управлять фоновым цветом ячеек и их заливкой. Это свойство используется для выделения данных, форматирования таблиц и создания цветовой индикации.

📌 Примеры:

1️⃣ Изменяем цвет фона ячейки A1:
Range("A1").Interior.Color = RGB(255, 255, 0)  


🔹 Ячейка A1 станет жёлтой (RGB(255, 255, 0)).

2️⃣ Устанавливаем стандартный цвет Excel (красный):
Range("B2").Interior.ColorIndex = 3  


🔹 ColorIndex = 3 — это красный цвет в палитре Excel.

3️⃣ Очищаем от заливки ячейки A1:C3:
Range("A1:C3").Interior.ColorIndex = xlNone  


🔹 Убирает заливку (возвращает стандартный фон).

4️⃣ Закрашиваем строки с чётными номерами:
Dim r As Range  
For Each r In Range("A1:A10").Rows
If r.Row Mod 2 = 0 Then
r.Interior.Color = RGB(200, 200, 200) ' Серый
End If
Next r


🔹 Закрашивает все чётные строки серым цветом.

5️⃣ Добавляем серый узор 50%:
Range("A1").Interior.Pattern = xlPatternGray50

🔹 Значения Pattern берутся из набора констант Excel, таких как xlPatternNone, xlPatternSolid, xlPatternGray50, и других.

6️⃣ Устанавливаем зелёный цвет узора:
Range("A1").Interior.PatternColor = RGB(0, 255, 0)

🔹 Цвет узора (PatternColor) перекрывает основной цвет заливки. Вы можете создать узор из цветных линий поверх однотонного фона.

7️⃣ Задаем оттенок узора:
Range("A1").Interior.PatternTintAndShade = 0.5 ' Светлый оттенок узора

🔹 PatternTintAndShade позволяет регулировать яркость и насыщенность цвета узора. Значение варьируется от -1 (насыщенный тёмный) до 1 (очень светлый).

8️⃣ Затемняем основную заливку:
Range("A1").Interior.TintAndShade = -0.25 ' Заливка с затемнением

🔹 TintAndShade позволяет регулировать яркость и насыщенность основной заливки ячейки. Значение варьируется от -1 (насыщенный тёмный) до 1 (очень светлый).

9️⃣ Применяем сразу несколько свойств к объекту Interior:
With Range("A1").Interior
.Color = RGB(255, 255, 0) ' Основной цвет - жёлтый
.Pattern = xlPatternChecker ' Шахматный узор
.PatternColor = RGB(0, 0, 255) ' Цвет узора - синий
.PatternTintAndShade = 0.3 ' Осветляем узор
End With

🔹 Можно комбинировать основные свойства заливки, чтобы добиться сложных визуальных эффектов.

💡 Interior можно комбинировать с Font, Borders и другими свойствами для комплексного форматирования.

#Interior #Color #Pattern #PatternColor #PatternTintAndShade #TintAndShade