поместите это в модуль в вашем проекте VBA. Затем можно выделить диапазон на листе и запустить подпрограмму из пункта меню «Инструменты»> «Макрос»> «Макросы», чтобы покрасить каждую ячейку в выбранном диапазоне.
Public Sub ColorCells()
Dim cell, rng As Range
Dim color As Integer
Dim sheet As Worksheet
Application.ScreenUpdating = False
Application.StatusBar = "Coloring Cells"
Set rng = Application.Selection
Set sheet = Application.ActiveSheet
For Each cell In rng.cells
Select Case Trim(LCase(cell))
Case "blue"
color = 5
Case "red"
color = 3
Case "yellow"
color = 6
Case "green"
color = 4
Case "purple"
color = 7
Case "orange"
color = 46
Case Else
color = 0
End Select
sheet.Range(cell.Address).Interior.ColorIndex = color
Next cell
Application.ScreenUpdating = True
Application.StatusBar = "Ready"
End Sub
Если пользователи вводят новые имена цветов в ячейки, вы можете поместить это в код листа в проекте VBA, чтобы закрасить ячейки, когда пользователь вводит имена цветов в ячейки
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.cells.Count > 1 Then Exit Sub
Dim color As Integer
Select Case Trim(LCase(Target))
Case "blue"
color = 5
Case "red"
color = 3
Case "yellow"
color = 6
Case "green"
color = 4
Case "purple"
color = 7
Case "orange"
color = 46
Case Else
color = 0
End Select
Target.Interior.ColorIndex = color
End Sub
EDIT: добавлена функция Trim для выражения выражения case для проверки, так что случайные начальные / конечные пробелы в ячейках игнорируются:)