Как сделать цветной курсор в excel?

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

Подсветка строки в Excel цветом

Чтобы создать свой широкий курсов на целую строку в Excel, необходимо создать макрос и использовать его вместе с условным форматированием. Для примера создадим таблицу с широкими строками и большим количеством столбцов. Нам нужно выделить строку цветом по условию Excel. Например, если активная ячейка находится в строке 2, тогда выделить цветом всю строку 2 (в пределах таблицы или на весь лист). Для примера создадим таблицу с широкими строками и большим количеством столбцов:

Подсветка текущей строки в Excel цветом:

  1. Откройте редактор VBA для этого выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11.
  2. В правом окне к активному проекту добавьте новый модуль. Для того в редакторе VBA выберите опцию: «Insert»-«Module»
  3. В окне модуля вставьте этот VBA-код макроса:
  4. Не закрывая окно VBA-редактора перейдите на рабочий лист с исходной таблицей. Выделите целую вторую строку таблицы A2:H2 и выберите инструмент: «ГЛАВНАЯ»-«Условное форматирование»-«Создать правило»-«Использовать формулу для определения форматированных ячеек:».
  5. В полю ввода введите формулу:
  6. Щелкните по кнопке «Формат» и на вкладке «Заливка» укажите зеленый цвет. На всех окнах жмем ОК.
  7. Скопируйте вторую строку таблицы.
  8. Выделите остальные строки и выберите инструмент: «ГЛАВНАЯ»-«Вставить»-«Специальная вставка»-«Форматы» (или нажмите комбинацию клавиш CTRL+ALT+V, потом отметить форматы и нажать ОК). Или воспользуйтесь инструментом: «ГЛАВНАЯ»-«Буфер обмена»-«Формат по образцу».
  9. Вернитесь к редактору VBA и в окне «Project» дважды щелкните по «Лист1». В появившемся окне вставьте следующий VBA-код макроса:
  10. Сохраните и закройте редактор VBA.

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

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

  1. В модуль где находится код подсветки строки VBA-макроса, добавим код новой функции АктивныйСтолбец:
  2. Добавим новое правило в условном форматировании для нашей таблицы в диапазоне A1:A7. Теперь в новом правиле пишем функцию АктивныйСтолбец(), а вместо функции СТРОКА – СТОЛБЕЦ. И указываем синий цвет форматирования заливки ячейки.
  3. Проверим все созданные правила для таблицы. Перейдите в ячейку A2 и ввыберите инструмент: «ГЛАВНАЯ»-«Условное форматирование»-«Управление правилами». Диспетчер правил условного форматирования должен выглядеть так:
  4. Скопируйте формат столбца A1:A7 в остальные столбцы таблицы диапазона B1:H7. Например, с помощью инструмента: «ГЛАВНАЯ»-«Буфер обмена»-«Формат по образцу».
  5. Результат превышает ожидания. Идеальный курсор для просмотра огромных таблиц с большим количеством данных на множестве строк и столбцов:

Принцип действия создания пользовательского курсора для таблицы

Применяемая в условном форматировании созданная нами функция VBA =АктивнаяСтрока() позволяет нам получить номер текущей строки в которой стала активной любая из ее ячеек. Результат вычисления пользовательской функции =АктивнаяСтрока() сравнивается с результатом функции =СТРОКА(), которая также возвращает номер текущей строки в данном моменте вычисления условного форматирования.

Скачать пример выделения активной строки и столбца цветом

Так как обе функции выполняются при активной ячейке в одной и той же строке их значения равны между собой и возвращают общее логическое значение ИСТИНА. В результате чего происходит выделение строки цветом по условию. Если значение ИСТИНА, тогда присваивается формат цвета для целой активной строки таблицы.

Итак, наша цель — построить инструмент, который умеет отслеживать на экране местоположение активной ячейки, выделяя цветом текущую строку и столбец. В результате на листе появится своего рода «координатная линейка», и просматривать таблицу станет намного удобнее. Решить такую задачу можно по-разному. Например, обратиться к языку VBA (Visual Basic for Application) и написать специальную программу. Но я не сторонник этого подхода. И потому предлагаю начать со стандартных возможностей MS Excel.

Способ 1. Используем условный формат
и функцию «ЯЧЕЙКА()»

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

1. Как-то определить номер строки и колонки, где находится активная ячейка.

2. Изменить формат этих строк и колонок, чтобы обозначить их на рабочем листе.

Для решения первой задачи мы задействуем функцию «ЯЧЕЙКА()» из стандартной библиотеки MS Excel. После этого, зная номер конкретной строки и колонки, мы применим к ним условное форматирование. Как видите, схема проста. Остается реализовать ее практически. Начнем с функции «ЯЧЕЙКА()». Она позволяет получить массу полезной информации о любой ячейке рабочего листа. Например, узнать ее высоту, ширину, номер строки или колонки, числовой формат и т. п. У функции два аргумента:

—  ключевое слово, это может быть «»строка»» или «»столбец»»;

—  адрес ячейки, для которой нужно выяснить ее параметры.

Хитрость состоит в том, что второй аргумент указывать не обязательно. И тогда функция вернет параметры для текущей ячейки. То есть через функцию «ЯЧЕЙКА()» мы сможем определить номер строки и колонки для активной ячейки рабочего листа — именно то, что нам нужно для решения первой задачи.

Переходим к условному форматированию. Этот полезный инструмент Excel позволит нам изменить формат ячеек, если они удовлетворяют определенному условию. Причем (и это очень важно!) условие в данном случае можно задать при помощи формулы. Итак, все инструменты для решения задачи, похоже, у нас есть. Переходим к деталям. Посмотрим, как все это выглядит в программе Excel 2010. Делаем так:

1. Открываем (или создаем новый) документ Excel. Пусть это будет база данных, как на рис. 1.

2. Щелкаем мышкой на ячейке «A1».

3. Переходим в меню «Главная». В группе «Стили» щелкаем на иконке «Условное форматирование» (рис. 2). Откроется меню, как на рис. 3.

4. Из этого меню выбираем пункт «Создать правило…». Откроется окно «Создание правила форматирования», изображенное на рис. 4.

5. В разделе «Выберите тип правила:» находим вариант «Использовать формулу для определения форматируемых ячеек».

6. В поле «Измените описание правила:» вводим формулу «=ИЛИ(ЯЧЕЙКА(«строка»)=СТРОКА(A1);ЯЧЕЙКА(«столбец»)=СТОЛБЕЦ(A1))».

7. Щелкаем на кнопке «Формат…» (рис. 4). Откроется окно «Формат ячеек», изображенное на рис. 5.

8. В этом окне переходим на закладку «Заливка». В предложенной палитре выбираем цвет фона. Например, светло-серый вариант.

9. В окне «Формат ячеек» нажимаем «ОК».

10. В окне «Создание правила форматирования» нажимаем «ОК». Условный формат для ячейки «A1» готов. Остается скопировать его на весь рабочий лист.

11. Оставаясь на ячейке «A1», щелкаем на кнопке «Формат по образцу» (рис. 6).

12. Обводим при помощи мышки (не клавиатуры!) блок ячеек, где нужно создать координатное выделение.

Совет В Excel 2003 (или более ранних версиях этой программы) вызвать инструмент условного форматирования можно через меню «Формат → Условное форматирование…». После чего в окне настроек установить параметр «Условие 1» в положение «формула».

Пару слов о работе формулы и о том, как она связана с условным форматированием. Напомню, что сейчас мы находимся в ячейке «A1», причем формулу мы записали именно для этой ячейки. Теперь по порядку. Начнем с выражения «ЯЧЕЙКА(«строка»)». Поскольку в функции адрес явно не указан, номер строки она определит для активной ячейки рабочего листа. Это значение мы сравним с номером строки для адреса «A1». Этот номер нам вернет функция «СТРОКА(A1)». И тогда, если указатель активной ячейки находится в первой строке рабочего листа, выражение «ЯЧЕЙКА(«строка»)=СТРОКА(A1)» будет истинным. В противном случае эта формула вернет значение «ЛОЖЬ». Вторая часть формулы, по сути, такая же, только проверяет она номер колонки. То есть выражение «ЯЧЕЙКА(«столбец») =СТОЛБЕЦ(A1))» сравнивает номер колонки для активной ячейки с номером столбца для адреса «A1».

Все, что остается сделать, — это объединить оба выражения через операцию «ИЛИ()». И тогда полученная формула будет означать: «если активная ячейка находится в первой строке или в первой колонке рабочего листа, верни значение «ИСТИНА» и включи инструмент условного форматирования». Для ячейки «A1» все верно. Остается распространить это правило на всю область рабочего листа. Для этого мы воспользовались иконкой копирования формата ячеек. В этом случае адреса в формуле условного форматирования будут преобразованы по обычным правилам Excel. То есть, при копировании по вертикали поменяются номера строк. При копировании в стороны изменятся номера колонок. Например, формула для условного форматирования ячейки «B1» станет такой: «=ИЛИ(ЯЧЕЙКА(«строка»)=СТРОКА(B1);ЯЧЕЙКА(«столбец»)= СТОЛБЕЦ(B1))». А в результате строка и колонка текущей ячейки поменяет свой цвет. Это и есть координатное выделение, которое мы хотели получить.

Но это еще не все. Дело в том, что правило условного форматирования срабатывает только при обновлении рабочего листа. Например, в момент пересчета формул. Просто перемещение активной ячейки Excel таким обновлением не считает. И поэтому координатная подсветка работать не будет. Для решения проблемы нам придется искусственно обновить лист. Проще всего это сделать при помощи небольшого макроса, добавив его в свойства рабочего листа. Для этого делаем так:

1. Щелкаем правой кнопкой мышки на листе с параметрами условного форматирования. Откроется контекстное меню, как на рис. 7.

2. Из этого меню выбираем пункт «Исходный текст». Откроется окно редактора Visual Basic.

3. В этом окне вставляем такой текст:

«Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ActiveCell.Calculate

End Sub».

4. Закрываем окно Visual Basic. На предложение сохранить изменения отвечаем утвердительно.

Важно! Текст модуля на Visual Basic нужно вводить без окаймляющих кавычек.

Теперь при любом перемещении активной ячейки будет активировано условное форматирование, а на листе появится координатное выделение строк и колонок, как показано на рис. 8. Задача решена.

Посмотрим, что мы получили на самом деле, каковы достоинства и недостатки нашего подхода. Вначале о преимуществах, среди которых я бы указал такие:

—  инструмент условного форматирования не нарушает функционал таблицы, работают все приемы копирования, перемещения ячеек;

—  работа с условными форматами не нарушает форматирование таблицы;

—  наш вариант реализации координатной подсветки правильно работает с таблицами, где есть объединенные ячейки, а это для бухгалтера очень важно;

—  макросы на VBA нужны в минимальном объеме, прикрепить их к рабочему листу не составляет труда.

Что касается недостатков, они тоже есть, в частности:

—  формулу для условного форматирования нужно создавать вручную;

—  нет способа быстро включить или отключить координатную подсветку на рабочем листе — для этого нужно удалить правило условного форматирования, а это потребует времени;

—  при копировании ячеек с других рабочих книг или листов для них придется восстанавливать правила условного форматирования.

На мой взгляд, указанные проблемы не относятся к разряду существенных. По личному опыту скажу, что работа с координатным вычислением на базе условного форматирования не вызывает никаких проблем. Тем не менее имеет смысл посмотреть и на другие способы решения задачи. Чем мы сейчас и займемся.

Способ 2. Применяем надстройку «FollowCellPointer»

В результате пятнадцатиминутного общения с Google я обнаружил по меньшей мере десяток вариантов для реализации координатной подсветки с использованием макросов на VBA. Все они отличались в деталях, но принцип был один: для обозначения строки и колонки эти макросы использовали выделение несвязных диапазонов. В ручном режиме это можно сделать, нажав клавишу «Ctrl», а затем щелчком мышки выделить строку и колонку. Такие варианты я отбросил без сожаления — когда на листе выделен несвязный диапазон, не работают операции копирования и перемещения ячеек. А это — огромный недостаток при работе с таблицей. Да и углубляться в тонкости работы с VBA, откровенно говоря, не хотелось бы. Но одна ссылка меня заинтересовала. Речь шла о готовой надстройке «FollowCellPointer», которую раздает на своем сайте Jan Karel Pieterse (Нидерланды). Продукт этот бесплатный, построен он на макросах Excel и позволяет рисовать на листе графические линии для обозначения строки и колонки активной ячейки.

Прежде чем познакомится с этой программой, ее нужно скачать. Для этого делаем так:

1. Заходим на сайт и щелкаем на гиперссылке «free utilities» (рис. 9). Откроется раздел загрузок, который оформлен в виде таблицы.

2. В предложенном перечне находим программу «FollowCellPointer» (рис. 9) и щелкаем на ссылке левой кнопкой мышки. Через некоторое время в папке загрузок вашего браузера появится файл «followcellpointer.zip».

3. Копируем этот файл в любую папку и распаковываем его. Все, надстройка готова для инсталляции.

Важно! Для работы с файлом «followcellpointer.zip» на вашем компьютере должна быть установлена программа-архиватор (WinRar, WinZip или аналогичная).

В подавляющем большинстве случаев такая программа есть. И тогда для распаковки достаточно щелкнуть на имени файла левой кнопкой мышки, затем выбрать из контекстного меню «Извлечь все…» или «Распаковать в текущую папку». В результате в этой папке появится файл «FollowCellPointer.xla». Щелчком мышки загружаем его в MS Excel. Надстройка готова к работе.

Важно! Для работы надстройки в Excel 2010 скопируйте файл «FollowCellPointer.xla» в системную папку дополнений MS Office. По умолчанию путь к этой папке выглядит так: «C:Users…AppDataRoamingMicrosoftAddIns». В этой строке вместо символа «…» нужно поставить имя пользователя для вашей учетной записи Windows.

Дальше делаем так:

1. Открываем или создаем новый документ.

2. Вызываем меню «Файл», затем щелкаем на пункт «Параметры».

3. В окне настроек Excel переходим в раздел «Надстройки» и нажимаем кнопку «Перейти…» (рис. 10). Откроется одноименное окно «Надстройки», как на рис. 10.

4. В этом окне ставим «галочку» возле строки «FollowCellPointer».

5. В окне «Надстройки» нажимаем «ОК».

6. Переходим в меню «Надстройки». Лента этого меню показана на рис. 11. На ней появится дополнительная группа с иконками: «Enable», «Disable», «Anchor», «ClearAnchor», «Format».

7. Щелкаем на иконке «Enable». Возле активной ячейки появятся тонкие линии, как показано на рис. 12. На мой взгляд, весьма изящное решение, вполне заменяет координатную подсветку строк и колонок.

Чтобы отключить этот режим, щелкаем на кнопке «Disable».

Как и большинство программ, «FollowCell- Pointer» содержит ряд полезных режимов и настроек. Вот основные из них.

Инструмент «Anchor» (рис. 11) позволяет зафиксировать обозначение текущей ячейки, после чего продолжить работу в обычном режиме. Такая возможность полезна, например, при анализе связей между ячейками таблицы. Пример использования режима «Anchor» показан на рис. 13.

Кнопка «ClearAnchor» стирает отметку, сделанную в режиме «Anchor».

Последней иконкой, относящейся к «FollowCellPointer», является кнопка «Format». Щелчок на этой кнопке открывает окно «Format Arrows», изображенное на рис. 14. Несмотря на английский интерфейс, здесь все просто. Большинство параметров в этом окне позволяют изменить форму стрелок и линий для отметки текущей ячейки. Приведу вкратце основные настройки, представленные в окне «Format Arrows»:

— «Arrow head style» изменяет форму указателей на линиях, которые ведут к активной ячейке. Возможные варианты: «Diamond» — указатели выглядят как ромбики, «Open» — тонкие стрелки, «Oval» — круглые указатели, «None» — линии будут показаны без указателей, «Triangle» — указатели выглядят как заполненные стрелки (в виде треугольников);

— «Arrow head length» позволяет отрегулировать длину указателей на конце линий. Предусмотрены два варианта: «Short» — короткий, и «Long» — продолговатый;

— «Arrow head width» — здесь можно задать ширину указателя: «Narrow» — тонкий, и «Wide» — широкий;

— «Arrow line width» — этот параметр влияет на толщину линий: «1» — тонкая линия, «2» — линия с полужирным начертанием;

— «Transparency» изменяет способ рисования линий. Параметр может принимать два значения: «Opaque» — рисовать обычные линии, «Transparent» — рисовать полупрозрачные линии.

Кнопка «Line Color» (рис. 14) позволяет выбрать цвет линии из стандартной палитры MS Excel.

Разумеется, настройка параметров — дело сугубо индивидуальное. Мне понравился вариант с полупрозрачными линиями и округлыми окончаниями. А подробный состав моих настроек выглядит так: «Arrow head length» = «Short», «Arrow head width» = «Narrow», «Arrow line width» = «1», «Transparency» = «Transparent».

На сегодня все. Надеюсь, что материал этой статьи сделает вашу работу с большими таблицами проще и удобнее. До новых встреч!

Жду ваших вопросов, замечаний и предложений на bk@id.factor.ua, nictomkar@rambler.ru или на форуме редакции www.bk.factor.ua/forum.

Сегодня мы отвлечемся от формул и макросов, а уделим немного внимания оформлению панели задач. Знали ли вы что можно изменить привычный цвет ленты команд для Excel 2007 и выше? Вот и я узнал об этом только сегодня, как говорится, век живи — век учись. Я сразу же поменял цвет панели на темно-серую схему, т.к. стандартная голубая, порядком поднадоела. Цветовая схема в Excel, как изменить?

Начиная с Excel 2007  разработчики начали задумываться и над дизайном редактора. Теперь вы можете не только скрывать панель инструментов, но и менять ее цвет. Хотя выбор оформления пока небольшой, это все-таки лучше чем ничего.

Цветовая схема в Excel. Как менять?

Изменить вы сможете зайдя в меню Файл, Параметры — раздел Основные в опции «Цветовая схема» указать желаемую цветовую схему из выпадающего списка, как показано на рисунке ниже.

В 2007 и 2010 версиях программы вы можете выбрать из трех вариантов: синяя, серебристая или черная.

Для Excel 2013 цвета/оттенки уже более современные и стильные — белая, светло-серая или темно-серая.

На моем Excel 2016 я уже изменил оформление ленты на темно-серое, при прочих данных: зеленой и белой. Правда в этой версии редактора, такая возможность называется «Тема Office», интересно, чем не устраивало название «Цветовая схема».

Честно говоря, меня очень удивило, что я не знал или забыл о этой возможности (сами знаете плохо, когда не знаешь, да еще и забудешь), что я решил сделать отдельную запись об этом — вдруг кому-то это тоже покажется любопытным. После чего немного полазил в интернете и не нашел, как увеличить количество данных цветов, если кто знает, интересно, напишите в комментариях.

Тема документа Excel, PowerPoint или Word

Изменение цвета панели инструментов (Цветовой схемы) нельзя путать с изменением цветовой темы документа. Пройдите на вкладку Разметка страницы и в разделе Темы можно выбрать тему с определенным стилем цветов, таблиц и диаграмм или же выбрать отдельные цвета оформления документа — файл будет выглядеть в едином стиле.

Очень часто я использую эту возможность MS Office в PowerPoint при создании моих презентаций — т.к. это делает ее более стильной или в Word для единообразного описания сделанной работы в Excel.

Поделитесь нашей статьей в ваших соцсетях:

(Visited 3 177 times, 1 visits today)

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

Данная технология описана на сайте Джордана Голдмайера optionexplicitvba

Зачем вообще использовать ролловер эффект? Основная идея в том, чтобы отобразить какую-нибудь информацию или выделить элемент интерфейса во время наведения на него мышкой. В первом случае данный функционал уже реализован с помощью комментариев. Но в поддержку данной методики скажу, что комментирование ограничено теми инструментами, которые предоставляет нам Excel, в то время как написание макросов ограничено лишь нашей фантазией. Плюс ко всему, данную технику можно использовать для реализации интересных дизайнерских решений.

Итак, преступим. Нам понадобится функция ГИПЕРССЫЛКА, которая создает ссылку и позволяет перейти на документ или страницу, находящуюся на сетевом диске или интернет. Данная функция имеет следующий синтаксис:

ГИПЕРССЫЛКА(адрес, )

где,

Адрес – путь или имя открываемого документа. Может быть как адресом на жестком диске, так и URL сайта.

Имя – необязательный аргумент, текст ссылки, под которым мы можем скрыть адрес.

В ячейке B3, к которой мы хотим применить ролловер эффект, вводим следующую формулу:

=ГИПЕРССЫЛКА(RollOverEffect(); «Наведи курсор»)

Excel выдаст нам ошибку, не обращайте пока на нее внимание.

Далее создаем пользовательскую функцию. Для этого переходим в редактор VBA. (О редакторе VBA, вы можете прочитать в статье про создание макросов в Excel.)  И вставляем следующий код:

1
2
3

Public Function RollOverEffect()
Range(«A1»).Value = «Курсор наведен!»
End Function

Данный код будет вызываться функцией ГИПЕРССЫЛКА, каждый раз, как на ячейку будет наведен курсор. Теперь вернитесь в книгу и поместите мышь на ячейку B3. Наша пользовательская функция отработает свой код, и в ячейке A1 вы увидите надпись Курсор наведен!

Чтобы избежать выдачи ошибки #ЗНАЧ!, немного модернизируем нашу формулу и воспользуемся функцией ЕСЛИОШИБКА. Формула примет следующий вид:

=ЕСЛИОШИБКА(ГИПЕРССЫЛКА(RollOverEffect(); «Наведи курсор»); «Наведи курсор»)

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

Напоследок, пример того как я использовал данную технику для подсвечивания ячейки, над которой находится курсор:

Скачать файл с примером применения ролловер эффекта в excel

Заливка ячейки цветом в VBA Excel. Фон ячейки. Свойства .Interior.Color и .Interior.ColorIndex. Цветовая модель RGB. Стандартная палитра из 56 цветов. Предопределенные константы.

  1. Свойство .Interior.Color объекта Range
    • Заливка ячейки цветом в VBA Excel
    • Вывод сообщений о числовых значениях цветов
    • Использование предопределенных констант
    • Цветовая модель RGB
  2. Свойство .Interior.ColorIndex объекта Range

Свойство .Interior.Color объекта Range

Начиная с Excel 2007 основным способом заливки диапазона или отдельной ячейки цветом (зарисовки, добавления, изменения фона) является использование свойства .Interior.Color объекта Range путем присваивания ему значения цвета в виде десятичного числа от 0 до 16777215 (всего 16777216 цветов).

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

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

  Sub ColorTest1()  Range("A1").Interior.Color = 31569  Range("A4:D8").Interior.Color = 4569325  Range("C12:D17").Cells(4).Interior.Color = 568569  Cells(3, 6).Interior.Color = 12659  End Sub  

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

Есть один интересный нюанс: если присвоить свойству .Interior.Color отрицательное значение от -16777215 до -1, то цвет будет соответствовать значению, равному сумме максимального значения палитры (16777215) и присвоенного отрицательного значения. Например, заливка всех трех ячеек после выполнения следующего кода будет одинакова:

  Sub ColorTest11()  Cells(1, 1).Interior.Color = -12207890  Cells(2, 1).Interior.Color = 16777215 + (-12207890)  Cells(3, 1).Interior.Color = 4569325  End Sub  

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

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

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

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

  Sub ColorTest2()  MsgBox Range("A1").Interior.Color  MsgBox Range("A4:D8").Interior.Color  MsgBox Range("C12:D17").Cells(4).Interior.Color  MsgBox Cells(3, 6).Interior.Color  End Sub  

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

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

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

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

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

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

  Range("A1").Interior.Color = vbGreen  

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

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

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

как сделать цветной курсор в excelПалитра Excel

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

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

  Range("A1").Interior.Color = RGB(100, 150, 200)  

Свойство .Interior.ColorIndex объекта Range

До появления Excel 2007 существовала только ограниченная палитра для заливки ячеек фоном, состоявшая из 56 цветов, которая сохранилась и в настоящее время. Каждому цвету в этой палитре присвоен индекс от 1 до 56. Присвоить цвет ячейке по индексу или вывести сообщение о нем можно с помощью свойства .Interior.ColorIndex:

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

  Range("A1").Interior.ColorIndex = 8  MsgBox Range("A1").Interior.ColorIndex  

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

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

  Sub ColorIndex()  Dim i As Byte  For i = 1 To 56  Cells(i, 1).Interior.ColorIndex = i  Next  End Sub  

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

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