Цветная ячейка Vba Excel

Обновлено: 21.11.2024

Всего, чего мы можем достичь с помощью «стандартного» Excel, можно достичь с помощью VBA.

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

Изменить цвет ячейки на основе значения с помощью VBA

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

Цель состоит в том, чтобы выделить ячейки в столбцах от A до столбца C на основе значения в столбце D. Мы определим следующие правила:

  • Если значение в ячейке в столбце D находится в диапазоне от 1 до 5, мы хотим, чтобы соседние ячейки в столбцах от A до C были красными.
  • Если значение в ячейке в столбце D составляет от 5 до 10, мы хотим, чтобы соседние ячейки в столбцах от A до C были синими.
  • Если значение в ячейке в столбце D составляет от 10 до 15, мы хотим, чтобы соседние ячейки в столбцах от A до C были желтыми.

Чтобы определить все это, мы откроем наш модуль, нажав ALT + F11. После этого щелкаем правой кнопкой мыши в любом месте левого окна и переходим Insert >> Module:

В окне, которое появится справа, мы вставим следующий код:

Наш код в модуле выглядит следующим образом:

Для первой части нашего кода мы определяем переменные и устанавливаем их в нашей функции If:

Наша переменная «i» будет определена как long (число), а переменные «cell1» и «cell2» будут определены как диапазон.

Затем мы создадим цикл For Next Loop, который определит, что для чисел от 1 до 15 (хранящихся в переменной «i») мы устанавливаем переменную «cell1» равной столбцу D и любой строке, в которой мы сейчас находимся (переменная «i ") и переменная "cell2" должна быть равна диапазону ячеек в столбцах от A до C в активной строке.

Для следующего шага мы определяем нашу функцию If:

Как видно, мы определяем, что если значение нашей переменной «cell1» (ячейка, расположенная в столбце D) находится между 1 и 5, соседние ячейки в столбцах от A до C (определенные в переменной «cell2» ) выделены красным цветом.

Мы продолжаем и определяем, что если значение от 5 до 10 в ячейке D, то ячейки в столбцах от A до C будут синими.

В последнем случае эти ячейки будут желтыми, если значение в ячейке в столбце D равно от 10 до 15.

Для последней части мы записываем:

Это обеспечит применение нашей формулы If к строкам в диапазоне от 1 до 15.

Все, что нам нужно сделать сейчас, это сделать наш код видимым на нашем листе. Для этого мы перейдем на вкладку «Разработчики» >> «Элементы управления» >> «Вставить» >> «Элементы управления формой» >> «Кнопка»:

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

Мы выберем единственный существующий макрос, который у нас есть — «Цвета», затем щелкните его и нажмите «ОК». Как только мы это сделаем, мы можем изменить имя нашей кнопки, но не на обычное (Button1), а на имя, например, «Форматировать столбцы»:

Теперь, когда мы нажмем на нее, наш код запустится, и мы получим следующие результаты:

Это именно то, что мы определили в нашем коде.

сообщить об этом объявлении

Excel VBA, цвет заливки ячеек

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

Существует несколько способов указать цвет, который вы хотите использовать. Давайте рассмотрим несколько примеров

Дополнительную информацию об использовании цветов в VBA для Excel см. в разделе Цвета VBA Excel.

Приведенный ниже код меняет цвет заливки ячейки «A1» на красный:

'Использование перечисления XlRgbColor
Range("B2").Interior.Color = rgbDarkGreen
'Использование цветовых констант
Range("B3").Interior.Color = vbGreen
'Указание значений RGB
Range("B4").Interior.Color = RGB(255, 0, 0)
'Использование цветового кода
Range("B5").Interior. Color = 15773696
'Использование индекса цвета
Range("B6").Interior.ColorIndex = 6
'Вы также можете указать отсутствие цвета или указать автоматический цвет, используя
Range("B7 ").Interior.ColorIndex = xlNone
Range("B8").Interior.ColorIndex = xlColorIndexAutomatic

Дополнительную информацию о цветовых константах см. в статье Excel VBA ColorConstants.

Полный пример настройки цвета фона ячеек на основе цветовых кодов см. в разделе Цветовой код Excel VBA.

Строка ниже получает цветовой код цвета, использованного для заполнения ячейки A1, и печатает его в ячейке B1:

Ячейки(1, 2) = Диапазон("A1").Внутренний.Цвет

Следующая строка кода делает то же самое:

Ячейки(1, 2) = Диапазон(Ячейки(1, 1), Ячейки(1, 1)).Внутренний.Цвет


Пример получения цвета заливки, используемого в ячейке или диапазоне, см. в статье Excel VBA, получение цветового кода.

Пример:

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

Вот как Excel будет выглядеть после нажатия на синюю тему:

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

Excel поддерживает более 16 миллионов цветов в ячейке; следовательно, вы должны знать, как установить точный цвет в ячейке. Для этого вы можете использовать функцию RGB (красный, зеленый, синий) в VBA, чтобы установить цвет ячейки. Для функции требуется 3 числа от 0 до 255 [например, RGB(234,232,98)]. Ниже приведен практический код, который изменяет цвета ячеек на зеленый, красный и синий.

Вы также можете прочитать этот пост, чтобы узнать, как получить RGB-коды цвета.

Автор: excelsirji

Оставить ответ Отменить ответ

Вам также может понравиться

Индекс цвета в Excel VBA

Код VBA для проверки существования папки

Код VBA для удаления повторяющихся записей

Самый простой способ создать надстройку Excel

Советы по Excel VBA, которые вы должны знать — часть 1

Код VBA для подсчета ячеек по цвету

Код VBA для суммирования ячеек по цвету

Код VBA для удаления файла

Код VBA для добавления границы в диапазон Excel

Защитить лист Excel от ручного ввода, но разрешить программный ввод

Код VBA для защиты листа Excel при ручном вводе, но с возможностью программирования ввода

Код VBA для добавления элементов в элемент управления ListBox в пользовательской форме

Начало работы
О нас

Microsoft Excel ®, MS Outlook ®, MS Access ® и MS Word ®, а также логотип Office являются зарегистрированными товарными знаками корпорации Microsoft в США и/или других странах. ExcelSirji не имеет никакого отношения к Microsoft Corporation

Обзор конфиденциальности

Во время подготовки отчетов или информационных панелей в электронной таблице Excel часто может потребоваться задать цвет фона ячеек. Использование условного форматирования в Excel может оказаться трудным и сложным. Есть много способов изменить цвет фона ячейки, диапазона или столбца, чтобы отчеты выглядели чистыми и профессиональными. Одним из способов достижения этого является использование VBA. используйте свойство Interior, чтобы вернуть объект интерьера, или используйте индекс цвета объекта Interior, чтобы установить цвет фона.

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

Использование свойства цвета

Оглавление

<р>1. Откройте книгу Excel.

<р>2. Нажмите клавиши Alt + F11, чтобы открыть редактор VBA.

<р>3. В свойствах цвета укажите ячейку, которую вы хотите окрасить, чтобы изменить цвет фона. Например,

Подцвет ()

Диапазон ("B3")

Конец подписки

<р>4. Чтобы вы могли изменить цвет фона ячейки, используйте свойство «Интерьер». Вы добавите, что это та же строка, что и Range.

<р>5. Под внутренним свойством есть несколько других методов и свойств. Чтобы задать цвет ячейки, используйте свойство color. Добавьте это после Интерьера.

<р>6. Из диапазона 8 цветов выберите тип цвета по вашему желанию. Например;

Подцвет ()

Диапазон ("B3"). Интерьер. Цвет = vbRed

Конец подписки

<р>7. Запустите код с помощью F5 или вручную. Цвет интерьера в B3 изменится.

<р>8. Чтобы добавить функцию RGB, вам нужно будет ввести смесь красных, зеленых и синих цифр. Например, чтобы изменить цвет шрифта, введите приведенный ниже код.

Использование свойства индекса цвета

Свойство индекса цвета отличается от свойства цвета в Excel. Свойство color использует восемь постоянных цветов, заданных VBA. Он также использует функцию RGB для создания тени.

Свойство Color Index доступно только для VBA. Он может содержать значения от 1 до 56, а числа имеют разные цвета. Вот что вам нужно сделать, чтобы изменить цвет.

<р>1. Откройте книгу Excel.

<р>2. Нажмите клавиши Alt + F11, чтобы открыть редактор VBA.

<р>3. Перейдите на вкладку «Вставка» и нажмите «Модуль», чтобы открыть новый модуль. В новом модуле напишите подкатегорию цвета шрифта VBA. Код должен учитывать ячейку, в которую вы хотите скопировать внутренний цвет. Используйте приведенный ниже код;

Подпрограмма VBAFontColor4 ()

Диапазон ("ячейка"). Выберите

Конец подписки

<р>4. Во второй строке выберите команду «Функция шрифта с выделением». Вот как будет выглядеть код

Подпрограмма VBAFontColor4 ()

Диапазон ("ячейка"). Выберите

Выбор. Шрифт.

Конец подписки

<р>5. Чтобы выбрать и применить цветовой код, нам нужно выбрать функцию ColorIndex вместо цвета. Вы напишете тот же код и добавите его в качестве третьей строки перед последней командой.

Выбор. Шрифт.ColorIndex = 'число, представляющее желаемый цвет

<р>6. Запустите код вручную или нажмите F5, чтобы выполнить процедуру. После завершения внутренний цвет изменится в соответствии с кодом.

Если вы хотите выбрать широкий диапазон значений, скажем, от 1 до 56. Скопируйте приведенный ниже код и вставьте его в окно кода.

Подпрограмма sbPrintColorIndexColors()

Тусклый iCntr

Для iCntr = от 1 до 56

Ячейки (iCntr, 1).Interior.ColorIndex = iCntr

Ячейки (iCntr, 1) = iCntr

Следующий iCntr

Конец подписки

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

Вывод

Приведенная выше статья представляет собой руководство по использованию индекса цвета VBA для копирования внутреннего цвета ячейки. Вы можете решить, использовать ли свойство Color или метод Color Index Property. Оба способа позволят вам раскрасить внутреннюю часть ячейки.

Читайте также: