У цьому підручнику ми дізнаємося, як використовувати 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 .
![Як встановити колір шрифту тексту Excel за допомогою VBA? Як встановити колір шрифту тексту Excel за допомогою VBA?]()
Використовуйте властивість Cell.Font VBA, щоб змінити колір і стиль шрифту
- Перейдіть на вкладку Розробник .
- Далі перейдіть і натисніть кнопку Visual Basic .
- У Провіднику проектів зліва виділіть проект Excel_Macros.xlsm , потім натисніть Вставити та виберіть Модуль .
- Буде створено новий модуль 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.
- Тепер натисніть « Виконати» , а потім виберіть «Виконати допоміжну/користувацьку форму» (або просто натисніть F5).
- Перейдіть до аркуша Sheet1 і зверніть увагу на зміни. Вашим записам таблиці було призначено кілька кольорових кодів відповідно до їх тексту (за допомогою функції кольору RGB), а також ми встановили жирний текст і збільшили його розмір.
![Як встановити колір шрифту тексту Excel за допомогою VBA? Як встановити колір шрифту тексту Excel за допомогою VBA?]()
- Якщо ви не зберегли код, натисніть кнопку «Зберегти» (або Ctrl+S), а потім також збережіть книгу.
Отримайте доступ до макросу VBA
- Зауважте, що ваш код завжди доступний для запуску за допомогою команди Макроси, розташованої на вкладці Перегляд (або, як варіант, у Розробник | Макроси)
![Як встановити колір шрифту тексту Excel за допомогою VBA? Як встановити колір шрифту тексту Excel за допомогою VBA?]()
Бонус: стиль клітинки
Excel пропонує можливість створювати «Стилі» клітинок. Стилі можна знайти на Home Ribbon > Стилі:
![стилі шрифту excel vba]()
Стилі дозволяють зберегти бажане форматування клітинок. Потім призначте цей стиль новій клітинці, і все форматування клітинки буде миттєво застосовано. Включно з розміром шрифту, кольором комірки, статусом захисту комірки та будь-чим іншим, доступним у меню «Форматування комірки»:
![меню форматування клітинок excel]()
Особисто для багатьох моделей, над якими я працюю, я зазвичай створюю стиль комірки «Введення»:
Діапазон ("a1"). Стиль = "Введення"
Використовуючи стилі, ви також можете легко визначити типи комірок на робочому аркуші. У наведеному нижче прикладі буде прокручено всі клітинки аркуша та змінено будь-яку клітинку зі стилем = «Input» на «InputLocked»:
Dim Cell як діапазон
Для кожної клітинки в ActiveSheet.Cells
Якщо Cell.Style = "Input" потім Cell.Style = "InputLocked"
Кінець Якщо
Наступна клітинка