1

Тема: 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

определит палитру только из оттенков синего цвета.