文字の一部だけ色を変える|Excel VBA |
Charactersオブジェクトを使って、セルの中の文字の一部だけ色を変えることができます。
セルに入力されている文字の色を変更するには、FontオブジェクトのColorIndexプロパティ、またはColorプロパティを使用します。
次のサンプルは、セルA1とA2の文字を赤色に設定します。
Sub Sample1()
Range("A1").Font.ColorIndex = 3
Range("A2").Font.Color = RGB(255, 0, 0)
End Sub
ColorIndexプロパティには、色を表す番号を指定します。
定数はありませんので、数字で指定してください。どの番号が何色を表すかは、マクロ記録で確認するといいでしょう。
このようにセル全体の文字色を変更するにはFontオブジェクトを操作すればいいのですが、文字列の一部分だけ色を変えるにはどうしたらいいでしょう。
そんなときは、Rangeオブジェクト内のFontオブジェクト全体を操作するのではなく、Rangeオブジェクト内のCharactersオブジェクトを操作します。
Charactersオブジェクトは、セル内のデータを文字単位に扱えるオブジェクトです。
たとえば、アクティブセルに「東京都新宿区新宿」と入力されているとき「新宿区」だけを赤色にするにはCharactersオブジェクトを使って「4文字目から3文字分」と指定します。
Sub Sample2()
ActiveCell.Characters(Start:=4, Length:=3).Font.ColorIndex = 3
End Sub