Функция rgb в excel

Содержание

  1. Функция RGB
  2. Синтаксис
  3. Замечания
  4. Пример
  5. См. также
  6. Поддержка и обратная связь
  7. VBA Excel. Стандартная палитра из 56 цветов
  8. Стандартная палитра из 56 цветов
  9. Наименования 56 цветов палитры
  10. RGB и HEX коды оттенков палитры
  11. Процент черного в оттенках серого
  12. Вывод 56-цветной палитры на лист
  13. VBA Excel. Конвертация цвета из Long в RGB
  14. Функция ColorLongToRGB
  15. Конвертация цвета в RGB

Функция RGB

Возвращает целое число типа Long, представляющее значение цвета RGB.

Синтаксис

RGB(красный, зеленый, синий)

Синтаксис функции RGB состоит из следующих именованных аргументов:

Part Описание
Красного Обязательный аргумент; Variant (Integer). Число в диапазоне от 0 до 255 включительно, которое представляет красный компонент цвета.
Зеленый Обязательный аргумент; Variant (Integer). Число в диапазоне от 0 до 255 включительно, которое представляет зеленый компонент цвета.
Синий Обязательный аргумент; Variant (Integer). Число в диапазоне от 0 до 255 включительно, которое представляет синий компонент цвета.

Замечания

Для методов и свойств приложения, принимающих спецификацию цвета, эта спецификация должна быть числом, представляющим значение цвета RGB. Значение цвета RGB указывает относительную интенсивность красного, зеленого и синего, чтобы вызвать определенный цвет, который должен отображаться.

Предполагается, что значение для любого аргумента в RGB, превышающее 255, должно быть 255.

В следующей таблице перечислены некоторые стандартные цвета и значения красного, зеленого и синего, которые они включают:

Цвет Значение красного Значение зеленого Значение синего
Черный 0 0 0
Синий 0 0 255
Зеленый 0 255 0
Cyan 0 255 255
Красный 255 0 0
Пурпурный 255 0 255
Желтый 255 255 0
Белый 255 255 255

Возвращаемые этой функцией значения цвета RGB не совместимы со значениями, используемыми операционной системой Macintosh. Они могут использоваться в контексте приложений Microsoft для Macintosh, но не должны использоваться при непосредственной передачи изменений цвета в операционную систему Macintosh.

Пример

В этом примере показано, как функция RGB используется, чтобы вернуть целое число, представляющее значение цвета RGB. Он используется для тех методов и свойств приложения, которые принимают спецификацию цвета. Объект MyObject и его свойство используются только в целях иллюстрации. Если MyObject не существует или у него нет свойства Color , возникает ошибка.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

VBA Excel. Стандартная палитра из 56 цветов

Наименования цветов стандартной палитры Excel из 56 оттенков на русском и английском языках. Соответствие цветов индексам VBA и их RGB и HEX коды.

Стандартная палитра из 56 цветов

За ограниченную палитру в VBA Excel отвечает свойство ColorIndex, которое используется для записи и чтения:

Свойство ColorIndex принимает и возвращает значения от 1 до 56.

Наименования 56 цветов палитры

Наименования 56 цветов стандартной ограниченной палитры Excel на русском и английском языках:

Индекс Наименование
по-русски
Наименование по-английски Оттенок
1 Черный Black
2 Белый White
3 Красный Red
4 Лайм Lime
5 Синий Blue
6 Желтый Yellow
7 Фуксия* Fuchsia*
8 Цвет морской волны Aqua
9 Темно-бордовый Maroon
10 Зеленый Green
11 Темно-синий Navy blue
12 Оливковый Olive
13 Пурпурный Purple
14 Бирюзовый Teal
15 Серебряный Silver
16 Серый Gray
17 Светло-пурпурно-синий Light purple blue
18 Розовато-лиловый Mauve
19 Бледно-желто-зеленый Pale yellow green
20 Бледно-голубой Pale blue
21 Сливовый Plum
22 Лососевый Salmon
23 Темно-сине-голубой Light navy blue
24 Барвинок Periwinkle
25 Темно-синий Navy blue
26 Фуксия* Fuchsia*
27 Желтый Yellow
28 Цвет морской волны Aqua
29 Пурпурный Purple
30 Коричнево-малиновый Maroon
31 Сине-зеленый Teal
32 Синий Blue
33 Небесно-голубой Vivid sky blue
34 Бледно-голубой Pale blue
35 Бледно-зеленый Pale green
36 Светло-желтый Light yellow
37 Сине-голубой Shade of blue
38 Бледно-пурпурно-розовый Pale magenta pink
39 Светло-сиреневый Light lilac
40 Оранжево-персиковый Peach-orange
41 Светло-синий Light blue
42 Светло-бирюзовый Light turquoise
43 Желто-зеленый Yellow green
44 Желтый мандарин Tangerine yellow
45 Сигнальный оранжевый Safety orange
46 Оранжевый Orange
47 Темно-сине-серый Dark blue gray
48 Светло-серый Light gray
49 Полуночно-синий Midnight blue
50 Зеленая трава Green grass
51 Темно-зеленый Dark green
52 Темно-коричневый Dark brown
53 Темно-красный Dark red
54 Розовато-лиловый Mauve
55 Синий пигмент Blue pigment
56 Темный уголь Dark charcoal

* Вместо термина Фуксия (Fuchsia) можно использовать термин Маджента (Magenta), так как в RGB-модели Фуксия и Маджента являются одним и тем же цветом.

Обратите внимание, что в стандартной палитре Excel из 56 цветов есть повторяющиеся оттенки. Наименования цветов (по их HEX-кодам) подобраны, главным образом, по статьям, опубликованным в Википедии.

RGB и HEX коды оттенков палитры

RGB и HEX коды оттенков 56-цветной палитры Excel:

Индекс Код HEX Код RGB Оттенок
1 #000000 RGB(0, 0, 0)
2 #ffffff RGB(255, 255, 255)
3 #ff0000 RGB(255, 0, 0)
4 #00ff00 RGB(0, 255, 0)
5 #0000ff RGB(0, 0, 255)
6 #ffff00 RGB(255, 255, 0)
7 #ff00ff RGB(255, 0, 255)
8 #00ffff RGB(0, 255, 255)
9 #800000 RGB(128, 0, 0)
10 #008000 RGB(0, 128, 0)
11 #000080 RGB(0, 0, 128)
12 #808000 RGB(128, 128, 0)
13 #800080 RGB(128, 0, 128)
14 #008080 RGB(0, 128, 128)
15 #c0c0c0 RGB(192, 192, 192)
16 #808080 RGB(128, 128, 128)
17 #9999ff RGB(153, 153, 255)
18 #993366 RGB(153, 51, 102)
19 #ffffcc RGB(255, 255, 204)
20 #ccffff RGB(204, 255, 255)
21 #660066 RGB(102, 0, 102)
22 #ff8080 RGB(255, 128, 128)
23 #0066cc RGB(0, 102, 204)
24 #ccccff RGB(204, 204, 255)
25 #000080 RGB(0, 0, 128)
26 #ff00ff RGB(255, 0, 255)
27 #ffff00 RGB(255, 255, 0)
28 #00ffff RGB(0, 255, 255)
29 #800080 RGB(128, 0, 128)
30 #800000 RGB(128, 0, 0)
31 #008080 RGB(0, 128, 128)
32 #0000ff RGB(0, 0, 255)
33 #00ccff RGB(0, 204, 255)
34 #ccffff RGB(204, 255, 255)
35 #ccffcc RGB(204, 255, 204)
36 #ffff99 RGB(255, 255, 153)
37 #99ccff RGB(153, 204, 255)
38 #ff99cc RGB(255, 153, 204)
39 #cc99ff RGB(204, 153, 255)
40 #ffcc99 RGB(255, 204, 153)
41 #3366ff RGB(51, 102, 255)
42 #33cccc RGB(51, 204, 204)
43 #99cc00 RGB(153, 204, 0)
44 #ffcc00 RGB(255, 204, 0)
45 #ff9900 RGB(255, 153, 0)
46 #ff6600 RGB(255, 102, 0)
47 #666699 RGB(102, 102, 153)
48 #969696 RGB(150, 150, 150)
49 #003366 RGB(0, 51, 102)
50 #339966 RGB(51, 153, 102)
51 #003300 RGB(0, 51, 0)
52 #333300 RGB(51, 51, 0)
53 #993300 RGB(153, 51, 0)
54 #993366 RGB(153, 51, 102)
55 #333399 RGB(51, 51, 153)
56 #333333 RGB(51, 51, 51)

RGB-коды можно использовать в VBA Excel наряду с индексами цветов стандартной палитры, а HEX-коды — в HTML.

Процент черного в оттенках серого

Процентное соотношение черного цвета в оттенках серого:

Индекс Наименование Процент черного Оттенок
1 Черный 100%
2 Белый 0%
15 Серебряный 25%
16 Серый 50%
48 Светло-серый 40%
56 Темный уголь 80%

Вывод 56-цветной палитры на лист

Вывод на рабочий лист Excel 56-цветной палитры с помощью кода VBA:

Источник

VBA Excel. Конвертация цвета из Long в RGB

Конвертация цвета из числового значения Long в RGB формат из кода VBA Excel с помощью пользовательской функции ColorLongToRGB. Примеры.

Функция ColorLongToRGB

Пользовательская функция ColorLongToRGB по своему действию является обратной для встроенной в VBA Excel функции RGB, которая значения цветов по системе RGB переводит в значения типа Long.

Для конвертации цвета из Long в RGB нам понадобится функция Windows API CopyMemory (копирование блока памяти из одного расположения в другое), которую следует объявить в разделе Declarations стандартного модуля:

Это вариант для 64-разрядных версий VBA Excel, для 32-разрядных платформ из объявления следует убрать ключевое слово PtrSafe и, возможно, тип данных LongPtr заменить на Long.

Параметры функции CopyMemory :

  • Destination — указатель на начальный адрес места назначения скопированного блока;
  • Source — указатель на начальный адрес копируемого блока памяти;
  • Длина — размер копируемого блока памяти в байтах.

Кроме того, нам понадобится переменная пользовательского типа данных, которую следует объявить в разделе Declarations:

Элементы пользовательского типа данных myRGB:

  • r — интенсивность красного цвета;
  • g — интенсивность зеленого цвета;
  • b — интенсивность синего цвета.

Код функции ColorLongToRGB, предназначенной для конвертации цвета из Long в RGB:

d — числовое значение цвета типа Long.

В данном случае, числовое значение цвета типа Long распознается как массив из четырех байтов, значение первого из которых соответствует интенсивности красного цвета, второго — интенсивности зеленого цвета, третьего — интенсивности синего цвета. Четвертый байт может содержать значение альфа-канала (информация о прозрачности рисунка), который в Excel не используется.

Функция ColorLongToRGB с помощью функции Windows API CopyMemory копирует массив из первых трех байтов числового значения цвета в три элемента пользовательского типа данных myRGB (r, g, b).

Конвертация цвета в RGB

Код функции ColorLongToRGB в сборке с объявлением функция Windows API CopyMemory и пользовательского типа данных myRGB:

Источник

Конвертация цвета из числового значения Long в RGB формат из кода VBA Excel с помощью пользовательской функции ColorLongToRGB. Примеры.

Функция ColorLongToRGB

Пользовательская функция ColorLongToRGB по своему действию является обратной для встроенной в VBA Excel функции RGB, которая значения цветов по системе RGB переводит в значения типа Long.

Для конвертации цвета из Long в RGB нам понадобится функция Windows API CopyMemory (копирование блока памяти из одного расположения в другое), которую следует объявить в разделе Declarations стандартного модуля:

Declare PtrSafe Sub CopyMemory Lib «kernel32» Alias «RtlMoveMemory» (Destination As Any, Source As Any, ByVal Length As LongPtr)

Это вариант для 64-разрядных версий VBA Excel, для 32-разрядных платформ из объявления следует убрать ключевое слово PtrSafe и, возможно, тип данных LongPtr заменить на Long.

Параметры функции CopyMemory:

  • Destination — указатель на начальный адрес места назначения скопированного блока;
  • Source — указатель на начальный адрес копируемого блока памяти;
  • Длина — размер копируемого блока памяти в байтах.

Кроме того, нам понадобится переменная пользовательского типа данных, которую следует объявить в разделе Declarations:

Type myRGB

    r As Byte

    g As Byte

    b As Byte

End Type

Элементы пользовательского типа данных myRGB:

  • r — интенсивность красного цвета;
  • g — интенсивность зеленого цвета;
  • b — интенсивность синего цвета.

Код функции ColorLongToRGB, предназначенной для конвертации цвета из Long в RGB:

Function ColorLongToRGB(d As Long) As myRGB

    CopyMemory ColorLongToRGB, d, 3

End Function

d — числовое значение цвета типа Long.

В данном случае, числовое значение цвета типа Long распознается как массив из четырех байтов, значение первого из которых соответствует интенсивности красного цвета, второго — интенсивности зеленого цвета, третьего — интенсивности синего цвета. Четвертый байт может содержать значение альфа-канала (информация о прозрачности рисунка), который в Excel не используется.

Функция ColorLongToRGB с помощью функции Windows API CopyMemory копирует массив из первых трех байтов числового значения цвета в три элемента пользовательского типа данных myRGB (r, g, b).

Код функции ColorLongToRGB в сборке с объявлением функция Windows API CopyMemory и пользовательского типа данных myRGB:

Declare PtrSafe Sub CopyMemory Lib «kernel32» Alias «RtlMoveMemory» (Destination As Any, Source As Any, ByVal Length As LongPtr)

Type myRGB

    r As Byte

    g As Byte

    b As Byte

End Type

Function ColorLongToRGB(d As Long) As myRGB

    CopyMemory ColorLongToRGB, d, 3

End Function

Пример 1

Проверка работоспособности пользовательской функции ColorLongToRGB:

Sub Primer1()

Dim x As myRGB, a As Long

a = RGB(red:=120, green:=200, blue:=150)

x = ColorLongToRGB(a)

MsgBox «r = « & x.r & vbNewLine & «g = « & x.g & vbNewLine & «b = « & x.b

End Sub

Результат работы кода:

Пример 2

Есть таблица, первый столбец которой заполнен произвольными цветами:

Необходимо числовой код каждого цвета типа Long преобразовать в RGB формат и заполнить его элементами пустые ячейки таблицы.

Код VBA Excel для решения данной задачи:

Sub Primer2()

Dim x As myRGB, myCell As Range

    For Each myCell In Range(«A2:A6»)

        x = ColorLongToRGB(myCell.Interior.Color)

        myCell.Offset(0, 1) = x.r

        myCell.Offset(0, 2) = x.g

        myCell.Offset(0, 3) = x.b

    Next

End Sub

Результат работы кода:

Пример 3

Пример функции ColorLongToRGBA c альфа-каналом в сборке с объявлением функция Windows API CopyMemory и пользовательского типа данных myRGBA:

Declare PtrSafe Sub CopyMemory Lib «kernel32» Alias «RtlMoveMemory» (Destination As Any, Source As Any, ByVal Length As LongPtr)

Type myRGBA

    r As Byte

    g As Byte

    b As Byte

    a As Byte

End Type

Function ColorLongToRGBA(d As Long) As myRGBA

    CopyMemory ColorLongToRGBA, d, 4

End Function

Элемент a пользовательского типа данных myRGBA — это альфа-канал, который содержит информацию о прозрачности рисунка.


Here are some small functions for you. From your sheet, press AltF11 to reach the VBA editor, insert a new module, paste the below code, go back to your worksheet and use them by their names, like in =FillColor(A1)

The first two are the promised «3-liners» giving decimal values for font and background colors — not very useful though

The second pair converts the decimal number to RGB and returns a string of format N, N, N

The third pair are array formulas — select 3 cells in a row, enter the formula and press Ctrl+Shift+Enter to obtain numeric RGB values in 3 neighboring cells

Function FillColor(Target As Range) As Variant
    FillColor = Target.Interior.Color
End Function

Function FontColor(Target As Range) As Variant
    FontColor = Target.Font.Color
End Function

Function FillColorRGB(Target As Range) As Variant
Dim N As Double

    N = Target.Interior.Color
    FillColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256)
End Function

Function FontColorRGB(Target As Range) As Variant
Dim N As Double

    N = Target.Font.Color
    FontColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256)
End Function

Function FillColorRGBArray(Target As Range) As Variant
Dim N As Double, A(3) As Integer

    N = Target.Interior.Color
    A(0) = N Mod 256
    A(1) = Int(N / 256) Mod 256
    A(2) = Int(N / 256 / 256) Mod 256
    FillColorRGBArray = A
End Function

Function FontColorRGBArray(Target As Range) As Variant
Dim N As Double, A(3) As Integer

    N = Target.Font.Color
    A(0) = N Mod 256
    A(1) = Int(N / 256) Mod 256
    A(2) = Int(N / 256 / 256) Mod 256
    FontColorRGBArray = A
End Function

A word of caution: changing the color of a cell does not start recalculation by the above functions/formulas, as recoloring a cell in general is not supposed to drive recalculation. You have to manually start a full recalculation using Ctrl+Alt+Shift+F9

RGB(Red, Green, Blue)

Функция RGB получает RGB-код цвета из основных компонентов

Возвращаемое значение

Возвращает значение типа Long, представляющее цвет в модели RGB. Значение RGB указывает относительную интенсивность красного, зеленого и синего компонентов, образующих отображаемый цвет. RGB-код цвета получается из компонентов по формуле:
RGB=red+(green*256)+(blue*65536)

Параметры

Функция содержит именованные аргументы

Red,Green,Blue Обязательный аргумент типа Variant(Integer). Число в интервале от 0 до 255 включительно, представляющие соответственно красный, зеленый и синий компонент цвета. Значение любого аргумента функции RGB, превышающее 255, считается равным 255

Пример

Dim Red
Red=RGB(255,0,0) 'устанавливаем красный цвет
Form1.BackColor=Red ' делаем красным фон формы

Категория
Функции обработки цвета

What does VBA Excel RGB Property do?

VBA Excel RGB Property is a color Property of Objects, commonly used for Cell color or Shape color.

“RGB” stands for Red Green Blue, which are known as three additive primary colors, which can be combined to produce other colors. For example, purple is a mix of blue and red.  In RGB Property, you need to give a value (from 0 to 255) for each color in order to mix a new color. For example, Red = 255 means the brightness of color red is 100%.

rgb color

If you try to change a color but you don’t know the color code, you can visit the websites below

http://www.ifreesite.com/color/

http://big-coronasdklua.blogspot.hk/2011/04/rgb.html

You may also want to compare ColorIndex Property with RGB Property to use a different Property to set color for Cells.

Syntax of VBA Excel RGB Property

expression.RGB(red, green, blue)

red Integer from 0-255
green Integer from 0-255
blue Integer from 0-255

Example of Excel VBA RGB Property

Example 1: Set Cell A1 font color to red

Range("A1").Font.Color = RGB(255, 0, 0)

Example 2: Set Cell A1 back color to red

Range("A1").Interior.Color = RGB(255, 0, 0)

Example 3: Set Cell A1 border color to red

Range("A1").Borders.Color = RGB(255, 0, 0)

Usually Property comes in a pair, one is to Set Property Method and another is  Get Property Method. However, RGB does not seem to have the Get Method.

To get the RGB Color, we need to get the use Interior.Color Property to get Interior Color first and then convert to RGB color based on the below formula

Interior Color = red+ green * 256 + blue * 256 ^ 2

Note carefully that if a Cell is colorless (no color), Interior.Color would return value 16777215, which is also the white color.

Below is a Function to get RGB color, where r, g, b are RGB value of Red, Green, Blue

Public Function wRGB(rng As Range)
 Dim intColor As Long
 Dim rgb As String
 intColor = rng.Interior.Color
 r = intColor And 255
 g = intColor  256 And 255
 b = intColor  256 ^ 2 And 255
 wRGB = r & "," & g & "," & b
End Function

Понравилась статья? Поделить с друзьями:
  • Функция text to column в excel
  • Функция rept в excel на русском
  • Функция sumifs в excel на русском
  • Функция rate в excel по русски
  • Функция range это vba excel