セル内の指定文字に色をつける関数

タイトルのマクロです。

'***************************************
'* セル内の指定文字に色をつける
'* 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

以下のように、セルを選択して、マクロを実行すると、「業務」の文字列が、赤に着色されます。

上が実行までで、下が実行後です。

Follow me!