今回は、セルの文字色を取得・設定する方法について解説します。
主要な色の種類から、RGB形式・定数での指定方法、一部文字列だけ色を設定する方法など、さまざまな設定方法を詳しく解説していますので、是非最後までお付き合いください!
- セルの文字列を取得・設定する方法が分かります。
- RGB形式や定数での指定方法など、複数パターンの色の設定が分かります。
- コピペで使える実践的なサンプルコードを掲載しています。
前提
関連プロパティ
セル文字色を設定するには、以下2パターン存在します。
色を指定する際、「RGB形式・定数」で指定するか、「インデックス番号」で指定するかにより使い分けましょう。
# | プロパティ | 説明 |
---|---|---|
1 | Color | RGB形式・定数にてセルの文字色を設定。 RGB形式・定数にてセルの文字色を取得。 |
2 | ColorIndex | 色のインデックス番号を指定し、セルの文字色を設定。 セルの文字色のインデックス番号を取得。 |
RGBやインデックス番号に対応した色について
代表的な色のRGBと、インデックス番号を掲載します。
ここでは、注目してほしい点を目立たせる「赤と青」、スタンダードな「黒と白」をご紹介します。
# | 色 | RGB | ColorIndex |
---|---|---|---|
1 | RGB(255, 0, 0) | 1 | |
2 | RGB(255, 255, 255) | 2 | |
3 | RGB(255, 0, 0) | 3 | |
4 | RGB(0, 0, 255) | 5 |
上記以外の色のRGBやインデックス番号を詳しく知りたい方は以下の記事にて解説しています。
基本情報
Colorプロパティ
RGB形式でセルの背景色を設定したい場合、Range.FontオブジェクトのColorプロパティを使用します。
また、ColorプロパティはRBG形式だけでなく定数での指定も可能です。
構文
RangeObject.FontObject.Color = 設定値
設定値
RGB値 及び 「XlRgbColor」定数を指定します。
「XlRgbColor」定数について以下をご参照ください。
(参考:色の一覧表 – XlRgbColor)
ColorIndexプロパティ
インデックス番号でセルの背景色を設定したい場合や、セル文字色をクリアする場合は、Range.InteriorオブジェクトのColorIndexプロパティを使用します。
構文
RangeObject.FontObject.ColorIndex = 設定値
設定値
インデックス番号 及び「XlColorIndex」定数を指定します。
定数
ColorIndexプロパティでは、「XlColorIndex」定数も指定可能です。
# | 定数 | 説明 |
---|---|---|
1 | xlColorIndexAutomatic | 色を自動的に設定 |
2 | xlColorIndexNone | 色なし ※文字色は色なしには設定できないため、無効となります。 |
サンプルコード
セルの文字色を設定する
Public Sub setStringColor()
' A1セルの文字色を 赤字 にする
Range("A1").Font.Color = RGB(255, 0, 0)
' A2セルの文字色を 青字 にする
Range("A2").Font.Color = rgbBlue
' A3セルの文字色を 白 にする
Range("A3").Font.ColorIndex = 2
End Sub
セルの一部文字色を設定する
Public Sub setStringColorForPart()
' A1セルの 2文字目を起点にした 3文字を 赤字 にする
Range("A1").Characters(2, 3).Font.Color = rgbRed
End Sub
セルの文字色を取得する
Public Sub getStringColor()
Dim colorVal As Long ' Colorプロパティ返却用
Dim colorIndexVal As Long ' ColorIndexプロパティ返却用
' A1セルの文字色を取得
colorVal = Range("A1").Font.Color
' 取得した背景色を B1セルに反映
Range("B1").Font.Color = colorVal
' A2セルの背景色を取得
colorIndexVal = Range("A2").Font.ColorIndex
' 取得した背景色を B2セルに反映
Range("B2").Font.ColorIndex = colorIndexVal
End Sub
ColorIndexプロパティで文字色を取得する場合、文字色がColorIndexのインデックス番号に対応しているかを確認ください。
意図しないインデックス番号が取得されます。
セルの文字色を自動(初期値)に戻す
Public Sub clearStringColor()
' A1セルの文字色を自動(初期値)にする
Range("A1").Font.ColorIndex = xlColorIndexAutomatic
End Sub
シートすべてのセルの文字色を自動(初期値)に戻す
Public Sub clearAllStringColor()
' 1番目のシートのセルの文字色をすべて自動(初期値)にする
Worksheets(1).Cells.Font.ColorIndex = xlColorIndexAutomatic
End Sub
最後に
今回は、セルの文字色を取得・設定する方法について解説しました。
本記事が、皆さんのお力になれば幸いです!
コメント