Colorプロパティ
Excelで文字の色を付けるには、ホームタブ→フォント→フォントの色、で設定します。これは多くの人が使ったことのある機能でしょうね。
VBAで文字の色を付けるにはColorプロパティを利用します。
構文
1 |
Fontオブジェクト.Colorプロパティ |
親オブジェクトにはFontオブジェクトを指定します。
Colorプロパティで取得する値はDouble型のRGB値になります。設定する場合も同様にRGB値を設定します。
RGB値とはRGB関数で赤、緑、青の割合をそれぞれ0から255の範囲で設定した結果の値になります。RGB関数は「RGB(赤割合, 緑割合, 青割合)」で記述します。
サンプルコード
以下のコードはアクティブセルの文字色を取得し、そのあとにアクティブセルの文字色に赤を設定するサンプルです。
文字色の設定ではRGB関数とは別に、VBAで用意されているColorConstants定数の8色が指定できます。
1 2 3 4 5 6 7 8 9 10 |
Sub FontColorTest() Dim dColor As Double '// 文字色を取得 dColor = ActiveCell.Font.Color '// 文字色を設定 ActiveCell.Font.Color = RGB(255, 0, 0) ActiveCell.Font.Color = vbRed End Sub |
8行目ではRGB関数で赤色に、9行目では定数で赤色にしています。どちらでも構いません。
設定できる色の定数
上のサンプルでも使用しているColorConstants定数は以下になります。これらの定数値は同じ色をRGB関数で計算した場合の値と一致します。
色見本 | 定数 | 色 | 値 | 16進数 |
---|---|---|---|---|
vbBlack | 黒 | 0 | 0 | |
vbRed | 赤 | 255 | &HFF | |
vbGreen | 緑 | 65280 | &HFF00 | |
vbYellow | 黄 | 65535 | &HFFFF | |
vbBlue | 青 | 16711680 | &HFF0000 | |
vbMagenta | マゼンタ | 16711935 | &HFF00FF | |
vbCyan | シアン | 16776960 | &HFFFF00 | |
vbWhite | 白 | 16777215 | &HFFFFFF |
Colorプロパティの値はテーマに依存しない
Excel2007以降ではブック全体の色やフォントの種類を指定する「テーマ」の考え方が導入されました。
テーマを変更すると、事前にテーマを設定していた個所は追従して色やフォントが変更されます。
テーマは便利な機能ではありますが、なんでもかんでもテーマ色に染めるため、個別にカスタマイズしたいような場面の場合は使い勝手が悪くなる側面もあります。
そういう場合はフォントの文字色の設定をColorプロパティで行うとよいです。Colorプロパティはテーマに依存しないため、設定したRGB値の色がテーマに関わらず表示されます。