В този урок ще научим как да използваме Visual Basic за приложения (VBA), за да променим размера и стила на текста в клетка на Excel въз основа на съдържанието на клетката. Този урок се прилага за Excel 365, 2021, 2019 и 2016.
Предварителни срещи
Ако сте нов в разработката на Excel VBA, ще ви препоръчам, преди да преминете през урока, да разгледате нашия Excel VBA макро грунд.
Преди да започнете да кодирате, трябва да активирате раздела си за програмисти в Excel в лентата, тъй като в противен случай няма да имате достъп до вашия Visual Basic Editor.
Променете свойствата на текста на вашата клетка в Excel с VBA
Определете вашата електронна таблица
Ще започнем с дефиниране на електронна таблица на Excel, която ще използваме като пример. Чувствайте се свободни да го използвате, за да следвате този урок.
- Отворете Microsoft Excel и създайте нова работна книга на Excel с активиран макрос ( .xlsm ) с име Excel_Macros.xlsm
- Запазете вашата електронна таблица в локалния си диск.
- В работния лист Sheet1 продължете и добавете таблицата по-долу:

- Сега, от лентата, натиснете Формули .
- След това натиснете Определяне на име .
- Дефинирайте наименован диапазон, върху който ще приложите своя VBA код, както е показано по-долу, и натиснете OK .
![Как да настроите цвета на шрифта на текста на Excel с VBA? Как да настроите цвета на шрифта на текста на Excel с VBA?]()
Използвайте свойството 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.
- Сега натиснете Run и след това изберете Run Sub/UserForm (или просто натиснете F5).
- Преминете към вашия работен лист Sheet1 и забележете промените. На вашите записи в таблицата бяха присвоени множество цветови кодове според техния текст (с помощта на цветната функция RGB), а ние също така зададохме текста да бъде удебелен и увеличихме неговия размер.
![Как да настроите цвета на шрифта на текста на Excel с VBA? Как да настроите цвета на шрифта на текста на Excel с VBA?]()
- Ако не сте запазили кода си, натиснете бутона Запиши (или Ctrl+S), след което също запазете работната си книга.
Достъп до вашия VBA макрос
- Имайте предвид, че вашият код винаги е достъпен за стартиране от командата Macros, разположена в раздела View (или алтернативно в Developer | Macros)
![Как да настроите цвета на шрифта на текста на Excel с VBA? Как да настроите цвета на шрифта на текста на Excel с VBA?]()
Бонус: Cell Style
Excel предлага възможност за създаване на „стилове“ на клетка. Стиловете могат да бъдат намерени в Home Ribbon > Стилове:
![excel vba стилове на шрифтове]()
Стиловете ви позволяват да запазите желаното от вас форматиране на клетки. След това присвоете този стил на нова клетка и цялото форматиране на клетката се прилага моментално. Включително размер на шрифта, цвят на клетката, състояние на защита на клетката и всичко останало, налично от менюто за форматиране на клетки:
![меню за форматиране на клетка excel]()
Лично за много от моделите, върху които работя, обикновено създавам стил на клетка „Вход“:
Диапазон ("a1"). Стил = "Вход"
Чрез използването на стилове можете лесно да идентифицирате типовете клетки на вашия работен лист. Примерът по-долу ще премине през всички клетки в работния лист и ще промени всяка клетка със Style = „Input“ на „InputLocked“:
Dim Cell като диапазон
За всяка клетка в ActiveSheet.Cells
Ако Cell.Style = "Вход" тогава Cell.Style = "InputLocked"
Край Ако
Следваща клетка