Vba excel если цвет шрифта

Изменение цвета текста (шрифта) в ячейке рабочего листа Excel с помощью кода VBA. Свойства ячейки (диапазона) .Font.Color, .Font.ColorIndex и .Font.TintAndShade.

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

Цвет текста и предопределенные константы

Цвет шрифту в ячейке можно присвоить с помощью предопределенных констант:

Range(«A1:C3»).Font.Color = vbGreen

Range(Cells(4, 1), Cells(6, 3)).Font.Color = vbBlue

Cells(7, 1).Font.Color = vbRed

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

Цвет шрифта и модель RGB

Для изменения цвета текста в ячейке можно использовать цветовую модель RGB:

Range(«A1»).Font.Color = RGB(200, 150, 250)

Cells(2, 1).Font.Color = RGB(200, 150, 100)

Аргументы функции RGB могут принимать значения от 0 до 255. Если все аргументы равны 0, цвет — черный, если все аргументы равны 255, цвет — белый. Функция RGB преобразует числовые значения основных цветов (красного, зеленого и синего) в индекс основной палитры.

Список стандартных цветов с RGB-кодами смотрите в статье: HTML. Коды и названия цветов.

Свойство .Font.ColorIndex

Свойство .Font.ColorIndex может принимать значения от 1 до 56. Это стандартная ограниченная палитра, которая существовала до Excel 2007 и используется до сих пор. Посмотрите примеры:

Range(«A1:D6»).Font.ColorIndex = 5

Cells(1, 6).Font.ColorIndex = 12

Таблица соответствия значений ограниченной палитры цвету:

Стандартная палитра Excel из 56 цветов

Стандартная палитра Excel из 56 цветов

Подробнее о стандартной палитре Excel смотрите в статье: Стандартная палитра из 56 цветов.

Свойство .Font.ThemeColor

Свойство .Font.ThemeColor может принимать числовые или текстовые значения констант из коллекции MsoThemeColorIndex:

Range(«A1»).Font.ThemeColor = msoThemeColorHyperlink

Cells(2, 1).Font.ThemeColor = msoThemeColorAccent4

Основная палитра

Основная палитра, начиная c Excel 2007, состоит из 16777216 цветов. Свойство .Font.Color может принимать значения от 0 до 16777215, причем 0 соответствует черному цвету, а 16777215 — белому.

Cells(1, 1).Font.Color = 0

Cells(2, 1).Font.Color = 6777215

Cells(3, 1).Font.Color = 4569325

Отрицательные значения свойства .Font.Color

При записи в Excel макрорекордером макроса с присвоением шрифту цвета используются отрицательные значения свойства .Font.Color, которые могут быть в пределах от -16777215 до -1. Отрицательные значения соответствуют по цвету положительному значению, равному сумме наибольшего индекса основной палитры и данного отрицательного значения. Например, отрицательное значение -8257985 соответствует положительному значению 8519230, являющегося результатом выражения 16777215 + (-8257985). Цвета текста двух ячеек из следующего кода будут одинаковы:

Cells(1, 1).Font.Color = 8257985

Cells(2, 1).Font.Color = 8519230

Свойство .Font.TintAndShade

Еще при записи макроса с присвоением шрифту цвета макрорекордером добавляется свойство .Font.TintAndShade, которое осветляет или затемняет цвет и принимает следующие значения:

  • -1 — затемненный;
  • 0 — нейтральный;
  • 1 — осветленный.

При тестировании этого свойства в Excel 2016, сравнивая затемненные и осветленные цвета, разницы не заметил. Сравните сами:

Sub Test()

With Range(Cells(1, 1), Cells(3, 1))

   .Value = «Сравниваем оттенки»

   .Font.Color = 37985

End With

Cells(1, 1).Font.TintAndShade = 1

Cells(2, 1).Font.TintAndShade = 0

Cells(3, 1).Font.TintAndShade = 1

End Sub

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

Разноцветный текст в ячейке

Отдельным частям текста в ячейке можно присвоить разные цвета. Для этого используется свойство Range.Characters:

Sub Test()

    With Range(«A1»)

        .Font.Color = vbBlack

        .Value = «Океан — Солнце — Оазис»

        .Font.Size = 30

        .Characters(1, 5).Font.Color = vbBlue

        .Characters(9, 6).Font.Color = RGB(255, 230, 0)

        .Characters(18, 5).Font.Color = RGB(119, 221, 119)

    End With

End Sub

Результат работы кода:

Разноцветный текст в ячейке


Цвет шрифта Excel VBA

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

Когда мы готовим информационную панель в excelПодготовка информационной панели в ExcelИнформационная панель в Excel — это расширенный инструмент визуализации, который предоставляет обзор важнейших показателей и точек данных для бизнеса. Преобразовывая необработанные данные в содержательную информацию, информационная панель упрощает процесс принятия решений и анализа данных. Подробнее, мы обычно тратим много времени на форматирование ячеек, шрифты и т. д. Часто мы чувствуем себя косметологами Excel, глядя на различные цвета. форматирования Excel. Например, изменение цвета шрифта на листе Excel — простая задача, но когда дело доходит до Excel, вы должны знать, как писать код VBA. Написание кода VBA Код VBA — это набор инструкций, написанных пользователем в программировании приложений Visual Basic. языка в редакторе Visual Basic (VBE) для выполнения определенной задачи. Подробнее об изменении цвета шрифта.

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

Диапазон («A1:A10»)

Затем нам нужно выбрать свойство FONT.

Диапазон («A1:A10»). Шрифт

Тогда что мы хотим сделать с этим шрифтом? Итак, выберите цвет.

Диапазон («A1:A10»). Шрифт. Цвет

Таким образом, нам нужно создать код для изменения цвета шрифта. Это не выглядит легко.

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

Оглавление

  • Цвет шрифта Excel VBA
    • Как изменить цвет шрифта с помощью VBA?
      • Пример №1 – Использование цветового индекса
      • Пример №2 – Использование свойства цвета
      • Пример №3 – Использование свойства цвета с функцией RGB
    • Рекомендуемые статьи

Цвет шрифта VBA

Как изменить цвет шрифта с помощью VBA?

.free_excel_div{фон:#d9d9d9;размер шрифта:16px;радиус границы:7px;позиция:относительная;margin:30px;padding:25px 25px 25px 45px}.free_excel_div:before{content:»»;фон:url(центр центр без повтора #207245;ширина:70px;высота:70px;позиция:абсолютная;верх:50%;margin-top:-35px;слева:-35px;граница:5px сплошная #fff;граница-радиус:50%} Вы можете скачать этот шаблон Excel цвета шрифта VBA здесь — Цвет шрифта VBA Шаблон Excel

Пример №1 – Использование цветового индекса

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

Числа варьируются от 1 до 56, и каждое число представляет разные цвета. Ниже приведен список чисел и их цветов.

Пример цвета шрифта VBA 1

Давайте проверим это.

У нас есть значение в ячейке A1.

Пример цвета шрифта VBA 1-1

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

Код:

Sub FontColor_Example1() Range («A1»). Font.ColorIndex = 10 End Sub

Это изменит цвет шрифта ячейки A1 на зеленый.

Пример VBA FontColor 1-2

Мы также можем использовать свойство CELLS для изменения цвета шрифта.

Код:

Sub FontColor_Example1() Cells(1, 1).Font.ColorIndex = 10 End Sub

Таким образом, мы можем использовать числа от 1 до 56, чтобы применить желаемый цвет к шрифту.

Пример №2 – Использование свойства цвета

Color Index имеет очень ограниченное количество цветов от 1 до 56, но с помощью свойства COLOR мы можем использовать 8 встроенных цветов: vbBlack, vbRed, vbGreen, vbBlue, vbYellow, vbMagenta, vbCyan, vbWhite.

Для этих цветов нам не нужно указывать какие-либо числа. Скорее, мы можем получить к ним доступ, используя их имя, как показано выше. Ниже приведен пример кода для всех 8 цветов.

Код:

Sub vbBlack_Example() Range(«A1»).Font.Color = vbBlack End Sub

Код:

Sub vbRed_Example() Range(«A1»).Font.Color = vbRed End Sub

Код:

Sub vbGreen_Example() Range(«A1»).Font.Color = vbGreen End Sub

Код:

Sub vbBlue_Example() Range(«A1»).Font.Color = vbBlue End Sub

Код:

Sub vbYellow_Example() Range(«A1»).Font.Color = vbYellow End Sub

Код:

Sub vbMagenta_Example() Range(«A1»).Font.Color = vbMagenta End Sub

Код:

Sub vbCyan_Example() Range(«A1»).Font.Color = vbCyan End Sub

Код:

Sub vbWhite_Example() Range(«A1»).Font.Color = vbWhite End Подпример №3 — Использование свойства цвета с функцией RGB

Мы видели, что у нас есть только 8 встроенных цветов для работы. Но нам нужно использовать функцию RGB, чтобы иметь разные цвета. Помимо встроенных цветов, мы можем создавать наши цвета с помощью VBA VBA RGBVBA RGBRGB также можно назвать красным, зеленым и синим, эта функция используется для получения числового значения значения цвета, эта функция имеет три компонента: диапазон, и они красный, синий и зеленый, другие цвета рассматриваются как компоненты этих трех разных цветов в функции VBA.

Посмотрите на синтаксис функции RGB.

RGB (красный, зеленый, синий)

RGB означает «красный, зеленый и синий». Поэтому нам нужно предоставить числа от 0 до 255 для каждого цвета, чтобы построить цвета.

Ниже приведены несколько примеров для вас.

Пример VBA FontColor 3

Ниже приведены некоторые примеры кода макроса.

Код:

Sub RGB_Example() Range(«A1»).Font.Color = RGB(0, 0, 0) ‘Изменить цвет шрифта на черный End Sub

Код:

Sub RGB_Example() Range(«A1»).Font.Color = RGB(16, 185, 199) ‘Цвет шрифта будет этим End Sub

Код:

Sub RGB_Example() Range(«A1»).Font.Color = RGB(106, 15, 19) ‘Цвет шрифта будет этим End Sub

Код:

Sub RGB_Example() Range(«A1»).Font.Color = RGB(216, 55, 19) ‘Цвет шрифта будет этим End Sub

Рекомендуемые статьи

Эта статья была руководством по цвету шрифта VBA. Здесь мы узнаем, как изменить цвет шрифта, используя индекс цвета VBA, свойство цвета с функцией RGB вместе с примерами и загрузим шаблон Excel. Ниже приведены некоторые полезные статьи Excel, связанные с VBA:

  • Примеры VBA
  • ЧДир ВБА
  • Альтернативный цвет строки в Excel

Return to VBA Code Examples

In this Article

  • VBA Cell Font
  • Change Font Color
    • vbColor
    • Color – RGB
    • ColorIndex
  • Font Size
  • Bold Font
  • Font Name
  • Cell Style

VBA Cell Font

In VBA, you can change font properties using the VBA Font Property of the Range Object. Type the following code into the VBA Editor and you’ll see a list of all the options available:

Range("A1).Font.

vba cell font

We will discuss a few of the most common properties below.

Change Font Color

There are a few ways to set font colors.

vbColor

The easiest way to set colors is with vbColors:

Range("a1").Font.Color = vbRed

However, you’re very limited in terms of colors available. These are the only options available:

vba vbcolor

Color – RGB

You can also set colors based on RGB (Red Green Blue). Here you enter color values between 0-255 for Red, Green, and Blue. Using those three colors you can make any color:

Range("a1").Font.Color = RGB(255,255,0)

ColorIndex

VBA / Excel also has a ColorIndex property. This makes pre-built colors available to you. However, they’re stored as Index numbers, which makes it hard to know what color is what:

Range("a1").Font.ColorIndex = …..

We wrote an article about VBA Color codes, including a list of the VBA ColorIndex codes. There you can learn more about colors.

Font Size

This will set the font size to 12:

Range("a1").Font.Size = 12

or to 16:

Range("a1").Font.Size = 16

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

automacro

Learn More

Bold Font

It is easy to set a cell font to Bold:

Range("A1").Font.Bold = True

or to clear Bold formatting:

Range("A1").Font.Bold = False

Font Name

To change a font name use the Name property:

Range("A1").Font.Name = "Calibri"
Range("A1").Font.Name = "Arial"
Range("A1").Font.Name = "Times New Roman"

Cell Style

Excel offers the ability to create Cell “Styles”. Styles can be found in the Home Ribbon > Styles:

excel vba font styles

Styles allow you to save your desired Cell Formatting. Then assign that style to a new cell and all of the cell formatting is instantly applied.  Including Font size, cell color, cell protections status, and anything else available from the Cell Formatting Menu:

cell formatting menu excel

Personally, for many of the models that I work on, I usually create an “Input” cell style:

Range("a1").Style = "Input"

By using styles you can also easily identify cell types on your worksheet.  The example below will loop through all the cells in the worksheet and change any cell with Style = “Input” to “InputLocked”:

Dim Cell as Range

For Each Cell in ActiveSheet.Cells
  If Cell.Style = "Input" then
    Cell.Style = "InputLocked"
  End If
Next Cell

Written by Puneet for Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel for Mac

Key Notes

  • To make changes in a font, you need to use the VBA Font object.
  • There is a total of 18 properties with the font object that you can access and make changes.

VBA Font Object

In VBA, there is a font object which you can use to change properties of the font from a cell, like, font color, font size, font type, and you can also apply bold and italic to the font.

Syntax

expression.font

To use it, first, you need to define the cell address, which you can specify in the following ways.

Selection.Font
Range("A1").Font
Cells(1, 1).Font
Range("A1:A5").Font

To change the color of the font, you have two different ways:

1. Using Color Constants

Excel has a few color constants that you can use to apply color to the font. For example, if you want to apply the red color to the font in cell A1, the code would be like the below:

Range("A1").Font.Color = vbRed

In the above code, after the font object, color is the property and you have used the vbRed constant that tells VBA to apply the red color to the cell A1. There is a total of eight constants that you can use:

  1. vbBlack: Black
  2. vbRed: Red
  3. vbGreen: Green
  4. vbYellow: Yellow
  5. vbBlue: Blue
  6. vbMagenta: Magenta
  7. vbCyan: Cyan
  8. vbWhite: White

2. Using RGB

You can also use the RGB color code to apply color to the font. RGB is the combination of red, green, and blue colors, where you can create a custom color using the code. Let’s say if you want to apply a combination of green and blue color to cell A1 the code would be:

Range("A1").Font.Color = RGB(0, 255, 255)

VBA Font Size

Font object also gives you access to the size property of the font. Let’s say you want to apply the font size of 16 to the font in the cell A1, the code would be:

Range("A1").Font.Size = 16

If you want to apply font size to all cells in a worksheet you can use the following code:

Cells.Font.Size = 16

And if only want to apply font size to cells where you have data, the code would be:

ActiveSheet.UsedRange.Font.Size = 16

Or to the selected cell.

Selection.Font.Size = 16

VBA Font Name

In the same way, you can also change the font name using the name property of the font object. Let’s say you want to apply the “Consolas” font the cell A1. The code would be:

Range("A1").Font.Name = "Consolas"

While using this property, you need to type the correct name of the font that you want to apply, and if somehow the name is incorrect, it won’t show you an error.

VBA Font Bold, Italic, and Underline

There are also properties that you can use to make the font bold, italic, and underline. Below are the codes that you need to write for this.

Range("A1").Font.Bold = True
Range("A1").Font.Italic = True
Range("A1").Font.Underline = True

With these properties, you need to define TRUE or FALSE. So if the font is already bold or italic and you want to remove it, then you need to use FALSE to remove them.

Other Useful Font Properties

Here add a few more properties that can be useful for you (Strikethrough, Subscript, and Superscript).

Range("A1").Font.Strikethrough = True
Range("A1").Font.Subscript = True
Range("A1").Font.Superscript = True

More Tutorials

    • Count Rows using VBA in Excel
    • Excel VBA Hide and Unhide a Column or a Row
    • Excel VBA Range – Working with Range and Cells in VBA
    • Apply Borders on a Cell using VBA in Excel
    • Find Last Row, Column, and Cell using VBA in Excel
    • Insert a Row using VBA in Excel
    • Merge Cells in Excel using a VBA Code
    • Select a Range/Cell using VBA in Excel
    • SELECT ALL the Cells in a Worksheet using a VBA Code
    • ActiveCell in VBA in Excel
    • Special Cells Method in VBA in Excel
    • UsedRange Property in VBA in Excel
    • VBA AutoFit (Rows, Column, or the Entire Worksheet)
    • VBA ClearContents (from a Cell, Range, or Entire Worksheet)
    • VBA Copy Range to Another Sheet + Workbook
    • VBA Enter Value in a Cell (Set, Get and Change)
    • VBA Insert Column (Single and Multiple)
    • VBA Named Range | (Static + from Selection + Dynamic)
    • VBA Range Offset
    • VBA Sort Range | (Descending, Multiple Columns, Sort Orientation
    • VBA Wrap Text (Cell, Range, and Entire Worksheet)
    • VBA Check IF a Cell is Empty + Multiple Cells

    ⇠ Back to What is VBA in Excel

    Helpful Links – Developer Tab – Visual Basic Editor – Run a Macro – Personal Macro Workbook – Excel Macro Recorder – VBA Interview Questions – VBA Codes

    Excel VBA Font Color

    VBA Font Color property one may use to change the font color of Excel cells using VBA code. Using the color index and color property with the RGB function, we can change the font color in multiple ways.

    When we prepare a dashboard in excelThe dashboard in excel is an enhanced visualization tool that provides an overview of the crucial metrics and data points of a business. By converting raw data into meaningful information, a dashboard eases the process of decision-making and data analysis.read more, we usually spend considerable time formatting cells, fonts, etc. Often, we feel like an Excel beautician by looking at the various colors of the Excel formatting. For example, changing the font color in an Excel worksheet is an easy job, but when it comes to Excel, you should know how to writing VBA codeVBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task.read more to change the font color.

    To change the font color, first, we need to identify what cells we are going to change.

    Range (“A1:A10”)

    Then we need to select the FONT property.

    Range (“A1:A10”).Font

    Then what do we want to do with this font? So, select color.

    Range (“A1:A10”).Font.Color

    Like this, we need to construct the code to change the font color. It does not look easy.

    But remember, everything seems tough at the beginning. Later you will get the hang of it.

    Table of contents
    • Excel VBA Font Color
      • How to Change Font Color using VBA?
        • Example #1 – Using Color Index
        • Example #2 – Using Color Property
        • Example #3 – Using Color Property with RGB Function
      • Recommended Articles

    VBA Font Color

    You are free to use this image on your website, templates, etc, Please provide us with an attribution linkArticle Link to be Hyperlinked
    For eg:
    Source: VBA Font Color (wallstreetmojo.com)

    How to Change Font Color using VBA?

    You can download this VBA Font Color Excel Template here – VBA Font Color Excel Template

    Example #1 – Using Color Index

    The Color Index property is different from the Color property in VBAVBA Colour Index is used to change the colours of cells or cell ranges. This function has unique identification for different types of colours.read more. Using numerical values, we can change the color of cells and fonts.

    Numbers range from 1 to 56, and each number represents different colors. Below is the list of numbers and their colors.

    VBA Font Color Example 1

    Let us test this out.

    We have a value in cell A1.

    VBA Font Color Example 1-1

    We want to change the color of the cell A1 font to green. Below is the code.

    Code:

    Sub FontColor_Example1()
    
      Range("A1").Font.ColorIndex = 10
    
    End Sub

    It will change the color of the cell A1 font to green.

    VBA FontColor Example 1-2

    We can also use the CELLS property to change the color of the font.

    Code:

    Sub FontColor_Example1()
    
      Cells(1, 1).Font.ColorIndex = 10
    
    End Sub

    Like this, we can use numbers 1 to 56 to apply the desired color to the font.

    Example #2 – Using Color Property

    Color Index has very limited colors from 1 to 56, but using the COLOR property, we can use 8 built-in colors:  vbBlack, vbRed, vbGreen, vbBlue, vbYellow, vbMagenta, vbCyan, vbWhite.

    For these colors, we do not need to supply any numbers. Rather, we can access them using their name, as shown above. Below is the example code for all 8 colors.

    Code:

    Sub vbBlack_Example()
    
      Range("A1").Font.Color = vbBlack
    
    End Sub

    Code:

    Sub vbRed_Example()
    
      Range("A1").Font.Color = vbRed
    
    End Sub

    Code:

    Sub vbGreen_Example()
    
      Range("A1").Font.Color = vbGreen
    
    End Sub

    Code:

    Sub vbBlue_Example()
    
      Range("A1").Font.Color = vbBlue
    
    End Sub

    Code:

    Sub vbYellow_Example()
    
      Range("A1").Font.Color = vbYellow
    
    End Sub

    Code:

    Sub vbMagenta_Example()
    
      Range("A1").Font.Color = vbMagenta
    
    End Sub

    Code:

    Sub vbCyan_Example()
    
      Range("A1").Font.Color = vbCyan
    
    End Sub

    Code:

    Sub vbWhite_Example()
    
      Range("A1").Font.Color = vbWhite
    
    End Sub

    Example #3 – Using Color Property with RGB Function

    We have seen that we have only 8 built-in colors to work with. But we need to use the RGB function to have various colors. Besides built-in colors, we can create our colors by using the VBA VBA RGBRGB can be also termed as red green and blue, this function is used to get the numerical value of the color value, this function has three components as a named range and they are red, blue and green the other colors are considered as the components of these three different colors in VBA.read more function.

    Look at the syntax of the RGB function.

    RGB (Red, Green, Blue)

    RGB stands for “Red, Green, and Blue.” Therefore, we need to supply numbers from 0 to 255 for each color to construct colors.

    Below are a few examples for you.

    VBA FontColor Example 3

    Below are some of the macro code examples

    Code:

    Sub RGB_Example()
    
      Range("A1").Font.Color = RGB(0, 0, 0)
      'Change the font colour to black
    End Sub

    Code:

    Sub RGB_Example()
    
      Range("A1").Font.Color = RGB(16, 185, 199)
      'Font color will be this
    End Sub

    Code:

    Sub RGB_Example()
    
      Range("A1").Font.Color = RGB(106, 15, 19)
      'Font color will be this
    End Sub

    Code:

    Sub RGB_Example()
    
      Range("A1").Font.Color = RGB(216, 55, 19)
      'Font color will be this
    End Sub

    Recommended Articles

    This article has been a guide to VBA Font Color. Here, we learn how to change the font color by using the VBA color index, color property with RGB function along with examples, and download an Excel template. Below are some useful Excel articles related to VBA: –

    • VBA Examples
    • VBA ChDir
    • Alternate Row Color in Excel

    Добрый день, Форумчане

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

    Может кто-нибудь помочь? Нужные цвета в прикрепленном файле.
    Если есть какой-то хороший сайт, буду рад почитать, когда учился html сидел на htmlbook)

    Код
    Sub InteriorColor()
        If Selection.Interior.ColorIndex = xlNone Then
            Selection.Interior.ColorIndex = 6
        Else
            If Selection.Interior.ColorIndex = 6 Then
                Selection.Interior.ColorIndex = 44
            Else
                If Selection.Interior.ColorIndex = 44 Then
                    Selection.Interior.ColorIndex = 15
                    Else
                        Selection.Interior.ColorIndex = xlNone
                    End If
                End If
        End If
    End Sub

    Спасибо!

    Excel VBA Tutorial about setting font characteristics with macrosIn this VBA Tutorial, you learn how to change or set the font characteristics of a cell range.

    This VBA Font Tutorial is accompanied by Excel workbooks containing the data and macros I use in the examples below. You can get immediate free access to these example workbooks by subscribing to the Power Spreadsheets Newsletter.

    Use the following Table of Contents to navigate to the section you’re interested in.

    Related Excel VBA and Macro Tutorials

    The following VBA and Macro Tutorials may help you better understand and implement the contents below:

    • General VBA constructs and structures:
      • Learn the basics of how to work with macros here.
      • Learn about essential VBA terms here.
      • Learn how to enable and disable macros here.
      • Learn how to work with the Visual Basic Editor (VBE) here.
      • Learn how to create object references here.
      • Learn about the R1C1-style system here.
      • Learn how to create Sub procedures here.
      • Learn how to declare and work with variables here.
      • Learn how to work with VBA data types here.
      • Learn how to work with object properties here.
      • Learn how to work with functions in VBA here.
      • Learn how to work with loops here.
    • Practical VBA applications and macro examples:
      • Learn how to refer to worksheets here.
      • Learn how to refer to cell ranges here.
      • Learn how to find the last row in a worksheet here.
      • Learn how to find the last column in a worksheet here.
      • Learn how to specify a column’s width here.
      • Learn how to identify empty cells here.
      • Learn how to clear a cell here.

    You can find additional VBA and Macro Tutorials in the Archives.

    #1: Change or set font with theme fonts

    VBA code to change or set font with theme fonts

    To change or set the font by referring to the applicable theme fonts, use a statement with the following structure:

    Range.Font.ThemeFont = xlThemeFontConstant
    

    Process to change or set font with theme fonts

    To change or set the font by referring to the applicable theme fonts, follow these steps:

    1. Identify the cell range whose font you modify (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.ThemeFont property to an xlThemeFont constant (Font.ThemeFont = xlThemeFontConstant), which specifies the theme font to be used.

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font you modify.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: ThemeFont

    The Font.ThemeFont property sets the font by referring to the applicable theme fonts.

    Item: =

    The assignment operator assigns a new value (xlThemeFontConstant) to the Font.ThemeFont property.

    Item: xlThemeFontConstant

    The constants in the xlThemeFont enumeration specify the theme font. Therefore, set the Font.ThemeFont property to one of the following xlThemeFont constants:

    xlThemeFont constant Value Description
    xlThemeFontMajor 2 Major theme font
    xlThemeFontMinor 1 Minor theme font
    xlThemeFontNone 0 Don’t use a theme font

    Macro example to change or set font with theme fonts

    The following macro example sets the font in cell A5 (Range(“A5”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) to the major theme font (font.ThemeFont = xlThemeFontMajor).

    Sub fontThemeFont()
        'Source: https://powerspreadsheets.com/
        'sets the font by referring to applicable theme fonts
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'specify the theme font from the applied font scheme
        ThisWorkbook.Worksheets("VBA Font").Range("A5").font.ThemeFont = xlThemeFontMajor
    
    End Sub
    

    Effects of executing macro example to change or set font with theme fonts

    The following GIF illustrates the results of executing the macro example. As expected, Excel sets the font of cell A5 to the major theme font.

    Macro example sets font to theme font

    #2: Change or set font name

    VBA code to change or set font name

    To change or set the font name, use a statement with the following structure:

    Range.Font.Name = "FontName"
    

    Process to change or set font name

    To change or set the font name, follow these steps:

    1. Identify the cell range whose font you name you change (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.Name property to a string specifying the font you use (Font.Name = “FontName”).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font name you change.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: Name

    The Font.Name property sets the font’s name.

    Item: =

    The assignment operator assigns a new value (“FontName”) to the Font.Name property.

    Item: “FontName”

    Set the Font.Name property to a string specifying the font you use (FontName).

    If you explicitly declare a variable to represent “FontName”, work with the String data type.

    Macro example to change or set font name

    The following macro example sets the font in cell A6 (Range(“A6”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) to Verdana (font.Name = “Verdana”).

    Sub fontName()
        'Source: https://powerspreadsheets.com/
        'sets the font
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'specify the font name
        ThisWorkbook.Worksheets("VBA Font").Range("A6").font.Name = "Calibri"
    
    End Sub
    

    Effects of executing macro example to change or set font name

    The following GIF illustrates the results of executing the macro example. As expected, Excel sets the font of cell A6 to Verdana.

    Macro sets font face

    #3: Change or set font size

    VBA code to change or set font size

    To change or set the font size, use a statement with the following structure:

    Range.Font.Size = FontSize#
    

    Process to change or set font size

    To change or set the font size, follow these steps:

    1. Identify the cell range whose font size you change (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.Size property to a number specifying the size (in points) of the font you use (Font.Size = FontSize#).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font size you change.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: Size

    The Font.Size property sets the font’s size.

    Item: =

    The assignment operator assigns a new value (FontSize#) to the Font.Size property.

    Item: FontSize#

    Set the Font.Size property to a number specifying the size (in points) of the font you use (FontSize#).

    Macro example to change or set font size

    The following macro example sets the font size of cell A7 (Range(“A7”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) to 13 (font.Size = 13).

    Sub fontSize()
        'Source: https://powerspreadsheets.com/
        'sets the font size
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'specify the font size
        ThisWorkbook.Worksheets("VBA Font").Range("A7").font.Size = 13
    
    End Sub
    

    Effects of executing macro example to change or set font size

    The following GIF illustrates the results of executing the macro example. As expected, Excel sets the font size of cell A7 to 13.

    Macro sets font size

    #4: Change or set font style

    VBA code to change or set font style

    To change or set the font style, use a statement with the following structure:

    Range.Font.FontStyle = "FontStyle"
    

    Process to change or set font style

    To change or set the font style, follow these steps:

    1. Identify the cell range whose font you style you change (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.Style property to a string specifying the font style you use (Font.FontStyle = “FontStyle”).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font style you change.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: FontStyle

    The Font.FontStyle property sets the font style.

    Item: =

    The assignment operator assigns a new value (“FontStyle”) to the Font.FontStyle property.

    Item: “FontStyle”

    Set the Font.FontStyle property to one of the following strings (FontStyle):

    • Regular;
    • Italic;
    • Bold; or
    • Bold Italic.

    Macro example to change or set font style

    The following macro example sets the font style of cell A8 (Range(“A8”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) to bold and italic (font.fontStyle = “Bold Italic”).

    Sub fontStyle()
        'Source: https://powerspreadsheets.com/
        'sets the font style
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'specify the font style
        ThisWorkbook.Worksheets("VBA Font").Range("A8").font.fontStyle = "Bold Italic"
    
    End Sub
    

    Effects of executing macro example to change or set font style

    The following GIF illustrates the results of executing the macro example. As expected, Excel sets the font style of cell A8 to bold and italic.

    Macro sets font style

    #5: Set font bold

    VBA code to set font bold

    To set the font to bold, use a statement with the following structure:

    Range.Font.Bold = True
    

    Process to set font bold

    To set the font to bold, follow these steps:

    1. Identify the cell range whose font you set to bold (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.Bold property to True (Font.Bold = True).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font you set to bold.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: Bold

    The Font.Bold property sets the font to bold (or not bold).

    Item: =

    The assignment operator assigns a new value (True) to the Font.Bold property.

    Item: True

    To make the font bold, set the Font.Bold property to True.

    To remove the font’s bold formatting, set the Font.Bold property to False.

    Macro example to set font bold

    The following macro example makes the font of cell A9 (Range(“A9”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) bold (font.Bold = True).

    Sub fontBold()
        'Source: https://powerspreadsheets.com/
        'sets font to bold
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'make font bold
        ThisWorkbook.Worksheets("VBA Font").Range("A9").font.Bold = True
    
    End Sub
    

    Effects of executing macro example to set font bold

    The following GIF illustrates the results of executing the macro example. As expected, Excel makes the font of cell A9 bold.

    Macro sets font bold

    #6: Set font italic

    VBA code to set font italic

    To set the font to italic, use a statement with the following structure:

    Range.Font.Italic = True
    

    Process to set font italic

    To set the font to italic, follow these steps:

    1. Identify the cell range whose font you set to italic (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.Italic property to True (Font.Italic = True).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font you set to italic.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: Italic

    The Font.Italic property sets the font to italic (or not italic).

    Item: =

    The assignment operator assigns a new value (True) to the Font.Italic property.

    Item: True

    To make the font italic, set the Font.Italic property to True.

    To remove the font’s italic formatting, set the Font.Bold property to False.

    Macro example to set font italic

    The following macro example makes the font of cell A10 (Range(“A10”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) italic (font.Italic = True).

    Sub fontItalic()
        'Source: https://powerspreadsheets.com/
        'sets font style to italic
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'make font italic
        ThisWorkbook.Worksheets("VBA Font").Range("A10").font.Italic = True
    
    End Sub
    

    Effects of executing macro example to set font italic

    The following GIF illustrates the results of executing the macro example. As expected, Excel makes the font of cell A10 italic.

    Macro sets font italic

    #7: Set font underline

    VBA code to set font underline

    To underline the font, use a statement with the following structure:

    Range.Font.Underline = xlUnderlineStyleConstant
    

    Process to set font underline

    To underline the font, follow these steps:

    1. Identify the cell range whose font you underline (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.Underline property to an xlUnderlineStyle constant (Font.Underline = xlUnderlineStyleConstant), which specifies the type of font underline.

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font you underline.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: Underline

    The Font.Underline property sets the type of font underline.

    Item: =

    The assignment operator assigns a new value (xlUnderlineStyleConstant) to the Font.Underline property.

    Item: xlUnderlineStyleConstant

    The constants in the xlUnderlineStyle enumeration specify the type of font underline. Therefore, set the Font.Underline property to one of the following xlUnderlineStyle constants:

    xlUnderlineStyle constant Value
    xlUnderlineStyleDouble -4119
    xlUnderlineStyleDoubleAccounting 5
    xlUnderlineStyleNone -4142
    xlUnderlineStyleSingle 2
    xlUnderlineStyleSingleAccounting 4

    Macro example to set font underline

    The following macro example underlines with a double line (font.Underline = xlUnderlineStyleDouble) the font of cell A11 (Range(“A11”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook).

    Sub fontUnderline()
        'Source: https://powerspreadsheets.com/
        'underlines the font
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'underline the font
        ThisWorkbook.Worksheets("VBA Font").Range("A11").font.Underline = xlUnderlineStyleDouble
    
    End Sub
    

    Effects of executing macro example to set font underline

    The following GIF illustrates the results of executing the macro example. As expected, Excel underlines the font of cell A11 with a double line.

    Macro sets font underline

    #8: Set font strikethrough

    VBA code to set font strikethrough

    To strike the font through, use a statement with the following structure:

    Range.Font.Strikethrough = True
    

    Process to set font strikethrough

    To strike the font through, follow these steps:

    1. Identify the cell range whose font you strike through (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.Strikethrough property to True (Font.Strikethrough = True).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font you strike through.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: Strikethrough

    The Font.Strikethrough property strikes through (or not) the font with a horizontal line.

    Item: =

    The assignment operator assigns a new value (True) to the Font.Strikethrough property.

    Item: True

    To strike through the font with a horizontal line, set the Font.Strikethrough property to True.

    To remove a font’s strike through horizontal line, set the Font.Strikethrough property to False.

    Macro example to set font strikethrough

    The following macro example strikes through (font.Strikethrough = True) the font of cell A12 (Range(“A12”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook).

    Sub fontStrikethrough()
        'Source: https://powerspreadsheets.com/
        'strikes font through
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'strike through font
        ThisWorkbook.Worksheets("VBA Font").Range("A12").font.Strikethrough = True
    
    End Sub
    

    Effects of executing macro example to set font strikethrough

    The following GIF illustrates the results of executing the macro example. As expected, Excel strikes the font of cell A12 through.

    Macro font strikethrough

    #9: Change or set font color with RGB color model

    VBA code to change or set font color with RGB color model

    To change or set the font color with the RGB color model, use a statement with the following structure:

    Range.Font.Color = RGB(Red, Green, Blue)
    

    Process to change or set font color with RGB color model

    To change or set the font color with the RGB color model, follow these steps:

    1. Identify the cell range whose font color you change with the RGB color model (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Specify the red, green and blue components of the color with the RGB function (RGB(Red, Green, Blue)).
    4. Set the Font.Color property to the value returned by the RGB Function (Font.Color = RGB(Red, Green, Blue)).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font color you change with the RGB color model.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: Color

    The Font.Color property sets the font color using a numeric value.

    Item: =

    The assignment operator assigns a new value (returned by the RGB function) to the Font.Color property.

    Item: RGB(Red, Green, Blue)

    Theoretically, you can set the Font.Color property to a value specifying the font color you use.

    In practice, you can use the RGB function to obtain the value specifying the font color. For these purposes, specify the Red, Green and Blue components of the color.

    When working with the RGB function, consider the following:

    • Specify each component (Red, Green and Blue) as numbers between 0 and 255 (inclusive).
    • If you use a value exceeding 255, VBA assumes that the value is 255.

    Macro example to change or set font color with RGB color model

    The following macro example sets the font color of cell A13 (Range(“A13”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) to red with the RGB color model (font.Color = RGB(255, 0, 0)).

    Sub fontColorRgb()
    'Source: https://powerspreadsheets.com/
    'sets font color using RGB color model
    'For further information: https://powerspreadsheets.com/excel-vba-font/
    
    'specify font color with RGB function
    ThisWorkbook.Worksheets("VBA Font").Range("A13").font.Color = RGB(255, 0, 0)
    
    End Sub
    

    Effects of executing macro example to change or set font color with RGB color model

    The following GIF illustrates the results of executing the macro example. As expected, Excel sets the font color of cell A13 to red with the RGB color model.

    Macro sets font color with RGB

    #10: Change or set font color with color index (ColorIndex)

    VBA code to change or set font color with color index (ColorIndex)

    To change or set the font color with the ColorIndex property, use a statement with the following structure:

    Range.Font.ColorIndex = ColorIndex#
    

    Process to change or set font color with color index (ColorIndex)

    To change or set the font color with the ColorIndex property, follow these steps:

    1. Identify the cell range whose font color you change with the ColorIndex property (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.ColorIndex property to a value between 0 and 56 or an xlColorIndex constant (Font.ColorIndex = ColorIndex#).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font color you change with the ColorIndex property.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: ColorIndex

    The Font.ColorIndex property sets the font color using the current color palette or a constant from the xlColorIndex enumeration.

    Item: =

    The assignment operator assigns a new value (ColorIndex#) to the Font.ColorIndex property.

    Item: ColorIndex#

    Set the Font.ColorIndex to one of the following:

    • A value between 0 and 56, representing a color from the current color palette.
    • One of the following xlColorIndex constants:
      • xlColorIndexAutomatic (-4105), which represents automatic color.
      • xlColorIndexNone (-4142), which represents no color.

    Macro example to change or set font color with color index (ColorIndex)

    The following macro example sets the font color of cell A14 (Range(“A14”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) to blue with the ColorIndex property (font.ColorIndex = 5).

    Sub fontColorIndex()
        'Source: https://powerspreadsheets.com/
        'sets the font color by referring to the current color palette or a constant
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'specify font color as index value of the current color palette or an XlColorIndex constant
        ThisWorkbook.Worksheets("VBA Font").Range("A14").font.ColorIndex = 5
    
    End Sub
    

    Effects of executing macro example to change or set font color with color index (ColorIndex)

    The following GIF illustrates the results of executing the macro example. As expected, Excel sets the font color of cell A14 to blue with the ColorIndex property.

    Macro sets font color with ColorIndex

    #11: Set font color to Automatic

    VBA code to set font color to Automatic

    To set the font color to Automatic (within the color palette), use a statement with the following structure:

    Range.Font.ColorIndex = xlColorIndexAutomatic
    

    Process to set font color to Automatic

    To set the font color to Automatic (within the color palette), follow these steps:

    1. Identify the cell range whose font color you set to Automatic (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.ColorIndex property to xlColorIndexAutomatic (Font.ColorIndex = xlColorIndexAutomatic).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font color you set to Automatic (within the color palette).

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: ColorIndex

    The Font.ColorIndex property sets the font color using the current color palette or a constant from the xlColorIndex enumeration.

    Item: =

    The assignment operator assigns a new value (xlColorIndexAutomatic) to the Font.ColorIndex property.

    Item: xlColorIndexAutomatic

    To set the font color to Automatic, set the Font.ColorIndex to:

    • xlColorIndexAutomatic (-4105); or
    • 0.

    Macro example to set font color to Automatic

    The following macro example sets the font color of cell A15 (Range(“A15”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) to Automatic (font.ColorIndex = xlColorIndexAutomatic).

    Sub fontColorAutomatic()
        'Source: https://powerspreadsheets.com/
        'sets the font color to automatic
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'specify the font color as Automatic
        ThisWorkbook.Worksheets("VBA Font").Range("A15").font.ColorIndex = xlColorIndexAutomatic
    
    End Sub
    

    Effects of executing macro example to set font color to Automatic

    The following GIF illustrates the results of executing the macro example. As expected, Excel sets the font color of cell A15 to Automatic (from blue).

    Macro sets font color to Automatic

    #12: Change or set font color with theme color scheme (ThemeColor, xlThemeColorAccent)

    VBA code to change or set font color with theme color scheme (ThemeColor, xlThemeColorAccent)

    To change or set the font color with the theme color scheme, use a statement with the following structure:

    Range.Font.ThemeColor = xlThemeColorConstant
    

    Process to change or set font color with theme color scheme (ThemeColor, xlThemeColorAccent)

    To change or set the font color with the theme color scheme, follow these steps:

    1. Identify the cell range whose font color you change with the theme color scheme (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.ThemeColor property to an xlThemeColor constant (Font.ThemeColor = xlThemeColorConstant).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font color you change with the theme color scheme.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: ThemeColor

    The Font.ThemeColor property sets the font color using the theme color scheme.

    Item: =

    The assignment operator assigns a new value (xlThemeColorConstant) to the Font.ThemeColor property.

    Item: xlThemeColorConstant

    The constants in the xlThemeColor enumeration specify the theme color. Therefore, set the Font.ThemeColor property to one of the following xlThemeColor constants:

    xlThemeColor constant Value Description
    xlThemeColorAccent1 5 Accent 1.
    xlThemeColorAccent2 6 Accent 2.
    xlThemeColorAccent3 7 Accent 3.
    xlThemeColorAccent4 8 Accent 4.
    xlThemeColorAccent5 9 Accent 5.
    xlThemeColorAccent6 10 Accent 6.
    xlThemeColorDark1 1 Dark 1.
    xlThemeColorDark2 3 Dark 2.
    xlThemeColorFollowedHyperlink 12 Followed hyperlink.
    xlThemeColorHyperlink 11 Hyperlink.
    xlThemeColorLight1 2 Light 1.
    xlThemeColorLight2 4 Light 2.

    Macro example to change or set font color with theme color scheme (ThemeColor, xlThemeColorAccent)

    The following macro example sets the font color of cell A16 (Range(“A16”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) to the accent 1 of the theme color (font.ThemeColor = xlThemeColorAccent1).

    Sub fontThemeColor()
        'Source: https://powerspreadsheets.com/
        'sets font color by referring to applicable theme colors
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'specify the font color from the theme color scheme
        ThisWorkbook.Worksheets("VBA Font").Range("A16").font.ThemeColor = xlThemeColorAccent1
    
    End Sub
    

    Effects of executing macro example to change or set font color with theme color scheme (ThemeColor, xlThemeColorAccent)

    The following GIF illustrates the results of executing the macro example. As expected, Excel sets the font color of cell A16 to the accent 1 of the theme color.

    Macro sets color with theme color

    #13: Change or set font tint and shade

    VBA code to change or set font tint and shade

    To change or set the font tint and shade, use a statement with the following structure:

    Range.Font.TintAndShade = TintAndShade#
    

    Process to change or set font tint and shade

    To change or set the font tint and shade, follow these steps:

    1. Identify the cell range whose font tint and shade you change (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.TintAndShade property to a value (Font.TintAndShade = TintAndShade#) between -1 (darkest shade) and 1 (lightest shade).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font tint and shade you change.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: TintAndShade

    The Font.TintAndShade property lightens or darkens the font color.

    Item: =

    The assignment operator assigns a new value (TintAndShade#) to the Font.TintAndShade property.

    Item: TintAndShade#

    Set the Font.TintAndShade property to a value between -1 (darkest shade) and 1 (lightest shade). If you attempt to set the Font.TintAndShade property to a value outside this range, a run-time error (5: Invalid procedure call or argument) occurs.

    Macro example to change or set font tint and shade

    The following macro example lightens the font (font.TintAndShade = 0.5) of cell A17 (Range(“A17”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook).

    Sub fontTintAndShade()
        'Source: https://powerspreadsheets.com/
        'lightens or darkens the font color
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'lighten or darken the font color
        ThisWorkbook.Worksheets("VBA Font").Range("A17").font.TintAndShade = 0.5
    
    End Sub
    

    Effects of executing macro example to change or set font tint and shade

    The following GIF illustrates the results of executing the macro example. As expected, Excel lightens the font color of cell A17.

    Macro sets font tint and shade

    #14: Set font subscript

    VBA code to set font subscript

    To format the font as subscript, use a statement with the following structure:

    Range.Font.Subscript = True
    

    Process to set font subscript

    To format the font as subscript, follow these steps:

    1. Identify the cell range whose font you format as subscript (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.Subscript property to True (Font.Subscript = True).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font you format as subscript.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: Subscript

    The Font.Subscript property formats the font as subscript (or not).

    Item: =

    The assignment operator assigns a new value (True) to the Font.Subscript property.

    Item: True

    To format the font as subscript, set the Font.Subscript property to True.

    To remove the font’s subscript formatting, set the Font.Subscript property to False.

    Macro example to set font subscript

    The following macro example formats the font of cell A18 (Range(“A18”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) as subscript (font.Subscript = True).

    Sub fontSubscript()
        'Source: https://powerspreadsheets.com/
        'formats the font as a subscript
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'format the font as subscript
        ThisWorkbook.Worksheets("VBA Font").Range("A18").font.Subscript = True
    
    End Sub
    

    Effects of executing macro example to set font subscript

    The following GIF illustrates the results of executing the macro example. As expected, Excel formats the font of cell A18 as subscript.

    Macro sets font subscript

    #15: Set font superscript

    VBA code to set font superscript

    To format the font as superscript, use a statement with the following structure:

    Range.Font.Superscript = True
    

    Process to set font superscript

    To format the font as superscript, follow these steps:

    1. Identify the cell range whose font you format as superscript (Range).
    2. Refer to the Font object representing Range’s font (Font).
    3. Set the Font.Superscript property to True (Font.Superscript = True).

    VBA statement explanation

    Item: Range

    Range object representing the cell range whose font you format as superscript.

    You can usually work with, among others, the following properties to refer to this Range object:

    • Worksheet.Range.
    • Worksheet.Cells.
    Item: Font

    The Range.Font property returns a Font object representing Range’s font.

    Item: Superscript

    The Font.Superscript property formats the font as superscript (or not).

    Item: =

    The assignment operator assigns a new value (True) to the Font.SuperScript property.

    Item: True

    To format the font as superscript, set the Font.Superscript to True.

    To remove the font’s superscript formatting, set the Font.Superscript to False.

    Macro example to set font superscript

    The following macro example formats the font of cell A19 (Range(“A19”)) of the “VBA Font” worksheet (Worksheets(“VBA Font”)) in the workbook where the macro is stored (ThisWorkbook) as superscript (font.Superscript = True).

    Sub fontSuperscript()
        'Source: https://powerspreadsheets.com/
        'formats the font as a superscript
        'For further information: https://powerspreadsheets.com/excel-vba-font/
    
        'format the font as superscript
        ThisWorkbook.Worksheets("VBA Font").Range("A19").font.Superscript = True
    
    End Sub
    

    Effects of executing macro example to set font superscript

    The following GIF illustrates the results of executing the macro example. As expected, Excel formats the font of cell A19 as superscript.

    Macro sets font superscript

    Learn more about specifying font characteristics with VBA

    Workbook examples used in this VBA Font Tutorial

    You can get immediate free access to the example workbooks that accompany this VBA Font Tutorial by subscribing to the Power Spreadsheets Newsletter.

    References to constructs used in this VBA Font Tutorial

    Use the following links to visit the appropriate webpage in the Microsoft Developer Network:

    • Refer to the workbook containing the cell range you work with:
      • Workbook object.
      • Application.ThisWorkbook property.
    • Refer to the worksheet containing the cell range you work with:
      • Worksheet object.
      • Workbook.Worksheets property.
    • Refer to the cell range you work with:
      • Range object.
      • Worksheet.Range property.
    • Refer to a cell range’s font:
      • Font object.
      • Range.Font property.
    • Set or change a font’s properties:
      • Font.Bold property.
      • Font.Color property.
      • Font.ColorIndex property and xlColorIndex enumeration.
      • Font.FontStyle property.
      • Font.Italic property.
      • Font.Name property.
      • Font.Size property.
      • Font.Strikethrough property.
      • Font.Subscript property.
      • Font.Superscript property.
      • Font.ThemeColor property and xlThemeColor enumeration.
      • Font.ThemeFont property and xlThemeFont enumeration.
      • Font.TintAndShade property.
      • Font.Underline property and xlUnderlineStyle enumeration.
    • Assign a new value to a property:
      • = operator.
    • Obtain a color with the RGB color model:
      • RGB function.
    • Work with variables and data types:
      • Boolean data type.
      • String data type.

    VBA Font Color

    VBA Font Color

    VBA has a lot of commands and functions to play with. We can do anything in VBA and apply that to Excel. Applying VBA in Excel is the easiest and a fun thing. VBA also has the function by which we can change the color of cell, fonts and we can even bold the characters as well. VBA font color is used in different ways and it helps to change the color of the fonts in excel.

    How to Color a Font Using VBA?

    Let’s see the examples of font color in Excel VBA.

    You can download this VBA Font Color Excel Template here – VBA Font Color Excel Template

    Example #1 – VBA Font Color

    We have sample text in an Excel sheet with the text “VBA Font Color” in cell B3 as shown below. As we can see the color of the font is default black color in nature.

    Font Color Example 1

    To apply the VBA code for changing the color of fonts for above-shown text, we need a module.

    Step 1: So for this go to the VBA window and click on Module option available in the Insert menu option as shown below.

    Module for VBA Font Color

    Step 2: Once we do that, we will get the blank window of Module. In that, start writing subcategory of VBA Font Color or in any other name as per your need as shown below.

    Code:

    Sub VBAFontColor2()
    
    End Sub

    VBA Font Color Exmaple 1.1

    Step 3: First select the range of the cell where the text is located. Here, our range will be cell B3 and that will be written followed by “.Select” command as shown below.

    Code:

    Sub VBAFontColor2()
    
    Range("B3").Select
    
    End Sub

    VBA Font Color Exmaple 1.2

    Step 4: As we need to change the color of fonts so we will select the Font command with the help of Selection as shown below.

    Code:

    Sub VBAFontColor2()
    
    Range("B3").Select
    Selection.Font
    
    End Sub

    VBA Font Color Exmaple 1.3

    Step 5: After that, we will select the command Color separated by a dot (.) as shown below.

    Code:

    Sub VBAFontColor2()
    
    Range("B3").Select
    Selection.Font.Color
    
    End Sub

    VBA Font Color Exmaple 1.4

    Now to understand the formation of any color, in VBA we have RGB i.e. Red-Green-Blue. Numeric values of each color range from 0 to 255. Suppose we need to change to a color font to Black then RGB value will be RGB(0, 0, 0). As we already have the black color font we will try to select some other color.

    Step 6: Let’s give the largest value to Green color and least to Red and zero to Blue color. As per that, considering Red at 20, Green at 230 and Blue at zero as shown below.

    Code:

    Sub VBAFontColor2()
    
    Range("B3").Select
    Selection.Font.Color = RGB(20, 230, 0)
    
    End Sub
    VBA Font Color Exmaple 1.5
    

    Step 7: Now compile the code to find if it has any error and then run by clicking on the play button located below the menu bar. We will apply font color for text which is in cell B3 and now changed from Black to Green color.

    VBA Font Example1

    Example #2 – VBA Font Color

    There is another way of changing the font color in VBA. For this, we will consider the same text as shown in example-1 located in cell B3.

    Color Example 2

    Apart from RGB, we can change the color of fonts with the keyword “vb” followed by the name of the color. But by this process, we can only get the main basic color as the font color. Where with the help of RGB we could get color of any shade, just by putting the different values for Red, Green and Blue colors.

    The color which can be used with vb are Black, Blue, Cyan, Green, Magenta, Red, White, and Yellow. And how to select the color in format is shown below.

    diff color

    Step 1: To apply this, go to VBA to create the subcategory in the name of VBA Font Color or in any other name in a new module as shown below.

    Code:

    Sub VBAFontColor3()
    
    End Sub

    VBA Font Color Exmaple 2.1

    Step 2: Select the range of cell for which we need to change the font color as shown below.

    Code:

    Sub VBAFontColor3()
    
    Range("B3").Select
    
    End Sub

    VBA color Example 2.1

    Step 3: In the same manner what we have seen in example-1, use selection function with Font and Color to activate them.

    Code:

    Sub VBAFontColor3()
    
    Range("B3").Select
    Selection.Font.Color
    
    End Sub

    VBA color Example 2.2

    Step 4: It lets the color of font from Black to Cyan. For this select Cyan color by vbCyan as shown below.

    Code:

    Sub VBAFontColor3()
    
    Range("B3").Select
    Selection.Font.Color = vbCyan
    
    End Sub

    VBA color Example 2.3

    Step 5: If required then we can compile the code and then run it. We will see the font color of text at cell B3 is changed from Black to Cyan.

    VBA Example 2

    Example #3 – VBA Font Color

    Microsoft has defined a variety of color in different numbers. These are 56 in numbers. We can select any of the color code between to 1 to 56 to change the font color of any cell. These color codes are shown below.

    100 color

    Step 1: Now go to the VBA window and open a new module. In that write the Sub Category of VBA Font Color as shown below.

    Code:

    Sub VBAFontColor4()
    
    End Sub

    VBA Font Color Exmaple 3.1

    Step 2: For this example, we will select the same text as seen in the above examples. Now select the range of the cell which is B3 as shown below.

    Code:

    Sub VBAFontColor4()
    
    Range("B3").Select
    
    End Sub

    Exmaple 3.2

    Step 3: Now in the second line, select the Font function with Selection command.

    Code:

    Sub VBAFontColor4()
    
    Range("B3").Select
    Selection.Font.
    
    End Sub

    VBA color Example 3.4

    Step 4: To select and apply the above-shown color code, we need to select ColorIndex function instead of Color which we used in example 1 and 2.

    Code:

    Sub VBAFontColor4()
    
    Range("B3").Select
    Selection.Font.ColorIndex = 46
    
    End Sub

    Example 3.5

    And at last, select the color code which we need to see in a selected range of cell. Let’s select color code 46 which is used for Orange color.

    Step 5: Now run the code to see the change. We will the color font at cell B3 is now changed from black to orange.

    VBA Font Example 3

    Pros of VBA Font Color

    • It is easy to implement.
    • With the help of RGB, we can change the color of any shade we want.
    • It helps in creating the dashboard where we need to show the different types of data in a different color with the help of VBA.

    Things to Remember

    • It is always recommended to use RGB when we do not know the color code. By giving a different color range from 0 to 255 in RGB we can create any color from dark to bright shade of our choice.
    • Saving the file in Macro Enable Excel helps to use and visit the written code multiple times.
    • Although changing font color in excel is the easiest way to do, but automating this activity in huge set of work can save the time and it will avoid the chances when the file may get crash or hang.

    Recommended Articles

    This is a guide to VBA Font Color. Here we discuss how to use Excel VBA Font Color along with few practical examples and downloadable excel template. You can also go through our other suggested articles –

    1. VBA While Loop
    2. VBA Remove Duplicates
    3. VBA Data Types
    4. VBA Sleep

    Понравилась статья? Поделить с друзьями:
  • Vba excel если файл не существует
  • Vba excel если файл не найден
  • Vba excel если файл есть то удалить
  • Vba excel если то иначе
  • Vba excel добавление кнопки