Определение значения RGB для цвета

Нил много использует цвета на своих листах. Он знает, что может генерировать цвет на основе числового значения RGB (как описано в других проблемах). Нил хотел бы сделать наоборот – определить значение RGB. Он задается вопросом, есть ли способ вернуть (с помощью функции или макроса) значение RGB цвета, используемого для заполнения ячейки. (Нил хочет, чтобы к ячейке был применен фактический цвет, а не какой-либо «замещающий» цвет, например, наложенный условным форматом.)

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

  1. Выберите ячейку, отформатированную с цветом, который вы хотите проверить .
  2. Отображение вкладки «Главная» на ленте.
  3. Щелкните стрелку вниз справа от инструмента «Цвет заливки» в группе «Шрифт». Excel отображает небольшую палитру цветов и некоторые другие параметры.
  4. Выбрать другие цвета. Excel отображает диалоговое окно “Цвета”.
  5. Убедитесь, что отображается вкладка “Пользовательский”. (См. Рис. 1.)
  6. Рис. 1. Вкладка «Пользовательские» диалогового окна «Цвета».

  7. В нижней части диалогового окна вы можете увидеть отдельные значения для красного, зеленого и синего компонентов цвета. в ячейке.
  8. Когда закончите, нажмите “ОК”.

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

Функция getRGB1 (rcell) As String Dim sColor As String sColor = Right («000000» & Hex (rcell.Interior.Color), 6) getRGB1 = Right (sColor, 2) & Mid (sColor, 3, 2) & Left (sColor, 2) Конечная функция

Этот макрос проверяет внутренний цвет любой ячейки, на которую вы ссылаетесь, помещает шестнадцатеричные значения цвета в правильном порядке и возвращает строку в Excel. Чтобы использовать функцию, вы просто вызываете ее на своем листе со ссылкой на ячейку следующим образом:

= getRGB1 (B4)

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

Функция getRGB2 (rcell) As String Dim C As Long Dim R As Long Dim G As Long Dim B As Long C = rcell.Interior.Color R = C Mod 256 G = C 256 Mod 256 B = C 65536 Mod 256 getRGB2 = «R =» & R & «, G =» & G & «, B = «& BEnd Function

Вызывается так же, как макрос getRGB1, эта версия возвращает строку, например” R = 255, G = 204, B = 0 “. Вы также можете изменить макрос еще больше, чтобы он возвращал одно значение на основе заданного вами параметра:

Функция getRGB3 (rcell As Range, Optional opt As Integer) As Long Dim C As Long Dim R As Long Dim G As Long Dim B As Long C = rcell.Interior.Color R = C Mod 256 G = C 256 Mod 256 B = C 65536 Mod 256 Если opt = 1 Тогда getRGB3 = R ElseIf opt = 2 Затем getRGB3 = G ElseIf opt = 3 Затем getRGB3 = B Else getRGB3 = C End IfEnd Function

Чтобы использовать макрос, просто добавьте второй параметр к функции, используемой на вашем листе, указав, что вы хотите :

= getRGB3 (B4,1)

Если второй параметр равен 1, функция возвращает только красное значение. Если вы укажете второй параметр, равный 2, возвращается зеленое значение, а 3 возвращает синее значение. Любое другое значение для второго параметра (или если вы его полностью опустите) возвращает полное десятичное значение внутреннего цвета.

Если вы не хотите идти по пути создания макроса, или если вы хотите определять цвета не только на листе Excel, вы можете рассмотреть возможность использования сторонней утилиты. Интересно выглядит Instant Eyedropper, который предоставляется бесплатно. Вы можете найти более подробную информацию об этом здесь:

http://instant-eyedropper.com

Источник: frestage.ru

Бытовой вопрос