Когда вы получаете лист с несколькими цветными ячейками, как показано на скриншоте ниже, в некоторых случаях вам может потребоваться определить индекс цвета фона этих цветных ячеек. Нет встроенной функции, которая может определить индекс цвета ячейки, но в этой статье я представлю некоторые коды VBA для быстрого решения этой задачи в Excel.
Определите цвет ячейки с помощью VBA
Определите цвет ячейки с помощью VBA
Выполните следующие шаги, чтобы определить цвет ячейки с помощью VBA.
1. Нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули открыть новый Модули и вставьте ниже код VBA в пустой скрипт. Смотрите скриншот:
VBA: получить традиционный шестнадцатеричный код ячейки
Function getRGB1(FCell As Range) As String
'UpdatebyExtendoffice20170714
Dim xColor As String
xColor = CStr(FCell.Interior.Color)
xColor = Right("000000" & Hex(xColor), 6)
getRGB1 = Right(xColor, 2) & Mid(xColor, 3, 2) & Left(xColor, 2)
End Function
3. Сохраните код и закройте окно VBA. Выберите пустую ячейку рядом с цветной ячейкой, введите эту формулу, = getRGB1 (A16), затем перетащите маркер автозаполнения на ячейки, которые вы хотите использовать. Смотрите скриншот:
Наконечник: Есть еще несколько кодов, которые могут определить цветовой индекс ячейки.
1. VBA: десятичное значение для каждого кода
Function getRGB2(FCell As Range) As String
'UpdatebyExtendoffice20170714
Dim xColor As Long
Dim R As Long, G As Long, B As Long
xColor = FCell.Interior.Color
R = xColor Mod 256
G = (xColor 256) Mod 256
B = (xColor 65536) Mod 256
getRGB2 = "R=" & R & ", G=" & G & ", B=" & B
End Function
Результат:
2. VBA: десятичные значения
Function getRGB3(FCell As Range, Optional Opt As Integer = 0) As Long
'UpdatebyExtendoffice20170714
Dim xColor As Long
Dim R As Long, G As Long, B As Long
xColor = FCell.Interior.Color
R = xColor Mod 256
G = (xColor 256) Mod 256
B = (xColor 65536) Mod 256
Select Case Opt
Case 1
getRGB3 = R
Case 2
getRGB3 = G
Case 3
getRGB3 = B
Case Else
getRGB3 = xColor
End Select
End Function
Результат:
Относительные статьи:
- Как изменить цвет шрифта в зависимости от значения ячейки в Excel?
- Как раскрасить повторяющиеся значения или повторяющиеся строки в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (3)
Оценок пока нет. Оцените первым!
Содержание
- Как определить и определить индекс цвета фона ячеек в Excel?
- Определите цвет ячейки с помощью VBA
- Excel индекс цвета ячейки
- Как определить и определить индекс цвета фона ячеек в Excel?
- VBA Excel. Стандартная палитра из 56 цветов
- Стандартная палитра из 56 цветов
- Наименования 56 цветов палитры
- RGB и HEX коды оттенков палитры
- Процент черного в оттенках серого
- Вывод 56-цветной палитры на лист
- Свойство ColorIndex (Excel Graph)
- Синтаксис
- Примечания
- Пример
- Поддержка и обратная связь
Как определить и определить индекс цвета фона ячеек в Excel?
Когда вы получаете лист с несколькими цветными ячейками, как показано на скриншоте ниже, в некоторых случаях вам может потребоваться определить индекс цвета фона этих цветных ячеек. Не существует встроенной функции, которая может определять индекс цвета ячейки, но в этой статье я представлю некоторые коды VBA для быстрого решения этой задачи в Excel.
Определите цвет ячейки с помощью VBA
Выполните следующие шаги, чтобы определить цвет ячейки с помощью VBA.
1. Нажмите клавиши Alt + F11 , чтобы открыть окно Microsoft Visual Basic для приложений .
2. Нажмите Вставить > Module , чтобы открыть новый модуль и вставьте под кодом VBA в пустой скрипт. См. Снимок экрана:
VBA: получить традиционный шестнадцатеричный код ячейки
3. Сохраните код и закройте окно VBA. Выберите пустую ячейку рядом с цветной ячейкой, введите эту формулу = getRGB1 (A16), затем перетащите маркер автозаполнения на ячейки, которые вы хотите использовать. См. Снимок экрана:
Совет: есть другие коды, которые могут идентифицировать индекс цвета ячейки.
1. VBA: десятичное значение для каждого кода
Результат:
2. VBA: десятичные значения
Результат:
Источник
Excel индекс цвета ячейки
Как определить и определить индекс цвета фона ячеек в Excel?
Когда вы получаете лист с несколькими цветными ячейками, как показано на скриншоте ниже, в некоторых случаях вам может потребоваться определить индекс цвета фона этих цветных ячеек. Нет встроенной функции, которая может определить индекс цвета ячейки, но в этой статье я представлю некоторые коды VBA для быстрого решения этой задачи в Excel.
Выполните следующие шаги, чтобы определить цвет ячейки с помощью VBA.
1. Нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули открыть новый Модули и вставьте ниже код VBA в пустой скрипт. Смотрите скриншот:
VBA: получить традиционный шестнадцатеричный код ячейки
3. Сохраните код и закройте окно VBA. Выберите пустую ячейку рядом с цветной ячейкой, введите эту формулу, = getRGB1 (A16) , затем перетащите маркер автозаполнения на ячейки, которые вы хотите использовать. Смотрите скриншот:
Наконечник: Есть еще несколько кодов, которые могут определить цветовой индекс ячейки.
1. VBA: десятичное значение для каждого кода
Результат:
2. 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:
Источник
Свойство ColorIndex (Excel Graph)
Возвращает или задает цвет границы, шрифта или внутренней области, как показано в следующей таблице. Цвет указывается в виде значения индекса в текущей цветовой палитре или в виде одной из следующих констант XlColorIndex: xlColorIndexAutomatic или xlColorIndexNone. Для чтения и записи, Variant.
Синтаксис
выражение. ColorIndex
выражение (обязательно). Выражение, возвращающее один из объектов списка Применяется к.
Примечания
Object | Описание |
---|---|
Border | Цвет границы. |
Font | Цвет шрифта. |
Interior | Цвет внутренней заливки. Присвойте параметру ColorIndex значение xlColorIndexNone, чтобы не применять внутреннюю заливку. Присвойте параметру ColorIndex значение xlColorIndexAutomatic, чтобы указать автоматическую заливку (для графических объектов). |
Это свойство указывает цвет в виде индекса в цветовой палитре. На рисунке ниже показаны значения цветового индекса в цветовой палитре по умолчанию.
Пример
В следующих примерах предполагается, что используется цветовая палитра по умолчанию.
В этом примере устанавливается цвет основных линий сетки для оси значений.
В этом примере устанавливается красный цвет внутреннего заполнения диаграммы и синий цвет для границы.
Если вы хотите использовать цвет с объектом FormatCondition в Visual Basic, ознакомьтесь со статьей Свойство Interior.ColorIndex.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Here are some small functions for you. From your sheet, press Alt—F11 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
Надстройка PLEX для Microsoft Excel 2007-2021 и Office 365
Данная функция позволяет определить внутренний числовой Excel код цвета заливки любой указанной ячейки. Это дает возможность пользователю впоследствии производить сортировку и фильтрацию ячеек по цвету, что часто бывает необходимо.
Синтаксис
=CellColor(cell)
где
- cell — ячейка, для которой нужно определить код цвета заливки
Примечания
К сожалению, поскольку Excel формально не считает смену цвета изменением содержимого листа, то эта функция не будет пересчитываться автоматически при изменении форматирования — обновление значений этой функции происходит только при нажатии сочетания клавиш полного пересчета листа Ctrl+Alt+F9.
Также (в силу ограничений самого Excel), данная функция не может считывать код цвета, если было использовано условное форматирование.
Если для ячейки не установлен цвет заливки, то код = -4142.
Если нужен RGB-код цвета, то используйте функцию RGBCellColor.
Если нужен код цвета не заливки, а шрифта, то используйте функцию CellFontColor.
Полный список всех инструментов надстройки PLEX
Как определить цвет заливки ячейки
Функция =ЦВЕТЗАЛИВКИ(ЯЧЕЙКА) возвращает код цвета заливки выбранной ячейки. Имеет один обязательный аргумент:
- ЯЧЕЙКА — ссылка на ячейку, для которой необходимо применить функцию.
Ниже представлен пример, демонстрирующий работу функции.
Следует обратить внимание на тот факт, что функция не пересчитывается автоматически. Это связано с тем, что изменение цвета заливки ячейки Excel не приводит к пересчету формул. Для пересчета формулы необходимо пользоваться сочетанием клавиш Ctrl+Alt+F9
Пример использования
Так как заливка ячеек значительно упрощает восприятие данных, то пользоваться ей любят практически все пользователи. Однако есть и большой минус — в стандартном функционале Excel отсутствует возможность выполнять операции на основе цвета заливки. Нельзя просуммировать ячейки определенного цвета, посчитать их количество, найти максимальное и так далее.
С помощью функции ЦВЕТЗАЛИВКИ все это становится выполнимым. Например, «протяните» данную формулу с цветом заливки в соседнем столбце и производите вычисления на основе числового кода ячейки.
Иногда возникает необходимость изменить, определить цвет ячейки для копирования, закрасить определенную область, придав тем самым неповторимые и выразительные черты таблице данных.
В этой статье мы рассмотрим как вручную можно менять цвет ячейки, а так же как прописать в VBA изменение цвета диапазона ячеек или одной выделенной ячейки.
Начнем с простого. На главной панели инструментов ленты находится панель Формата Ячеек:
Для того, чтобы изменить цвет ячейки (диапазона ячеек) нам необходимо выделить ее, после чего на Панели инструментов выбрать необходимый цвет. Так же можно задать другие цвета, выбрав их из палитры. Панель инструментов меняет так же цвет текста, размер шрифта и формат границы ячейки.
Теперь зададим формат ячейки пользуясь контекстным меню, для чего кликнем правой кнопкой мыши на ячейке и в открывшемся списке выберем «Формат Ячеек»:
На вкладке «Заливка» можно выбрать цвет фона и узор.
Рассмотрим несколько иную ситуацию. Допустим вы хотите скопировать цвет ячейки (и формат) с существующей и применить к своим ячейкам. Воспользуемся кнопкой на главной панели «Формат по образцу» («метелочка»):
Таким образом, для того, чтобы скопировать формат необходимо выделить интересующую нас ячейку, нажать на «метелочку» и кликнуть по ячейке, формат которой мы хотим задать.
Аналогичные операции можно описать и в Макросах. Если есть необходимость вставить в код условие, по которому будет меняться формат ячейки или проводиться суммирование ячеек с определенным цветом или шрифтом, то проведя операции копирования формата с записью макроса, можно увидеть что:
Задать цвет ячейке (A1 окрашивается в Желтый):
Скопировать формат ячейки (формат A1 копируется на A3):
Теперь комбинируя формат с операторами условия можно написать вычисления (например, суммирование) по условию цвета.
Будем благодарны, если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок ниже.
Как узнать цвет ячейки excel
Функция CellColor
Данная функция позволяет определить внутренний числовой Excel код цвета заливки любой указанной ячейки. Это дает возможность пользователю впоследствии производить сортировку и фильтрацию ячеек по цвету, что часто бывает необходимо.
Синтаксис
=CellColor( cell )
- cell — ячейка, для которой нужно определить код цвета заливки
Примечания
К сожалению, поскольку Excel формально не считает смену цвета изменением содержимого листа, то эта функция не будет пересчитываться автоматически при изменении форматирования — обновление значений этой функции происходит только при нажатии сочетания клавиш полного пересчета листа Ctrl+Alt+F9.
Также (в силу ограничений самого Excel), данная функция не может считывать код цвета, если было использовано условное форматирование.
Если для ячейки не установлен цвет заливки, то код = -4142.
Если нужен RGB-код цвета, то используйте функцию RGBCellColor.
Если нужен код цвета не заливки, а шрифта, то используйте функцию CellFontColor.