Как в excel макрос для цветов

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


Выделение разными цветами заливки повторяющихся значений (дубликатов)

Как известно, в последних версиях Excel легко выделить дубликаты цветом, — для этого есть специальная опция в «условном форматировании».
Достаточно выделить диапазон, задать цвет заливки, — и все повторяющиеся (или, наоборот, уникальные) значения будут выделены.

Но иногда требуется, чтобы различные повторяющиеся значения были выделены РАЗНЫМИ ЦВЕТАМИ.
В этом случае, без макросов не обойтись.

Ниже приведён макрос, который как раз и решает эту задачу
(достаточно выделить диапазон ячеек, запустить макрос, — и повторяющиеся непустые ячейки получат одинаковый цвет заливки)

Sub ВыделитьДубликатыРазнымиЦветами()
    On Error Resume Next
    ' массив цветов, используемых для заливки ячеек-дубликатов
    Colors = Array(12900829, 15849925, 14408946, 14610923, 15986394, 14281213, 14277081, _
                   9944516, 14994616, 12040422, 12379352, 15921906, 14336204, 15261367, 14281213)
 
    Dim coll As New Collection, dupes As New Collection, _
        cols As New Collection, ra As Range, cell As Range, n&
    Err.Clear: Set ra = Intersect(Selection, ActiveSheet.UsedRange)
    If Err Then Exit Sub
 
    ra.Interior.ColorIndex = xlColorIndexNone: Application.ScreenUpdating = False
    For Each cell In ra.Cells ' запонимаем значение дубликатов в коллекции dupes
        Err.Clear: If Len(Trim(cell)) Then coll.Add CStr(cell.Value), CStr(cell.Value)
        If Err Then dupes.Add CStr(cell.Value), CStr(cell.Value)
    Next cell
    For i& = 1 To dupes.Count ' заполняем коллекцию cols цветами для разных дубликатов
        n = n Mod (UBound(Colors) + 1): cols.Add Colors(n), dupes(i): n = n + 1
    Next
    For Each cell In ra.Cells ' окрашиваем ячейки, если для её значения назначен цвет
        cell.Interior.color = cols(CStr(cell.Value))
    Next cell
    Application.ScreenUpdating = True
End Sub

vba color indexWhen you’re working with Microsoft Excel on a daily basis, one of the most frustrating experiences is not being able to find the data you need, when you need it. Of course, there are various ways for searching and sorting the contents of a spreadsheet, so you will eventually find what you are looking for, but what if there was an easier way to do it?

Meet the Excel VBA ColorIndex property – a feature that will allow you to assign colors to various elements of a spreadsheet, and define certain actions to be performed, based on the colors of those elements. In case you’re not yet familiar with VBA for Excel, consider taking this 2-part online course on VBA for Excel to get a clearly-explained non-technical approach to VBA and macros in Excel, as using the VBA ColorIndex property effectively relies on having a good understanding of Excel VBA.

VBA ColorIndex in a Nutshell

The VBA ColorIndex is a property used to assign a certain color to some elements, such as a cell’s background or its text, from a palette of 56 pre-defined colors, via VBA programming. Unlike the Color property, which performs a fairly similar action, the ColorIndex property has the advantage of being easier to use, at the cost of being a bit less customizable. This is because the Color property allows the user to define an exact color using numeric, hexadecimal or RGB values, while ColorIndex assigns a color based on its corresponding number in the palette. ColorIndex still allows a fair amount of customization by allowing the user to manually define the 56 colors of the palette. Having an exact shade of a color might not be crucial if you only plan to use colors to be able to quickly differentiate one type of data from another, but if you work in a medium that requires the use of accurate colors, such as printing, you might consider using the Color property instead, to make sure you get exactly the color you need. You can learn more about the science of colors from this online course.

The Color Palette

In order to use the ColorIndex property, you will need to know each color’s corresponding value in the color palette. You can find out these values by opening the VBA editor (Alt + F11) and running the following code:

Sub DisplayPalette()
Dim N As Long
For N = 1 To 56
Cells(N, 1).Interior.ColorIndex = N
Next N
End Sub

This will create a macro called DisplayPalette. When you run that macro, you will notice that the cells 1 to 56 of the first column have changed color; the row number of each cell is the corresponding ColorIndex value for that specific color, so you would have to set the ColorIndex parameter to 1 for black, 3 for red, 5 for blue and so on. If the colors you obtain by running the code don’t match the ones described here, it means that your color palette may have been modified, but there’s no need to worry, as you only need to add the following line of code to bring it back to its default settings:

ActiveWorkbook.ResetColors

Applying Colors to Elements

Now that you learned how to display the color palette, it’s time to learn how to use it. Knowing how to apply colors to your spreadsheet with the help of VBA code will greatly increase your productivity; after all, color-coding various elements is one of the tricks Excel experts use to speed up their routines. In fact, it is one of the practices that are used on Wall Street, along with a few other tips and tricks – check out this online course on increasing Excel proficiency and you will be an Excel expert too.

Applying a color to an element is quite simple; here are the syntaxes for 3 of the most common elements – cell backgrounds, fonts and borders, used in a practical example:

Sub DisplayPalette()
Dim N As Long
For N = 1 To 56
Cells(N, 1).Interior.ColorIndex = N
ActiveWorkbook.ResetColors
Worksheets("Sheet1").Range("D5") = "Udemy Blog"
Worksheets("Sheet1").Range("C4:E6").Interior.ColorIndex = 15
Worksheets("Sheet1").Range("D5").Interior.ColorIndex = 10
Worksheets("Sheet1").Range("D5").Font.ColorIndex = 2
Worksheets(1).Range("C4:E6").Borders.ColorIndex = 1
Next N
End Sub

The result should look something like this:

c222

As you can see, the code generated the color palette on column A, reset it to its default values, added a piece of text to a cell and applied background colors to cells (using the Interior property), to fonts (using the Font property) and to borders (using the Borders property) – everything by using simple values from the ColorIndex. 

 Customizing the Color Palette

The Color Palette used by the ColorIndex property can be customized to fit your needs, thus allowing you to define a certain color one time, and then just use its corresponding index number to easily apply it afterwards to your elements.

In order to customize a color in the palette, the following code is used:

ActiveWorkbook.Colors(3) = RGB(0, 0, 255)

You can use RGB combinations to define custom concentrations of red (the first element), green (the second element) and blue (the third element), on a scale from 0 to 255, in order to obtain a new color; the newly-obtained color will replace a color in the default ColorIndex, as per the specifications of the code. In this particular example, the 3rd color of the ColorIndex default palette, red, will be replaced by the color defined by the RGB code – blue.

For example, applying the following code will replace the 15th color of the ColorIndex, a light shade of grey, with a shade of purple.

ActiveWorkbook.Colors(15) = RGB(140, 0, 255)

With this code, of you will need to use purple within your spreadsheet again , instead of using the Color property to define the RGB value of the color every time you need it, you will simply set the parameter of the ColorIndex property to 15. 

c333

To learn how to use VBA programming to manipulate data, depending on the colors assigned to it via the ColorIndex property, check out this ultimate Excel VBA online course.

VBA Color Palette vs. User Color Palette

If you have been wondering why should you complicate yourself with VBA programming to assign colors and not just do the task manually, with the “Fill Color” and “Font Color” options from the graphical interface of the Excel, the answer is simple: the result won’t be the same.

Microsoft Excel uses two different color palettes: one that is accessible via the graphical user interface, and one that can be accessed via VBA programming. Despite the fact that, by default, both palettes look the same and have the same color order, they are two completely different elements. An interesting fact is that the two color palettes are connected to each other, but in a one-way manner, meaning that making changes to some colors in the VBA palette will also apply the changes to the other palette, while changes to the other palette won’t affect the VBA palette. For this reason, it is best to use the VBA color palette.

Colors – Are They For You?

As you can see, knowing how to master colors, especially when doing so directly from VBA programming, can prove to be a huge performance boost in your day-to-day productivity, but if you want to go even more visual, consider taking an in-depth online course on Excel charts as well.

If you’re still not convinced of the utility of colors in a spreadsheet, or you think it is just not your thing, check out Richa’s blog post on sorting data in Excel – you will find plenty of other ways to do it.

Содержание

  1. VBA Excel. Цвет ячейки
  2. Свойство .Interior.Color объекта Range
  3. Заливка ячейки цветом в VBA Excel
  4. Вывод сообщений о числовых значениях цветов
  5. Использование предопределенных констант
  6. Цветовая модель RGB
  7. Свойство .Interior.ColorIndex объекта Range
  8. Свойство Interior.Color (Excel)
  9. Синтаксис
  10. Примечания
  11. Пример
  12. Поддержка и обратная связь
  13. Цвет ячейки в Excel
  14. Макросы для изменения формата ячеек в таблице Excel
  15. VBA-макрос: заливка, шрифт, линии границ, ширина столбцов и высота строк
  16. Описание VBA-макроса для формата ячеек таблицы Excel
  17. Модификация исходного кода макроса для форматирования

VBA 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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Открывается в новом окне Палитра Excel

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

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

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

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

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

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

Источник

Свойство Interior.Color (Excel)

Возвращает или задает основной цвет объекта, как показано в таблице в разделе примечаний. Используйте функцию RGB для создания значения цвета. Для чтения и записи, Variant.

Синтаксис

expression. Цвет

Выражение Выражение, возвращающее объект Interior .

Примечания

Object Цвет
Border Цвет границы.
Borders Цвет всех четырех границ диапазона. Если они не совпадают по цвету, функция Color возвращает значение 0 (ноль).
Font Цвет шрифта.
Interior Цвет заливки ячейки или цвет заливки объекта рисунка.
Вкладка Цвет вкладки.

Пример

В этом примере задается цвет меток галочки на оси значений на диаграмме Chart1.

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Цвет ячейки в Excel

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Макросы для изменения формата ячеек в таблице Excel

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

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

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

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

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

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

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

В редакторе создайте новый модуль выбрав инструмент «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

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

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

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

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

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

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

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

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

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

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

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

Описание настройки форматирования для линий границ ячеек. Мы будем получать разные дополнительные типы линий границ если для свойства 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-кодом:

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

.Columns (1).Font.Bold = True

.Columns (1).Font.Italic = True

.Columns (1).Interior.Color = vbCyan

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

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

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-макросов. Уверен, что теперь вы сможете самостоятельно найти практическое применение этим исходным кодам.

Источник

Skip to content

На чтение 2 мин. Просмотров 1k.

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

Содержание

  1. Как макрос работает
  2. Как этот код работает
  3. Как использовать

Как макрос работает

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

Sub CheredovanieCvetaStrok()
'Шаг 1: Объявляем переменные
Dim MyRange As Range
Dim MyRow As Range
'Шаг 2: Определение целевого диапазона
Set MyRange = Selection
'Шаг 3: Запуск цикла через диапазон
For Each MyRow In MyRange.Rows
'Шаг 4: Поверьте, является ли номер строки четным листом
If MyRow.Row Mod 2 = 0 Then
'Шаг 5: Примените соответствующий альтернативный цвет
MyRow.Interior.ColorIndex = 35
Else
MyRow.Interior.ColorIndex = 2
End If
'Шаг 6: Возвращаемся назад, чтобы получить следующую строку
Next MyRow
End Sub

Как этот код работает

  1. Сначала мы объявляем две переменные объекта Range. Одна из них, называется MyRange, держит весь целевой диапазон. Другая называется MyCell, держит каждую ячейку в диапазоне, так как макрос проходит через них один за другим.
  2. Шаг 2 заполняет переменную MyRange с целевым диапазоном. В этом примере мы используем Выбранный диапазон — диапазон, который был выбран в электронной таблице. Вы можете легко установить переменную MyRange в определенном диапазоне, таких как Range («A1: Z100»). Кроме того, если ваш целевой диапазон является именованный диапазон, можно просто ввести свое имя: Range («MyNamedRange»).
  3. На этом этапе, макрокоманда начинается через каждую ячейку в целевом диапазоне, активизируя каждую ячейку.
  4. Когда ячейка активирована, мы определяем, является ли номер текущей строки четным.
  5. Если номер строки четный, используем альтернативный зеленый цвет — индекс 35, если нет, то он используем индекс цвета 2.
  6. На шаге 6 макрос возвращается назад, чтобы получить следующую ячейку. После того, как все клетки в целевом диапазоне активируются, макрос останавливается.

Как использовать

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши personal.xlb в окне Project.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Понравилась статья? Поделить с друзьями:
  • Как в excel макрос даты
  • Как в excel логическое выражение или
  • Как в excel листы сохранить отдельной книгами
  • Как в excel листать ячейки стрелками
  • Как в excel лист выделить в отдельный файл