前ページで説明したセル書式のフォントに関するプロパティは Characters プロパティを使用することで文字列の一部分に対して設定を変更することができます。
Characters プロパティの使用方法
Characters は Cells または Range オブジェクトのメンバ(プロパティ)であり、引数にはプロパティを変更したい文字列の開始位置と文字列長を指定します。
Characters プロパティの使用例
次のサンプルマクロは文字列の中のキーワードを赤色にします。汎用的に使えるように、InStr関数によりキーワードを繰り返し検索して着色する処理も組み込んでみました。
Sub sample6_18_2()
Dim keyword As String
Dim keyword_Len As Integer
Dim pos As Integer
'部分的に変更したい文字位置を直接指定する例
With Range("A2")
.Value = "この言葉はとても重要です。"
With .Characters(9, 2).Font
.Size = 14
.Bold = True
.Color = vbRed
End With
End With
'部分的に変更したい文字を指定して繰り返しで処理する例
With Range("A4")
.Value = "この言葉はとても重要です。繰り返しますがとても重要です。"
keyword = "重要" '変更したいキーワードを設定
keyword_Len = Len(keyword) 'キーワードの文字列長を取得
pos = InStr(1, .Value, keyword) 'キーワードを検索
Do Until pos = 0 'キーワードが見つからなくなるまで繰り返し
With .Characters(pos, keyword_Len).Font
.Size = 14
.Bold = True
.Color = vbRed
End With
'次のキーワードを検索
pos = InStr(pos + keyword_Len, .Value, keyword)
Loop
End With
End Sub