Меню

Как установить цвет ячейки vba

Функция определенная пользователем: как изменить цвет ячейки

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

Как изменить цвет одной ячейки в dataGridView
Сабж. Думал у dataGridView1.Rows.Cells есть что-то на подобие DefaultCellStyle, а оказалось что.

Как изменить цвет ячейки в ее функции для листа
Добрый день. Проблема в следующем: ячейке назначается функция пользователя. Может ли сама функция.

Вот про это по-подробнее где можно почитать?

F1, справочники, учебники, интернет

Вложения

ex.xls (26.5 Кб, 99 просмотров)

к сожалению, изменение формата ячеек не относится к событиям листа
отследить это можно только через «костыли» (например, периодический запуск макроса по таймеру).
мало того, что это некрасиво, так еще и замедляет работу.
хорошо подумали?

пс. файлик с примером выложили бы, а? лень рисовать.
ппс. что должно быть, если поменять цвет сразу у нескольких ячеек?

Ладно. В принципе, не так страшно. Сделаю через костыли.

пс: а есть же какая-то команда, которая выполняется при запуске екселя? в ворде, вроде, точно есть! тогда можно сделать, чтобы состояние ячеек проверялось и при запуске екселя, и при запуске макроса.

Вложения

ex2.xls (31.5 Кб, 139 просмотров)

Вложения

ex2.xls (32.5 Кб, 30 просмотров)

пс. а самому попробовать перед тем как спрашивать?

Да беда в том, что файл на работе. Пробовать буду в понедельник)))

Лист другого типа есть, но он один, вот в нем-то я и пропишу условие, только наоборот

Только что пробовал реализовать нечто вроде
скрытый столбец рядом =ЯЧЕЙКА(«цвет».

Идея была в том чтобы записывать формулой в соседнюю ячейку состояние цвета заливки.
Если это значение менялось срабатывал бы

Источник

VBA Excel. Цвет ячейки (заливка, фон)

Заливка ячейки цветом в VBA Excel

Пример кода 1:

Поместите пример кода в свой программный модуль и нажмите кнопку на панели инструментов «Run Sub» или на клавиатуре «F5», курсор должен быть внутри выполняемой программы. На активном листе Excel ячейки и диапазон, выбранные в коде, окрасятся в соответствующие цвета.

Проверено в Excel 2016.

Вывод сообщений о числовых значениях цветов

Числовые значения цветов запомнить невозможно, поэтому часто возникает вопрос о том, как узнать числовое значение фона ячейки. Следующий код VBA Excel выводит сообщения о числовых значениях присвоенных ранее цветов.

Пример кода 2:

Вместо вывода сообщений можно присвоить числовые значения цветов переменным, объявив их как Long.

Использование предопределенных констант

В VBA Excel есть предопределенные константы часто используемых цветов для заливки ячеек:

Предопределенная константа Наименование цвета
vbBlack Черный
vbBlue Голубой
vbCyan Бирюзовый
vbGreen Зеленый
vbMagenta Пурпурный
vbRed Красный
vbWhite Белый
vbYellow Желтый
xlNone Нет заливки

Присваивается цвет ячейке предопределенной константой в VBA Excel точно так же, как и числовым значением:

Читайте также:  Как на рабочем столе установить прогноз погоды

Пример кода 3:

Цветовая модель RGB

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

Выбрать цвет и узнать его значения RGB можно с помощью палитры Excel:

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

Пример кода 4:

Очистка ячейки (диапазона) от заливки

Для очистки ячейки (диапазона) от заливки используется константа xlNone :

Пример кода 5:

Просмотреть ограниченную палитру для заливки ячеек фоном можно, запустив в VBA Excel простейший макрос:

Пример кода 6:

Номера строк активного листа от 1 до 56 будут соответствовать индексу цвета, а ячейка в первом столбце будет залита соответствующим индексу фоном.

Готовую стандартную палитру из 56 цветов можете посмотреть здесь.

43 комментария для “VBA Excel. Цвет ячейки (заливка, фон)”

Спасибо, наконец то разобрался во всех перипетиях заливки и цвета шрифта.

Пожалуйста, Виктор. Очень рад, что статья пригодилась.

как проверить наличие фона?

Привет, Надежда!
Фон у ячейки есть всегда, по умолчанию – белый. Отсутствие цветного фона можно определить, проверив, является ли цвет ячейки белым:

Подскажите пожалуйста, как можно посчитать количество залитых определенным цветом ячеек в таблице?

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

Фарин, пользовательская функция VBA предназначена только для возврата вычисленного значения в ячейку, в которой она расположена. Она не позволяет внутри себя менять формат своей ячейки, а также значения и форматы других ячеек.

Однако, с помощью пользовательской функции VBA можно вывести значения свойств ячейки, в которой она размещена:

В сети есть эксперименты по изменению значений других ячеек из пользовательской функции VBA, но они могут работать нестабильно и приводить к ошибкам.

Для подкрашивания ячейки в зависимости от ее значения используйте процедуру Sub или штатный инструмент Excel – условное форматирование.

Лев, закрасить пустые ячейки можно с помощью цикла For Each… Next:

Евгений, спасибо за ссылку на интересный прием.

Евгений, день добрый.
Подскажите пожалуйста, как назначить ячейке цвет через значение RGB, которое в ней записано. Или цвет другой ячейки.

Читайте также:  Как установить тождественность профессии

Привет, Александр!
Используйте функцию InStr, чтобы найти положение разделителей, а дальше функции Left и Mid. Смотрите пример с пробелом в качестве разделителя:

Или еще проще с помощью функции Split:

Добрый день!
подскажите, пожалуйста, как можно выводить из таблицы (150 столбцов х 150 строк) адрес ячеек (списком), если они имеют заливку определенного цвета.
Заранее спасибо!

Привет, Валентина!
Используйте два цикла For…Next. Определить числовой код цвета можно с помощью выделения одной из ячеек с нужным цветом.

Валентина, замените в коде имя “Лист2” на имя своего листа.

Евгений. Долгое время мучаюсь реализацией следующего сценария: в таблице Excel, которая является базой данных пациентов отделения есть столбец “G” в котором лаборанты отмечают исследования выполненные с контрастом “(С+)” и без “(C-)” и далее в столбце “N” они отмечаются количество использованного контраста “от 50мл до 200мл”; для удобства ввода и уменьшения числа непреднамеренных ошибок в столбцах реализована функция проверки данных что бы сотрудники могли выбирать уже готовые значения из списка и если ошибутся то выскочит ошибка; тем не менее сотрудники умудряются при заполнении таблицы не вносить количество использованного контраста. Вопрос заключается в том, как подкрасить ячейку для ввода количества контраста красным цветом при условии, что в ячейке столбца G фигурирует (С+) с целью акцентировать на этом внимание.
Заранее спасибо за ответ.

Добрый день, Алексей!
Примените условное форматирование:

Если в ячейке столбца “G” будет выбрано “(С+)”, то ячейка той же строки в столбце “N” подкрасится красным цветом. После ввода значения в ячейку столбца “N”, ее цвет изменится на первоначальный.

Спасибо Евгений! Ваш пример многое прояснил (в т.ч надо читать Уокенбаха и не филонить). Мне удалось заставить работать этот сценарий не так изящно как у Вас т.е создал для каждой отдельной переменной свое правило: пр. для ГМ. (С+) –> =ЕСЛИ(И(G5066=”ГМ. (С+)”;N5066=””);”Истина”;”Ложь”)
МТ. (С+) –> =ЕСЛИ(И(G5066=”МТ. (С+)”;N5066=””);”Истина”;”Ложь”) и т.д всего 8 правил для каждого конкретного случая.
И применил их всех для столбца N:N

Источник

Функция RGB RGB function

Возвращает целое число типа Long, представляющее значение цвета RGB. Returns a Long whole number representing an RGB color value.

Синтаксис Syntax

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

Синтаксис функции RGB состоит из следующих именованных аргументов: The RGB function syntax has these named arguments:

Часть Part Описание Description
отображаем red Обязательный аргумент; Variant (Integer). Required; Variant (Integer). Число в диапазоне 0–255 включительно, представляющее красный компонент цвета. Number in the range 0–255, inclusive, that represents the red component of the color.
Интенсив green Обязательный аргумент; Variant (Integer). Required; Variant (Integer). Число в диапазоне 0–255 включительно, представляющее зеленый компонент цвета. Number in the range 0–255, inclusive, that represents the green component of the color.
компонентов blue Обязательный аргумент; Variant (Integer). Required; Variant (Integer). Число в диапазоне 0–255 включительно, представляющее синий компонент цвета. Number in the range 0–255, inclusive, that represents the blue component of the color.

Примечания Remarks

Для методов и свойств приложения, принимающих спецификацию цвета, эта спецификация должна быть числом, представляющим значение цвета RGB. Application methods and properties that accept a color specification expect that specification to be a number representing an RGB color value. Значение цвета RGB указывает относительную интенсивность красного, зеленого и синего, чтобы вызвать определенный цвет, который должен отображаться. An RGB color value specifies the relative intensity of red, green, and blue to cause a specific color to be displayed.

Предполагается, что значение для любого аргумента в RGB, превышающее 255, должно быть 255. The value for any argument to RGB that exceeds 255 is assumed to be 255.

В следующей таблице перечислены некоторые стандартные цвета и значения красного, зеленого и синего, которые они включают: The following table lists some standard colors and the red, green, and blue values they include:

Цвет Color Значение красного Red value Значение зеленого Green value Значение синего Blue value
Черный Black нуль 0 нуль 0 нуль 0
Синий Blue нуль 0 нуль 0 255 255
Зеленый Green нуль 0 255 255 нуль 0
Cyan Cyan нуль 0 255 255 255 255
Красный Red 255 255 нуль 0 нуль 0
Пурпурный Magenta 255 255 нуль 0 255 255
Желтый Yellow 255 255 255 255 нуль 0
Белый White 255 255 255 255 255 255

Возвращаемые этой функцией значения цвета RGB не совместимы со значениями, используемыми операционной системой Macintosh. The RGB color values returned by this function are incompatible with those used by the Macintosh operating system. Они могут использоваться в контексте приложений Microsoft для Macintosh, но не должны использоваться при непосредственной передачи изменений цвета в операционную систему Macintosh. They may be used within the context of Microsoft applications for the Macintosh, but should not be used when communicating color changes directly to the Macintosh operating system.

Пример Example

См. также See also

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник