文字の色を変える

下図のように、セルA1~A5内のデータで、E1~最終行の文字と同じものがあれば、そこだけ色を赤に変えるようにしました。
(以前は入っている文字を一つだけ変えるようにしていましたが、2020年2月12日より、検索文字が入っている分だけ、色が変わるように変更しました。
また、VBAは一回走らせると「元に戻す」ができません。一回保存されてからお試しください。)

シートの画像です

Sub 文字の色を変える()
    
    Dim search_col As String '検索文字の列
    search_col = "E"
    
    Dim data_r As Range
    Set data_r = Range("A1:A9")    'データの入ったセル範囲
    
    Dim row_i As Long
    Dim len_i As String
    Dim cl As Range
    Dim n As Long
    Dim r As Long
    
    For row_i = 1 To Cells(Rows.count, search_col).End(xlUp).Row '検索文字の行
        len_i = Cells(row_i, search_col)                         '検索文字
        For Each cl In data_r        'データの入ったセル範囲の中を見る
            For n = 1 To Len(cl)     'データセル範囲の文字を1つずつ見る
                r = Len(len_i)       '検索文字の文字数
                If Mid(cl, n, r) = len_i Then   '検索文字があった場合、その文字の色を赤くする。
                    With cl.Characters(n, r).Font
                     .Color = vbRed
                     
                     '以下、フォントの変更(お好みで。下記4行はコメントアウトしています。)
                     '  .Size = 14             '文字の大きさを変更する場合
                     '  .FontStyle = "太字"    '太字にする場合
                     '  .FontStyle = "斜体"    '斜めの文字にする場合
                     '  .FontStyle = "太字 斜体"  '太字かつ斜体の文字にする場合
                     
                    End With
                End If
            Next n
        Next
    Next row_i
    
    Set data_r = Nothing
    
End Sub

参考サイトさんです。
EXCEL VBA で複数の特定文字に色をつけたい

記事は以上です。
ご覧くださった方、参考サイトさん、ありがとうございます。

おすすめの記事