セル内の指定文字に色をつける関数
タイトルのマクロです。
'***************************************
'* セル内の指定文字に色をつける
'* txt:指定文字
'* colorNum:カラー番号。vbBlue, vbGreen, vbCyan, vbRed, vbYellow など
'* rng:指定文字の入ったセル
Sub ColorText(ByVal txt As String, ByVal colorNum As Long, ByVal rng As Range)
Dim Text As String
Dim FindText As String
Dim TextLength As Long
Dim FindLength As Long
Dim i As Long
Dim j As Long
If rng.Count <> 1 Then
MsgBox "処理するセルは、1個限定です。マクロ終了します"
Exit Sub
End If
Text = rng.Value
FindText = txt
TextLength = Len(Text)
FindLength = Len(FindText)
For i = 1 To TextLength - FindLength + 1
If Mid(Text, i, FindLength) = FindText Then
For j = i To i + FindLength - 1
rng.Characters(j, 1).Font.Color = colorNum
Next j
End If
Next i
End Sub
以下が使用例です。
Private Sub ColorTextテスト()
Call ColorText("業務", vbRed, ActiveCell)
End Sub
以下のように、セルを選択して、マクロを実行すると、「業務」の文字列が、赤に着色されます。
上が実行までで、下が実行後です。