下図のように、セル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 で複数の特定文字に色をつけたい
記事は以上です。
ご覧くださった方、参考サイトさん、ありがとうございます。