Добро пожаловать в SuperUser. VBA не так страшен, как может показаться на первый взгляд, и это отличный проект, чтобы начать понимать некоторые функции.
Во-первых, вы должны включить вкладку разработчика в Excel.
1 - Перейдите на вкладку «Файл».
2 - Нажмите Параметры.
3 - Нажмите «Настроить ленту».
4. В разделе «Настройка ленты» и в разделе «Основные вкладки» установите флажок «Разработчик».
Затем нажмите Alt+F11, чтобы открыть редактор VBA, затем создайте "Новый модуль", выбрав его в раскрывающемся списке здесь:
Вставьте следующий код в открывшееся новое окно. (похоже, что много, но после того, как вы начнете с ним работать, ничего особенного)
'The following Function helps Excel identify if a character is a letter or not
Function IsLetter(strValue As String) As Boolean
Dim intPos As Integer
For intPos = 1 To Len(strValue)
Select Case Asc(Mid(strValue, intPos, 1))
Case 65 To 90, 97 To 122
IsLetter = True
Case Else
IsLetter = False
Exit For
End Select
Next
End Function
'The following function helps Excel identify if a character is a special character, like #, @, and !
Function IsSpecial(strValue As String) As Boolean
Dim intPos As Integer
For intPos = 1 To Len(strValue)
Select Case Asc(Mid(strValue, intPos, 1))
Case 33 To 47, 58 To 64, 91 To 96, 123 To 126
IsSpecial = True
Case Else
IsSpecial = False
Exit For
End Select
Next
End Function
'This is the Macro that will change the colors of characters in your selected range
Public Sub ColorText()
'the next 3 lines set abbreviations as certain kinds of things. Long is a number or integer, Ranges are cell selections
Dim lng As Long
Dim rng As Range
Dim cl As Range
'The next line sets the range of cells to change colors in to whatever cells you have selected on the sheet
Set rng = Selection
'This section loops through each cell in your selection and checks each character in the cell.
For Each cl In rng.Cells
For lng = 1 To Len(cl.Value)
With cl.Characters(lng, 1)
'First the code checks for letters and keeps them black
If IsLetter(.Text) Then
.Font.ColorIndex = 1 'change this number to change the color
'Next it checks for Special Characters and colors them Blue
ElseIf IsSpecial(.Text) Then
.Font.ColorIndex = 41
'If a character is not a letter or a special, it must be a number, so it colors numbers red
Else
.Font.ColorIndex = 3
End If
End With
Next lng 'this moves the code to the next character
Next cl 'once all the characters are checked, this moves the code to the next cell
End Sub 'once all the selected cells have been run through, this ends the code
Ваш модуль должен выглядеть следующим образом.
Теперь вы готовы начать менять цвета.
Сначала выберите все ячейки, на которые вы хотите изменить цвета.
Затем откройте вкладку «Разработчик» (1) и нажмите кнопку «Макросы» (2):
Вы должны увидеть свой макрос ColorText. Выберите его и нажмите Run
И ваш текст должен быть окрашен в зависимости от типа символа!
Это изменит цвет символов в выбранных ячейках. Таким образом, вы можете выбрать целый столбец или отдельные ячейки.
Если вы когда-нибудь захотите возиться с кодом, просто нажмите Alt+F11, чтобы открыть редактор vba. Вам нужно будет дважды щелкнуть по модулю 1, чтобы открыть его.
Чтобы изменить цвета в VBA, обратитесь к этой таблице для вариантов цвета и соответствующих номеров.
Надеюсь, это поможет. Вы даже можете назначить этот макрос для кнопки или пользовательского сочетания клавиш.