Тема: VBA: отображение RGB-кодов палитры цветов на рабочем листе Excel
Для использования вставьте текст процедуры в код модуля рабочей книги Microsoft Excel и исполните её.
На активном рабочем листе будет нарисована таблица из 56 цветов палитры, номера цвета в палитре и соответствующих им значений цветовых составляющих Red, Green и Blue.
Sub PrintRGBColorPalette()
'
' Отображение RGB-кодов палитры в EXCEL
'
' В каждой книге Microsoft Excel имеется палитра из 56 цветов,
' которые могут использоваться в ячейках, шрифтах,
' линиях сетки и графических объектах листа, а также линиях и элементах
'
' Скрипт взят из книги:
' Кертис Фрай - "Хитрости Excel"
'
Dim intNumColor As Integer
Dim rgbVal As Long
Range("A1").Select
With ActiveCell
.Formula = "Color"
.Offset(0, 1).Value = "Index"
.Offset(0, 3).Value = "Red"
.Offset(0, 4).Value = "Green"
.Offset(0, 5).Value = "Blue"
.Offset(1, 0).Activate
End With
For intNumColor = 1 To 56
With ActiveCell
.Interior.ColorIndex = intNumColor
rgbVal = .Interior.Color
.Offset(0, 1).Formula = .Interior.ColorIndex
.Offset(0, 3).Value = rgbVal And &HFF
.Offset(0, 4).Value = rgbVal \ &H100 And &HFF
.Offset(0, 5).Value = rgbVal \ &H10000 And &HFF
.Offset(1, 0).Activate
End With
Next intNumColor
End Sub
Автор идеи — volkov888.
От себя напомню, что цвета палитры рабочей книги могут быть переопределены в любой момент. Например, поменяем местами черный и белый цвета в палитре (по умолчанию в палитре Color(1) — чёрный, Color(2) — белый):
ActiveWorkbook.Colors(1) = RGB(255, 255, 255)
ActiveWorkbook.Colors(2) = RGB(0, 0, 0)
Цвета могут определяться произвольным образом. Например код:
For i = 1 To 56
ActiveWorkbook.Colors(i) = RGB(0, 0, 255 - i * 4)
Next i
определит палитру только из оттенков синего цвета.