HOME > 即効テクニック > Excel VBA > 書式設定関連のテクニック > 文字の一部だけ色を変える

文字の一部だけ色を変える|Excel VBA

書式設定関連のテクニック

文字の一部だけ色を変える

(Excel 2000/2002/2003/2007/2010)

●概要●

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