В этом руководстве мы узнаем, как использовать Visual Basic для приложений (VBA) для изменения размера и стиля текста в ячейке Excel на основе содержимого ячейки. Это руководство применимо к Excel 365, 2021, 2019 и 2016.
Предварительные
Если вы новичок в разработке Excel VBA, я рекомендую перед тем, как приступить к изучению учебника, изучить наш учебник по макросам Excel VBA.
Прежде чем приступить к написанию кода, вы должны активировать вкладку разработчика в Excel на ленте, иначе вы не сможете получить доступ к своему редактору Visual Basic.
Измените свойства текста ячейки Excel с помощью VBA
Определите свою электронную таблицу
Мы начнем с определения электронной таблицы Excel, которую будем использовать в качестве примера. Не стесняйтесь использовать его, чтобы следовать этому руководству.
- Откройте Microsoft Excel и создайте новую книгу Excel с поддержкой макросов ( .xlsm ) с именем Excel_Macros.xlsm.
- Сохраните электронную таблицу на локальном диске.
- На рабочем листе Sheet1 добавьте следующую таблицу:

- Теперь с ленты нажмите « Формулы » .
- Затем нажмите «Определить имя» .
- Определите именованный диапазон, к которому вы будете применять свой код VBA, как показано ниже, и нажмите OK .

Используйте свойство Cell.Font VBA для изменения цвета и стиля шрифта.
- Перейдите на вкладку Разработчик .
- Затем нажмите кнопку Visual Basic .
- В левой части Project Explorer выделите проект Excel_Macros.xlsm , затем нажмите Insert и выберите Module .
- Будет создан новый модуль VBA с именем Module1 .
- Вставьте следующий код во вновь созданный модуль:
Sub Color_Cell_Text_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Completion_Status")
'loop through all cells in the range
For Each MyCell In StatusRange
StatValue = MyCell.Value
'modify the cell text values as needed.
Select Case StatValue
'green
Case "Progressing"
With MyCell.Font
.Color = RGB(0, 255, 0)
.Size = 14
.Bold = True
End With
'orange
Case "Pending Feedback"
With MyCell.Font
.Color = RGB(255, 141, 0)
.Size = 14
.Bold = True
End With
'red
Case "Stuck"
With MyCell.Font
.Color = RGB(255, 0, 0)
.Size = 14
.Bold = True
End With
End Select
Next MyCell
End Sub
- Нажмите кнопку « Сохранить » в редакторе Visual Basic.
- Теперь нажмите «Выполнить», а затем выберите «Выполнить Sub/UserForm» (или просто нажмите F5).
- Перейдите на рабочий лист Sheet1 и обратите внимание на изменения. Вашим записям в таблице были присвоены несколько цветовых кодов в соответствии с их текстом (с использованием функции цвета RGB), и мы также сделали текст жирным и увеличили его размер.

- Если вы не сохранили свой код, нажмите кнопку «Сохранить» (или Ctrl+S), а затем также сохраните книгу.
Доступ к макросу VBA
- Обратите внимание, что ваш код всегда доступен для запуска из команды «Макросы», расположенной на вкладке «Вид» (или, альтернативно, в «Разработчик | Макросы»).

Бонус: стиль ячейки
Excel предлагает возможность создавать «Стили ячеек». Стили можно найти на главной ленте > Стили:

Стили позволяют сохранить желаемое форматирование ячеек. Затем назначьте этот стиль новой ячейке, и все форматирование ячейки будет мгновенно применено. Включая размер шрифта, цвет ячейки, состояние защиты ячейки и все остальное, доступное в меню «Форматирование ячейки»:

Лично для многих моделей, над которыми я работаю, я обычно создаю стиль ячейки «Ввод»:
Диапазон("a1").Style = "Ввод"
Используя стили, вы также можете легко идентифицировать типы ячеек на своем листе. В приведенном ниже примере будут пройдены все ячейки на листе и изменена любая ячейка со Style = «Input» на «InputLocked»:
Тусклая ячейка как диапазон
Для каждой ячейки в ActiveSheet.Cells
Если Cell.Style = "Ввод" затем Cell.Style = "InputLocked"
Конец, если
Следующая ячейка