サンプルプログラム概要
・選択範囲はプログラムの中で指定する
・色の変更と一緒に太字にする
サンプルプログラム
Option Explicit
Sub sample()
Dim color As Long
Dim targetStr As String
'選択範囲を指定
range("A1:A10").Select
'文字列を指定
targetStr = "aiueo"
'色を指定
color = RGB(255, 0, 0) '赤
'color = RGB(0, 0, 255) '青
'color = RGB(0, 153, 0) '緑
'color = RGB(102, 0, 102) '紫
'color = RGB(255, 102, 0) 'オレンジ
'color = RGB(153, 102, 0) '茶色
'color = RGB(255, 51, 153) 'ピンク
'color = RGB(153, 153, 255) '水色
'color = RGB(153, 153, 0) '黄緑
'color = RGB(102, 102, 102) '灰色
'文字色を変更
Call fontChange(targetStr, color)
'フォーカスをセル「A1」にする
range("A1").Select
End Sub
'文字色を変更
Sub fontChange(targetStr As String, color As Long)
Dim fontObj As Font 'Fontオブジェクト
Dim i As Integer '対象文字列のセルの位置
Dim targetStrLen As Integer '対象文字列の文字数
Dim range As range 'セル範囲の1セル
targetStrLen = Len(targetStr)
'選択範囲を1セルずつ繰り返し
For Each range In Selection
'検索開始位置を1に初期化
i = 1
'セル内の文字列から対象文字列を全て検索
Do
'セル内の文字列から対象文字列の有無を取得
i = InStr(i, range.Value, targetStr)
'対象文字列が無い場合、次のセルへ進む
If (i = 0) Then
Exit Do
End If
'対象文字列部分のFontオブジェクトを取得
Set fontObj = range.Characters(i, targetStrLen).Font
'対象文字列のフォントを設定
fontObj.color = color '文字色
fontObj.Bold = True '太さ
'次検索用に検索開始位置をずらす
i = i + targetStrLen
Loop
Next
'後片付け
Set fontObj = Nothing
End Sub