Заливка ячейки цветом в VBA Excel. Фон ячейки. Свойства .Interior.Color и .Interior.ColorIndex. Цветовая модель RGB. Стандартная палитра. Очистка фона ячейки.
Свойство .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 | Желтый |
xlNone | Нет заливки |
Присваивается цвет ячейке предопределенной константой в VBA Excel точно так же, как и числовым значением:
Пример кода 3:
Range(«A1»).Interior.Color = vbGreen |
Цветовая модель RGB
Цветовая система RGB представляет собой комбинацию различных по интенсивности основных трех цветов: красного, зеленого и синего. Они могут принимать значения от 0 до 255. Если все значения равны 0 — это черный цвет, если все значения равны 255 — это белый цвет.
Выбрать цвет и узнать его значения RGB можно с помощью палитры Excel:
Палитра Excel
Чтобы можно было присвоить ячейке или диапазону цвет с помощью значений RGB, их необходимо перевести в десятичное число, обозначающее цвет. Для этого существует функция VBA Excel, которая так и называется — RGB.
Пример кода 4:
Range(«A1»).Interior.Color = RGB(100, 150, 200) |
Список стандартных цветов с RGB-кодами смотрите в статье: HTML. Коды и названия цветов.
Очистка ячейки (диапазона) от заливки
Для очистки ячейки (диапазона) от заливки используется константа xlNone
:
Range(«A1»).Interior.Color = xlNone |
Свойство .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 будут соответствовать индексу цвета, а ячейка в первом столбце будет залита соответствующим индексу фоном.
Подробнее о стандартной палитре Excel смотрите в статье: Стандартная палитра из 56 цветов, а также о том, как добавить узор в ячейку.
Excel VBA ColorIndex
VBA ColorIndex Property of Excel VBA is very useful to set the fill colors, border colors and font colors. Excel VBA ColorIndex returns index values from 1 to 56, -4105 and -4142. You can set the default colors using VBA enumeration number -4105 ( or xlColorIndexAutomatic). We can set VBA colorIndex -4142 (or xlColorIndexNone) enumeration to clear the colors or set to no colors.
Syntax of Excel VBA ColorIndex
Here is the syntax of ColorIndex property of Excel VBA. You can set or return the color index value of the Excel Objects using the following VBA colorindex syntax.
expression.ColorIndex
Excel VBA Syntax to get the ColorIndex Value of the Excel Font, Interior or Border Color and store it in a Variable:
dblColorValue= expression.ColorIndex
Syntax to set the ColorIndex Value in Excel VBA to Excel Color Objects using Excel ColorIndex value:
expression.ColorIndex= IndexValue (1 to 56,-4105 or -4142)
ColorIndex in Excel VBA
Here are the list of Excel VBA ColorIndex Values and respective Colors:
ColorIndex | Excel VBA Color | ColorIndex | Excel VBA Color |
---|---|---|---|
1 | RGB(0,0,0) | 29 | RGB(128,0,128) |
2 | RGB(255,255,255) | 30 | RGB(128,0,0) |
3 | RGB(255,0,0) | 31 | RGB(0,128,128) |
4 | RGB(0,255,0) | 32 | RGB(0,0,255) |
5 | RGB(0,0,255) | 33 | RGB(0,204,255) |
6 | RGB(255,255,0) | 34 | RGB(204,255,255) |
7 | RGB(255,0,255) | 35 | RGB(204,255,204) |
8 | RGB(0,255,255) | 36 | RGB(255,255,153) |
9 | RGB(128,0,0) | 37 | RGB(153,204,255) |
10 | RGB(0,128,0) | 38 | RGB(255,153,204) |
11 | RGB(0,0,128) | 39 | RGB(204,153,255) |
12 | RGB(128,128,0) | 40 | RGB(255,204,153) |
13 | RGB(128,0,128) | 41 | RGB(51,102,255) |
14 | RGB(0,128,128) | 42 | RGB(51,204,204) |
15 | RGB(192,192,192) | 43 | RGB(153,204,0) |
16 | RGB(128,128,128) | 44 | RGB(255,204,0) |
17 | RGB(153,153,255) | 45 | RGB(255,153,0) |
18 | RGB(153,51,102) | 46 | RGB(255,102,0) |
19 | RGB(255,255,204) | 47 | RGB(102,102,153) |
20 | RGB(204,255,255) | 48 | RGB(150,150,150) |
21 | RGB(102,0,102) | 49 | RGB(0,51,102) |
22 | RGB(255,128,128) | 50 | RGB(51,153,102) |
23 | RGB(0,102,204) | 51 | RGB(0,51,0) |
24 | RGB(204,204,255) | 52 | RGB(51,51,0) |
25 | RGB(0,0,128) | 53 | RGB(153,51,0) |
26 | RGB(255,0,255) | 54 | RGB(153,51,102) |
27 | RGB(255,255,0) | 55 | RGB(51,51,153) |
28 | RGB(0,255,255) | 56 | RGB(51,51,51) |
VBA to Print ColorIndex Table
Here is the Excel VBA Macro to print Excel ColorIndex Values and respective colors in Excel Sheet.
Sub sbExcel_VBA_PrintColorIndex() rowCntr = 2 colCntr = 2 For iCntr = 1 To 56 Cells(rowCntr, colCntr).Interior.ColorIndex = iCntr Cells(rowCntr, colCntr) = iCntr If iCntr > 1 And iCntr Mod 14 = 0 Then colCntr = colCntr + 1 rowCntr = 2 Else rowCntr = rowCntr + 1 End If Next End Sub
Set ColorIndex in Excel VBA
Here are the list of Excel VBA code to set ColorIndex to a Range of cells in Microsoft Excel Sheet.
Font Colors in Excel VBA
We can set the font colors in Excel VBA using ColorIndex property of Font Object. Here is the simple excel vba font color macro to set the font color of a given range A1:E20.
Sub SetFontColorIndex_Range() Range("A1:E20").Font.ColorIndex = 40 End Sub
You can also get the fornt colors using ColorIndex and store it in a variable. Please check the below code snippet:
myVar=Range("A1").Font.ColorIndex
This will return the font color and assign to a variable.
Interior Colors in Excel VBA
We can change the Interior or fill colors of a range using Excel VBA ColorIndex Property. Excel Interior Color macro heps you to change the interior color of an obect.
Sub SetInteriorColorIndex_Range() Range("A1:E20").Interior.ColorIndex = 41 End Sub
You can get Cell colors using Excel VBA, here is the get cell color excel vba macro to get the cell background colors.
myVar=Range("A1:E20").Interior.ColorIndex
Border Colors in Excel VBA
ColorIndex property of Borders is very easy to set the border colors in Excel VBA. Here is
Sub SetBordersColorIndex_Range() Range("A1:E20").Borders.ColorIndex = 42 End Sub
Clear Colors in Excel VBA
Some times we need to fill no colors in Excel, we can clear the Excel Object colors such as font, border and fill colors and set to automatic or no fill color. Here are example macro to clear the color and fill no colors.
Clear Background Color in Excel VBA
We often required to clear the background or fill color of the excel object. We can use the following Excel Macro to clear the background colors and set no interior colors.
Sub SetClearBackgroundColor_ColorIndex_Range() Range("A1:E20").Interior.ColorIndex = -4142 End Sub
The above macro will set the Interior.ColorIndex to -4142 enumeration. Interior.ColorIndex = -4142 is enumeration to clear the background or fill color.
Similarly, we can clear the boder colors using Excel VBA as shown below:
Sub SetClearBorders_ColorIndex_Range() Range("A1:E20").Borders.ColorIndex = -4142 End Sub
We can set the font colors to default or automatic colors using Excel VBA ColorIndex property of Font object. Here is an example:
Sub SetClearFontColorIndex_Range() Range("A1:E20").Font.ColorIndex = -4105 End Sub
VBA Colors
We can set the colors in VBA using many approaches. We use ColorIndex Property, VBA Color Constants or set RGB Colors. We have already seen how to use ColorIndex in Excel VBA. Let us see the Excel VBA Color Constants and RGB Colors.
Excel VBA Color Constants
We can use the VBA Color Constants to set the colors of Excel Objects. Here is an easy to understand example:
Sub sbExcel_VBA_ColorConstants() Cells(2, 4).Interior.Color = vbBlack Cells(3, 4).Interior.Color = vbRed Cells(4, 4).Interior.Color = vbGreen Cells(5, 4).Interior.Color = vbYellow Cells(6, 4).Interior.Color = vbBlue Cells(7, 4).Interior.Color = vbMagenta Cells(8, 4).Interior.Color = vbCyan Cells(9, 4).Interior.Color = vbWhite End Sub
VBA Color Constant | VALUE | Excel VBA Color & RGB |
---|---|---|
vbBlack | 0x0 | RGB(0,0,0) |
vbRed | 0xFF | RGB(255,0,0) |
vbGreen | 0xFF00 | RGB(0,255,0) |
vbYellow | 0xFFFF | RGB(255,255,0) |
vbBlue | 0xFF0000 | RGB(0,0,255) |
vbMagenta | 0xFF00FF | RGB(255,0,255) |
vbCyan | 0xFFFF00 | RGB(0,255,255) |
vbWhite | 0xFFFFFF | RGB(255,255,255) |
RGB Colors in Excel VBA
We have only few color codes when we use Constants or ColorIndex Property. RGB helps us to use all possible combination of colors with Red, Green and Blue. Here is a simple Excel macro to explain the RGB in VBA.
Sub ChangeBackgourdColorRGB_Range() Range("A1:E20").Interior.Color = rgb(125, 205, 99) End Sub
RGB color can be any number between 0 and 255. Here are the list of RGB colors for Excel VBA ColorIndex color codes:
A Powerful & Multi-purpose Templates for project management. Now seamlessly manage your projects, tasks, meetings, presentations, teams, customers, stakeholders and time. This page describes all the amazing new features and options that come with our premium templates.
Save Up to 85% LIMITED TIME OFFER
All-in-One Pack
120+ Project Management Templates
Essential Pack
50+ Project Management Templates
Excel Pack
50+ Excel PM Templates
PowerPoint Pack
50+ Excel PM Templates
MS Word Pack
25+ Word PM Templates
Ultimate Project Management Template
Ultimate Resource Management Template
Project Portfolio Management Templates
Related Posts
- Syntax of Excel VBA ColorIndex
- ColorIndex in Excel VBA
- VBA to Print ColorIndex Table
- Set ColorIndex in Excel VBA
- Font Colors in Excel VBA
- Interior Colors in Excel VBA
- Border Colors in Excel VBA
- Clear Colors in Excel VBA
- Clear Background Color in Excel VBA
- VBA Colors
- Excel VBA Color Constants
- RGB Colors in Excel VBA
VBA Reference
Effortlessly
Manage Your Projects
120+ Project Management Templates
Seamlessly manage your projects with our powerful & multi-purpose templates for project management.
120+ PM Templates Includes:
Effectively Manage Your
Projects and Resources
ANALYSISTABS.COM provides free and premium project management tools, templates and dashboards for effectively managing the projects and analyzing the data.
We’re a crew of professionals expertise in Excel VBA, Business Analysis, Project Management. We’re Sharing our map to Project success with innovative tools, templates, tutorials and tips.
Project Management
Excel VBA
Download Free Excel 2007, 2010, 2013 Add-in for Creating Innovative Dashboards, Tools for Data Mining, Analysis, Visualization. Learn VBA for MS Excel, Word, PowerPoint, Access, Outlook to develop applications for retail, insurance, banking, finance, telecom, healthcare domains.
Page load link
Go to Top
Содержание
- Описание работы функции
- Пример использования
- Свойство .Interior.Color объекта Range
- Заливка ячейки цветом в VBA Excel
- Вывод сообщений о числовых значениях цветов
- Форматирование диапазона
- Нажатие кнопки Enter
- Вставка символа
- Добавление дополнительного символа
- Коды различных цветов в MS Excel 2003
Описание работы функции
Функция =ЦВЕТЗАЛИВКИ(ЯЧЕЙКА) возвращает код цвета заливки выбранной ячейки. Имеет один обязательный аргумент:
- ЯЧЕЙКА – ссылка на ячейку, для которой необходимо применить функцию.
Ниже представлен пример, демонстрирующий работу функции.
Следует обратить внимание на тот факт, что функция не пересчитывается автоматически. Это связано с тем, что изменение цвета заливки ячейки Excel не приводит к пересчету формул. Для пересчета формулы необходимо пользоваться сочетанием клавиш Ctrl+Alt+F9
Пример использования
Так как заливка ячеек значительно упрощает восприятие данных, то пользоваться ей любят практически все пользователи. Однако есть и большой минус – в стандартном функционале Excel отсутствует возможность выполнять операции на основе цвета заливки. Нельзя просуммировать ячейки определенного цвета, посчитать их количество, найти максимальное и так далее.
С помощью функции ЦВЕТЗАЛИВКИ все это становится выполнимым. Например, “протяните” данную формулу с цветом заливки в соседнем столбце и производите вычисления на основе числового кода ячейки.
Свойство .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 |
Вывод сообщений о числовых значениях цветов
Числовые значения цветов запомнить невозможно, поэтому часто возникает вопрос о том, как узнать числовое значение фона ячейки. Следующий код 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.
Форматирование диапазона
Самый известный способ поставить прочерк в ячейке – это присвоить ей текстовый формат. Правда, этот вариант не всегда помогает.
- Выделяем ячейку, в которую нужно поставить прочерк. Кликаем по ней правой кнопкой мыши. В появившемся контекстном меню выбираем пункт «Формат ячейки». Можно вместо этих действий нажать на клавиатуре сочетание клавиш Ctrl+1.
- Запускается окно форматирования. Переходим во вкладку «Число», если оно было открыто в другой вкладке. В блоке параметров «Числовые форматы» выделяем пункт «Текстовый». Жмем на кнопку «OK».
После этого выделенной ячейке будет присвоено свойство текстового формата. Все введенные в нее значения будут восприниматься не как объекты для вычислений, а как простой текст. Теперь в данную область можно вводить символ «-» с клавиатуры и он отобразится именно как прочерк, а не будет восприниматься программой, как знак «минус».
Существует ещё один вариант переформатирования ячейки в текстовый вид. Для этого, находясь во вкладке «Главная», нужно кликнуть по выпадающему списку форматов данных, который расположен на ленте в блоке инструментов «Число». Открывается перечень доступных видов форматирования. В этом списке нужно просто выбрать пункт «Текстовый».
Нажатие кнопки Enter
Но данный способ не во всех случаях работает. Зачастую, даже после проведения этой процедуры при вводе символа «-» вместо нужного пользователю знака появляются все те же ссылки на другие диапазоны. Кроме того, это не всегда удобно, особенно если в таблице ячейки с прочерками чередуются с ячейками, заполненными данными. Во-первых, в этом случае вам придется форматировать каждую из них в отдельности, во-вторых, у ячеек данной таблицы будет разный формат, что тоже не всегда приемлемо. Но можно сделать и по-другому.
- Выделяем ячейку, в которую нужно поставить прочерк. Жмем на кнопку «Выровнять по центру», которая находится на ленте во вкладке «Главная» в группе инструментов «Выравнивание». А также кликаем по кнопке «Выровнять по середине», находящейся в том же блоке. Это нужно для того, чтобы прочерк располагался именно по центру ячейки, как и должно быть, а не слева.
- Набираем в ячейке с клавиатуры символ «-». После этого не делаем никаких движений мышкой, а сразу жмем на кнопку Enter, чтобы перейти на следующую строку. Если вместо этого пользователь кликнет мышкой, то в ячейке, где должен стоять прочерк, опять появится формула.
Данный метод хорош своей простотой и тем, что работает при любом виде форматирования. Но, в то же время, используя его, нужно с осторожностью относиться к редактированию содержимого ячейки, так как из-за одного неправильного действия вместо прочерка может опять отобразиться формула.
Вставка символа
Ещё один вариант написания прочерка в Эксель – это вставка символа.
- Выделяем ячейку, куда нужно вставить прочерк. Переходим во вкладку «Вставка». На ленте в блоке инструментов «Символы» кликаем по кнопке «Символ».
- Находясь во вкладке «Символы», устанавливаем в окне поля «Набор» параметр «Символы рамок». В центральной части окна ищем знак «─» и выделяем его. Затем жмем на кнопку «Вставить».
После этого прочерк отразится в выделенной ячейке.
Существует и другой вариант действий в рамках данного способа. Находясь в окне «Символ», переходим во вкладку «Специальные знаки». В открывшемся списке выделяем пункт «Длинное тире». Жмем на кнопку «Вставить». Результат будет тот же, что и в предыдущем варианте.
Данный способ хорош тем, что не нужно будет опасаться сделанного неправильного движения мышкой. Символ все равно не изменится на формулу. Кроме того, визуально прочерк поставленный данным способом выглядит лучше, чем короткий символ, набранный с клавиатуры. Главный недостаток данного варианта – это потребность выполнить сразу несколько манипуляций, что влечет за собой временные потери.
Добавление дополнительного символа
Кроме того, существует ещё один способ поставить прочерк. Правда, визуально этот вариант не для всех пользователей будет приемлемым, так как предполагает наличие в ячейке, кроме собственно знака «-», ещё одного символа.
- Выделяем ячейку, в которой нужно установить прочерк, и ставим в ней с клавиатуры символ «‘». Он располагается на той же кнопке, что и буква «Э» в кириллической раскладке. Затем тут же без пробела устанавливаем символ «-».
- Жмем на кнопку Enter или выделяем курсором с помощью мыши любую другую ячейку. При использовании данного способа это не принципиально важно. Как видим, после этих действий на листе был установлен знак прочерка, а дополнительный символ «’» заметен лишь в строке формул при выделении ячейки.
Существует целый ряд способов установить в ячейку прочерк, выбор между которыми пользователь может сделать согласно целям использования конкретного документа. Большинство людей при первой неудачной попытке поставить нужный символ пытаются сменить формат ячеек. К сожалению, это далеко не всегда срабатывает. К счастью, существуют и другие варианты выполнения данной задачи: переход на другую строку с помощью кнопки Enter, использование символов через кнопку на ленте, применение дополнительного знака «’». Каждый из этих способов имеет свои достоинства и недостатки, которые были описаны выше. Универсального варианта, который бы максимально подходил для установки прочерка в Экселе во всех возможных ситуациях, не существует.
Коды различных цветов в MS Excel 2003
Коды различных цветов при использовании конструкции типа .Interior.ColorIndex. Бесцветный код: -4142
Источники
- https://micro-solution.ru/projects/addin_vba-excel/color_interior
- https://vremya-ne-zhdet.ru/vba-excel/tsvet-yacheyki-zalivka-fon/
- http://word-office.ru/kak-sdelat-chtoby-vmesto-nulya-byl-procherk-v-excel.html
- http://aqqew.blogspot.com/2011/03/ms-excel-2003.html
bedvit Пользователь Сообщений: 2477 Виталий |
#1 29.04.2015 12:39:26 Уважаемые форумчане, можно получить цвет заливки ячейки Excel таким образом:
Как получить в формате RGB (255,255,255), т.е. R=255, G=255, B=255? Изменено: bedvit — 29.04.2015 12:45:13 «Бритва Оккама» или «Принцип Калашникова»? |
||
Hugo Пользователь Сообщений: 23249 |
#2 29.04.2015 12:55:42 У себя в заметках нашёл такое (файл не качается…):
|
||
bedvit Пользователь Сообщений: 2477 Виталий |
#3 29.04.2015 14:06:53 Hugo, использовал Ваши данные, вышло следующее:
Спасибо! Изменено: bedvit — 29.04.2015 14:10:22 «Бритва Оккама» или «Принцип Калашникова»? |
||
Hugo Пользователь Сообщений: 23249 |
#4 29.04.2015 15:20:44 Не понял зачем там такое сложное
когда можно просто
|
||||
bedvit Пользователь Сообщений: 2477 Виталий |
«Бритва Оккама» или «Принцип Калашникова»? |
Слэн Пользователь Сообщений: 5192 |
#6 29.04.2015 16:05:07 так R.Interior.Color это запись rgb в виде (r+g*256+ b*256^2) таким образом:
Изменено: Слэн — 29.04.2015 16:07:08 Живи и дай жить.. |
||
bedvit Пользователь Сообщений: 2477 Виталий |
#7 29.04.2015 18:42:10 Слэн, отлично! Прикрепленные файлы
Изменено: bedvit — 29.04.2015 18:45:42 «Бритва Оккама» или «Принцип Калашникова»? |
Excel VBA RGB
VBA RGB, where RGB can be expanded by Red, Green, and Blue. And this helps in changing the color of font and cell color as well. In VBA, every color is given a value by bifurcating its shades in red, green, and blue colors. And such we have a total of 56 shades of basic colors whose RGB values range from 0 to 255.
When we apply VBA RGB, we can apply either change the color cell background or we can change the font color. Below we have the syntax of VBA RGB.
As we can see the syntax of RGB which clearly states that for each Red, Green, and Blue, it only considers the value as Integer. And together we can count RGB values as Long data type as well. We will be seeing the implementation of the RGB in upcoming examples. Before we move ahead, let’ see one of the basic colors which we could form using RGB as shown below.
Change Color of background Cell Using RGB
We will learn how to change the color of the background cell in Excel by using the VBA Code.
You can download this VBA RGB Excel Template here – VBA RGB Excel Template
Example #1
In this example, we will see the simplest way to use RGB in VBA. Before we move forward with our Excel VBA RGB Code, first let us have data that we will be using to change the color of their cell or fonts. Below we have listed on some number from cell A1 to A10, which we will be using this example. For this, follow the below steps:
Step 1: Insert a new module inside Visual Basic Editor (VBE). Click on Insert tab > select Module.
Step 2: Now in the newly opened Module write the subprocedure of VBA RGB.
Code:
Sub VBA_RGB() End Sub
Step 3: First we will select the cells, whose color we want to change. Here our range of cell will be from A1 to A10.
Code:
Sub VBA_RGB() Range("A1:A10"). End Sub
Step 4: Now to change the color fonts of the selected cells, we will use the FONT function followed by COLOR.
Code:
Sub VBA_RGB() Range("A1:A10").Font.Color End Sub
Step 5: Now we will be using RGB with some random values to change the color Fonts from cell A1 to A10. We are giving more weightage to Red color and lesser to Green and Blue respectively as shown below.
Code:
Sub VBA_RGB() Range("A1:A10").Font.Color = RGB(200, 100, 50) End Sub
Step 6: Now compile the code by pressing function key F8 and to run the code, click on the Play button located below the menu bar. We would see the color fonts of selected range cells nearer to Brown color.
Example #2
In this example, we will be using the same data set which we saw in example-1 which is located in cell A1 to A10. Earlier we have seen the code to change the font colors but here we will be seeing how to change the color of a cell or background color or interior color. For this, again we can use the same line of code and do some editing or we can use a new module. We will be using the fresh module here. For this, follow the below steps:
Step 1: Open a new module and write the subprocedure for VBA RGB.
Code:
Sub VBA_RGB2() End Sub
Step 2: Now select the same sets of cell range from A1 to A10.
Code:
Sub VBA_RGB2() Range("A1:A10"). End Sub
Step 3: To change the interior color, we will be using the INTERIOR function along with COLOR in the same format which we saw in Example-1.
Code:
Sub VBA_RGB2() Range("A1:A10").Interior.Color End Sub
Step 4: Now we will be using RGB to fill the new color to the selected cell. We will be now giving more weightage to Green color and lesser to Red and Blue colors respectively.
Code:
Sub VBA_RGB2() Range("A1:A10").Interior.Color = RGB(0, 255, 50) End Sub
Step 5: Now compile the code by pressing function key F8 and to run the code, click on the Play button located below the menu bar. we will see the interior color of the selected cells is now changed to a major Green color.
Step 6: Let’s try to change and put the value of Green color more than 255 and see what color we get.
Code:
Sub VBA_RGB2() Range("A1:A10").Interior.Color = RGB(0, 400, 50) End Sub
Step 7: Now again run this updated code. We will notice that interior color selected cells A1 to A10 remains unchanged like previous, which is because RGB value resets to 255 if we use value more than 255.
Pros of VBA RGB
- It is so easy to change the font color and interior color using RGB with the help of code shown in the above examples.
- We can create and fill any type of color in which we want to see a font or in the cell.
- Using RGB we can automate the process of changing the color of cells or fonts which is quite useful to identify the difference of data.
Things to Remember
- We can try any type of combination of Red, Green, and Blue colors in RGB to see different shades of color.
- We can form any type of color using RGB in Excel VBA.
- The value of any color parameter can only be between o and 255. If we try to use value more than 255, it would be reset to 255 again.
- Always save the file in the Macro enable format to retain the written code to be used again multiple times.
Recommended Articles
This is a guide to the VBA RGB. Here we discuss how to change the color of background cell in Excel by using the VBA Code along with practical examples and downloadable excel template. You can also go through our other suggested articles –
- How to Use VBA Login?
- VBA Month | Examples With Excel Template
- How to Use Create Object Function in VBA Excel?
- How to Use VBA IsError Function?