Как изменить цвет ячейки vba excel

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

Заливка ячейки цветом в 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

Палитра 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 цветов, а также о том, как добавить узор в ячейку.


As part of a VBA program, I have to set the background colors of certain cells to green, yellow or red, based on their values (basically a health monitor where green is okay, yellow is borderline and red is dangerous).

I know how to set the values of those cells, but how do I set the background color.

asked Dec 13, 2008 at 11:39

paxdiablo's user avatar

paxdiablopaxdiablo

839k230 gold badges1561 silver badges1929 bronze badges

You can use either:

ActiveCell.Interior.ColorIndex = 28

or

ActiveCell.Interior.Color = RGB(255,0,0)

answered Dec 13, 2008 at 11:43

Vinko Vrsalovic's user avatar

Vinko VrsalovicVinko Vrsalovic

326k53 gold badges332 silver badges370 bronze badges

2

This is a perfect example of where you should use the macro recorder. Turn on the recorder and set the color of the cells through the UI. Stop the recorder and review the macro. It will generate a bunch of extraneous code, but it will also show you syntax that works for what you are trying to accomplish. Strip out what you don’t need and modify (if you need to) what’s left.

answered Apr 18, 2012 at 2:34

Jon Crowell's user avatar

Jon CrowellJon Crowell

21.3k14 gold badges88 silver badges110 bronze badges

Do a quick ‘record macro’ to see the color number associated with the color you’re looking for (yellow highlight is 65535). Then erase the code and put

Sub Name()
Selection.Interior.Color = 65535 '(your number may be different depending on the above)
End Sub

answered Mar 4, 2020 at 15:07

Matt G's user avatar

1

or alternatively you could not bother coding for it and use the ‘conditional formatting’ function in Excel which will set the background colour and font colour based on cell value.

There are only two variables here so set the default to yellow and then overwrite when the value is greater than or less than your threshold values.

answered Dec 30, 2008 at 12:34

It doesn’t work if you use Function, but works if you Sub. However, you cannot call a sub from a cell using formula.

answered Mar 22, 2015 at 18:08

user4700453's user avatar

0

В данном примере описаны макросы для автоматического форматирования или спроса формата для ячеек таблиц Excel средствами VBA.

VBA-макрос: заливка, шрифт, линии границ, ширина столбцов и высота строк

В процессе запыления данных сотрудниками отдела на некоторых листах были изменены форматы ячеек:

запыления планов работ.

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

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

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

Чтобы написать свой код макроса откройте специальный VBA-редактор в Excel: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» или нажмите комбинацию клавиш ALT+F11:

Код Visual Basic.

В редакторе создайте новый модуль выбрав инструмент «Insert»-«Module» и введите в него такой VBA-код макроса:

Sub SbrosFormat()
If TypeName(Selection) <> "Range" Then Exit Sub
With Selection
.HorizontalAlignment = xlVAlignCenter
.VerticalAlignment = xlVAlignCenter
.WrapText = True
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
.Font.ColorIndex = xlColorIndexAutomatic
.Interior.ColorIndex = xlColorIndexAutomatic
.Columns.AutoFit
.Rows.AutoFit
End With
End Sub

VBA-код макроса.

Теперь если нам нужно сбросить форматирование таблицы на исходный формат отображения ее данных, выделите диапазон ячеек A1:E20 и запустите макрос: «РАЗРАБОЧТИК»-«Код»-«Макросы»-«SbrosFormat»-«Выполнить». Результат работы макроса изображен ниже на рисунке:

сбросить форматирование таблицы на исходный формат.

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



Описание VBA-макроса для формата ячеек таблицы Excel

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

  1. Текст в значениях ячеек выравнивается по центру горизонтально и вертикально.
  2. Включен построчный перенос текста.
  3. Все границы ячеек получают черную обычной толщины непрерывную линию с черным цветом.
  4. Сброс цвета шрифта на авто.
  5. Удаляется любая заливка ячеек.
  6. Ширина столбцов автоматически настраивается под текст в ячейках.
  7. Автоматически настроить высоту строк по содержимому ячеек.

Модификация исходного кода макроса для форматирования

Если необходимо сделать так чтобы текст выравнивался не по центру относительно горизонтали, а по правую сторону ячейки, тогда измените константу xlHAlignCenter на xlHAlignRight. Она находиться в свойстве .HorizontalAlignment. Сделайте это следующим образом:

.HorizontalAlignment = xlHAlignRight.

Таким же образом можно выровнять текст по левую сторону изменив значение константы на xlHAlignLeft. Или можно выровнять положение текста по ширине ячейки используя константу xlHAlignJustify.

Чтобы макрос выравнивал текст в ячейках по вертикали к низу, измените строку кода, отвечающую за данную настройку форматирования. Измените константу, которая присваивается к свойству VerticalAlignment в следующий способ:

Если хотите выровнять текс к верху ячейки, тогда воспользуйтесь константой xlHAlignTop.

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

.Borders.LineStyle = xlDash

.Borders.Color = vbBlue

.Borders.Weight = xlMedium

Описание настройки форматирования для линий границ ячеек. Мы будем получать разные дополнительные типы линий границ если для свойства LineStyle присваивать такие константы:

  • xlDoshDot – применяется для рисования пунктирных линий в границах ячеек;
  • xlDouble – рисует двойную линию;
  • xlHairLine – рисует тонкую линию;
  • xlThick – для рисования очень толстой линии.

Для настройки цвета линий Excel предлагает всего 8 констант для определенных цветов. Константы для настройки цвета линий границ для свойства Color:

  • vbBlack – черный;
  • vbWhite – белый;
  • vbRed – красный;
  • vbGreen –зеленый;
  • vbBlue – синий;
  • vbYellow – желтый;
  • vbMagenta – алый;
  • vbCyan – голубой.

Но при необходимости присвоить линиям границ другие цвета можно вместо константы для свойства Color записать функцию RGB(). Достаточно лишь в аргументе этой функции указать код цвета по шкале от 0 и до 255.

Если нужно применить толстую линию только для границ выделенного диапазона, тогда перед инструкцией End With добавьте следующую строку кода:

.BorderAround xlContinuous, xlMedium, vbBlack

Описание: В первом аргументе для метода BorderAround можно записать также другой стиль линии. Во втором – толщину линии, а в третьем – цвет. Константы, которые можно присвоить в качестве значений для этих аргументов можно использовать те же, которые мы использовали для свойств: LineStyle, Weight, Color.

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

.Rows(1).Font.Bold = True

.Rows(1).Font.Italic = True

.Rows(1).Interior.Color = vbCyan

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

.Columns (1).Font.Bold = True

.Columns (1).Font.Italic = True

.Columns (1).Interior.Color = vbCyan

Если нужно задать особенный формат для экспонирования последней строки выделенного диапазона, тогда измените число 1 в аргументе свойства Rows на число всех выделенных строк .Rows.Count. Например, добавьте в конец кода еще такую строку:

.Rows(.Rows.Count).Font.Bold = True

Полная версия модифицированного кода макроса выглядит так:

Sub SbrosFormat()
If TypeName(Selection) <> "Range" Then Exit Sub
With Selection
.HorizontalAlignment = xlVAlignCenter
.VerticalAlignment = xlVAlignCenter
.WrapText = True
.Borders.LineStyle = xlDash
.Borders.Color = vbBlue
.Borders.Weight = xlMedium
.Font.ColorIndex = xlColorIndexAutomatic
.Interior.ColorIndex = xlColorIndexAutomatic
.Columns.AutoFit
.Rows.AutoFit
.BorderAround xlContinuous, xlMedium, vbBlack
.Rows(1).Font.Bold = True
.Rows(1).Font.Italic = True
.Rows(1).Interior.Color = vbCyan
.Columns(1).Font.Bold = True
.Columns(1).Font.Italic = True
.Columns(1).Interior.Color = vbCyan
.Rows(.Rows.Count).Font.Bold = True
End With
End Sub

Пример работы измененного кода VBA-макроса:

Пример после изменений в коде.

В данном примере вы ознакомились с базовыми возможностями форматирования с помощью VBA-макросов. Уверен, что теперь вы сможете самостоятельно найти практическое применение этим исходным кодам.

VBA RGB

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.

VBA RGB Syntax

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.

VBA RGB Basic Colors

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:

VBA RGB Cells

Step 1: Insert a new module inside Visual Basic Editor (VBE). Click on Insert tab > select Module.

Insert Module

Step 2: Now in the newly opened Module write the subprocedure of VBA RGB.

Code:

Sub VBA_RGB()

End Sub

VBA RGB Example 1-1

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

VBA RGB Example 1-2

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

VBA RGB Example 1-3

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

VBA RGB Example 1-4

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.

VBA RGB Example 1-5

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

VBA RGB Example 2-1

Step 2: Now select the same sets of cell range from A1 to A10.

Code:

Sub VBA_RGB2()

Range("A1:A10").

End Sub

Range Example 2-2

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

Interior Color Example 2-3

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

VBA RGB Example 2-4

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.

Interior Color Example 2-5

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

VBA RGB Example 2-6

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.

Interior Color Example 2-7

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 –

  1. How to Use VBA Login?
  2. VBA Month | Examples With Excel Template
  3. How to Use Create Object Function in VBA Excel?
  4. How to Use VBA IsError Function?
 

Antero

Пользователь

Сообщений: 22
Регистрация: 09.11.2015

#1

09.11.2015 14:37:34

Здравствуйте.
столкнулся с задачкой которая мне не по силам ((
Суть задачи такова :
нужно изменить цвет ячеек в диапазоне Ax:Mx в тех строках листа где пользователь выделил ячейки (пользователь может выделить и более одной ячейки в строке, но это не имеет значение — главное именно то что ячейки выделены в нужных строках)

До этого я работал только с одной строкой где выбрана ячейка и использовал вот такой код:

Код
Dim arow As Integer
Dim nrow As String
arow = ActiveCell.Row
nrow = "A" & arow & ":M" & arow
ActiveSheet.Range(nrow).Interior.Color = RGB(198, 224, 180)
 

МВТ

Пользователь

Сообщений: 1198
Регистрация: 01.02.2015

#2

09.11.2015 14:44:37

Как-то так

Код
Sub tt()
    Dim Rng As Range
    ActiveSheet.UsedRange.EntireRow.Interior.Color = xlNone
    For Each Rng In Selection.Areas
        Rng.EntireRow.Interior.Color = RGB(198, 224, 180)
    Next
End Sub

 

Antero

Пользователь

Сообщений: 22
Регистрация: 09.11.2015

А как сделать так, что бы цвет менялся только в определенном диапазоне ячеек A:M

Изменено: Antero09.11.2015 15:15:31

 

МВТ

Пользователь

Сообщений: 1198
Регистрация: 01.02.2015

#4

09.11.2015 15:28:50

Тогда так

Код
Sub tt()
    Dim Rng As Range, Rng1 As Range
    ActiveSheet.UsedRange.EntireRow.Interior.Color = xlNone
    For Each Rng In Selection.Areas
        Set Rng1 = Intersect(Rng.EntireRow, Range("A:M"))
        If Not Rng1 Is Nothing Then Rng1.Interior.Color = RGB(198, 224, 180)
    Next
End Sub

 

Antero

Пользователь

Сообщений: 22
Регистрация: 09.11.2015

Большое вам спасибо MBT
Попробую разобраться в коде — тут практически все команды я вижу впервые ))

Изменено: Antero09.11.2015 15:49:56

 

МВТ

Пользователь

Сообщений: 1198
Регистрация: 01.02.2015

#6

09.11.2015 15:55:38

На самом деле, вот эта проверка написана по привычке проверять диапазоны

Код
If Not Rng1 Is Nothing Then Rng1.Interior.Color = RGB(198, 224, 180)

Можно просто

Код
Rng1.Interior.Color = RGB(198, 224, 180)
 

Antero

Пользователь

Сообщений: 22
Регистрация: 09.11.2015

#7

09.11.2015 16:18:38

Цитата
МВТ написал: Можно просто

Да -так более понятно ))
Я опробовал код в действии — все замечательно ! И под это дело мне пришла в голову мысль как можно еще улучшить таблицу, но для этого нужно под конец операции по смене цвета сделать так, что бы была выделена строка которая находится ближе к началу.
Например мы поменяли цвет в ячейках A20:M20, A18:M18, A17:M17, A8:M8 — нужно что бы под конец операции строка A8 была выделена  

 

МВТ

Пользователь

Сообщений: 1198
Регистрация: 01.02.2015

#8

09.11.2015 16:29:45

Так или еще хотелки будут  ;)

Код
Sub tt()
    Dim Rng As Range, Rng1 As Range
    ActiveSheet.UsedRange.EntireRow.Interior.Color = xlNone
    Set Rng1 = Selection
    For Each Rng In Rng1.Areas
       Intersect(Rng.EntireRow, Range("A:M")).Interior.Color = RGB(198, 224, 180)
    Next
    Intersect(Rng1.Rows(1).EntireRow, Range("A:M")).Select
End Sub

 

Antero

Пользователь

Сообщений: 22
Регистрация: 09.11.2015

#9

09.11.2015 16:36:07

Спасибо — дальше буду пытаться разбираться — просто это действие заменяет несколько тех что пришлось бы сделать моим методом .
Еще раз ОГРОМНОЕ спасибо

Цвет Excel VBA RGB

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

В VBA все сводится к кодированию каждой части. Например, если вы хотите сослаться на какую-то часть рабочего листа, мы можем использовать объект RANGE. Если вы хотите изменить цвет шрифта, то мы можем использовать свойство NAME диапазона, затем написать имя шрифта, которое нам нужно, но представьте ситуацию изменения цвета шрифта или цвета фона ячейки для этого, мы можно использовать встроенные цвета VB, такие как vbGreen, vbBlue, vbRed и т. д. Но у нас есть специальная функция для игры с разными цветами, т. е. функция RGB.

VBA-RGB

Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоСсылка на статью должна быть гиперссылкой
Например:
Источник: VBA RGB (wallstreetmojo.com)

Ниже приведен синтаксис функции цвета RGB.

Синтаксис VBA RGB

Как вы можете видеть выше, мы можем предоставить три аргумента, то есть красный, зеленый и синий. Все эти три параметра могут принимать только целые числа в диапазоне от 0 до 255, и результатом этой функции будет тип данных «Длинный».

Изменить цвет ячеек с помощью функции VBA RGB

Вы можете скачать этот шаблон VBA RGB Excel здесь — Шаблон VBA RGB Excel

Пример №1

Например, у нас есть числа от ячейки A1 до A8, как показано на изображении ниже.

Пример VBA RGB 1

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

Сначала запустите процедуру макроса.

Код:

Sub RGB_Example1()

End Sub

Пример VBA RGB 1.0

Во-первых, нам нужно указать диапазон ячеек шрифтов, цвет которых мы хотим изменить. В данном случае наш диапазон ячеек — от A1 до A8, поэтому укажите то же самое, используя ДИАПАЗОН объект.

Код:

Sub RGB_Example1()

  Range ("A1:A8")

End Sub

Пример 1.2

Поставьте точку, чтобы увидеть список IntelliSense объекта RANGE. Из списка IntelliSense мы пытаемся изменить цвет шрифта, поэтому выбираем ШРИФТ свойство из списка.

Код:

Sub RGB_Example1()

  Range("A1:A8").Font

End Sub

Пример VBA RGB 1.3

Как только в этом свойстве было выбрано свойство FONT, мы пытаемся изменить цвет, поэтому выберите свойство цвета шрифта.

Код:

Sub RGB_Example1()

  Range("A1:A8").Font.Color

End Sub

Пример 1.4

Поставьте знак равенства и откройте функцию RGB.

Код:

Sub RGB_Example1()

  Range("A1:A8").Font.Color = RGB(

End Sub

Пример VBA RGB 1.5

Задайте случайные целые числа в диапазоне от 0 до 255 для всех трех аргументов функции RGB.

Код:

Sub RGB_Example1()

  Range("A1:A8").Font.Color = RGB(300, 300, 300)

End Sub

  Пример 1.9

Хорошо, теперь запустите код и посмотрите результат цветов шрифта ячеек от A1 до A8.

Вывод:

Пример VBA RGB 1.7.0

Итак, цвета шрифта изменились с черного на какой-то другой. Цвет зависит от чисел, которые мы даем функции RGB.

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

Пример 1.8

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

Пример #2

Для того же диапазона ячеек посмотрим, как изменить цвет фона этих ячеек.

Во-первых, укажите диапазон ячеек, используя ДИАПАЗОН объект.

Код:

Sub RGB_Example2()

  Range ("A1:A8").

End Sub

Пример VBA RGB 2

На этот раз мы меняем цвет фона упомянутых ячеек, поэтому теперь мы не имеем ничего общего со свойством FONT, чтобы изменить цвет фона, выберите «Интерьер» свойство объекта RANGE.

Код:

Sub RGB_Example2()

  Range("A1:A8").Interior

End Sub

Пример 2.1

После выбора свойства «Интерьер» поставьте точку, чтобы увидеть свойства и методы этого свойства «Интерьер».

Код:

Sub RGB_Example2()

  Range("A1:A8").Interior.

End Sub

Пример VBA RGB 2.2

Поскольку мы меняем внутренний цвет упомянутых ячеек, выберите «Цвет» имущество.

Код:

Sub RGB_Example2()

  Range("A1:A8").Interior.Color

End Sub

Пример 2.3

Чтобы установить свойство внутреннего цвета диапазона ячеек (от A1 до A8), уберите знак равенства и откройте функцию RGB.

Код:

Sub RGB_Example2()

  Range("A1:A8").Interior.Color = RGB(

End Sub

Пример VBA RGB 2.4

Введите случайное число, как вы хотите.

Код:

Sub RGB_Example2()

  Range("A1:A8").Interior.Color = RGB(0, 255, 255)

End Sub

Пример 2.6

Запустите код и увидите цвет фона.

Вывод:

Пример VBA RGB 2.5.0

Цвет фона изменен.

Что нужно помнить здесь

  • RGB означает красный, зеленый и синий.
  • Сочетание этих трех цветов даст разные цвета.
  • Все эти три параметра могут принимать целочисленные значения только от 0 до 255. Любые числа выше этого будут сброшены до 255.

УЗНАТЬ БОЛЬШЕ >>

Post Views: 1 036

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

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

Начнем с простого. На главной панели инструментов ленты находится панель Формата Ячеек:

Excel панель инструментов-изменение ячеек

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

Теперь зададим формат ячейки пользуясь контекстным меню, для чего кликнем правой кнопкой мыши на ячейке и в открывшемся списке выберем «Формат Ячеек»:

формат ячеек в excel

На вкладке «Заливка» можно выбрать цвет фона и узор.

Рассмотрим несколько иную ситуацию. Допустим вы хотите скопировать цвет ячейки (и формат) с существующей и применить к своим ячейкам. Воспользуемся кнопкой на главной панели «Формат по образцу» («метелочка»):

Excel формат по образцу

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

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

Задать цвет ячейке (A1 окрашивается в Желтый):

Sub Макрос2()
Range("A1").Select
With Selection.Interior
.Color = 65535
End With
End Sub

Скопировать формат ячейки (формат A1 копируется на A3):

Sub Макрос1()
Range("A1").Select
Selection.Copy
Range("A3").Select
Selection.PasteSpecial
Application.CutCopyMode = False
End Sub

Теперь комбинируя формат с операторами условия можно написать вычисления (например, суммирование) по условию цвета.

Будем благодарны, если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок ниже.

Спасибо.

Понравилась статья? Поделить с друзьями:

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

  • Как изменить цвет ячеек таблицы html
  • Как изменить цвет ярлыков на телефоне
  • Как изменить цвет ярлыков на рабочем столе андроид
  • Как изменить цвет ярлыков на рабочем столе айфона
  • Как изменить цвет ярлыка ватсап

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии