【マクロVBA】文字に色をつける・設定・変更! Font.ColorとRGB・Index・定数で変更

文字操作

エクセルの機能で文字に色をつける機能はよく使用すると思います。
通常の文字に色をつける方法についてはこちらから☟

【基本操作】初心者必見!エクセルで文字のフォント・色・大きさ・アンダーライン・太字への変え方 ► 独学エクセル塾 (dokugakuexcel.com)

同じ動作をマクロVBAでも行うことができます。

様々な変更方法を紹介していますので是非参考にしてみてください。
それでは見ていきましょう。




⬛︎忙しい人向けのコピペ用プログラム

Sub RGBで変数を使用して文字の色を変える()

Dim Red As Long, Green As Long, Blue As Long

Red = 115 '任意のRの数値を入力
Green = 55 '任意のGの数値を入力
Blue = 100 '任意のBの数値を入力

Range("A1:D5").Font.Color = RGB(Red, Green, Blue)

End Sub

⬛︎構文の仕組み

まずは構文を説明します。

 

①RGBで色の指定をする

Range(“色をつけたいセル”).Font.Color=RGB(赤の要素,緑の要素,青の要素)

 

②ColorIndexで色を指定する

Range(“色をつけたいセル”).Font.ColorIndex=インデックス番号

 

③定数で色を指定する

Range(“色をつけたいセル”).Font.Color=色の定数

 

※色の種類は下記の表参照

定数 文字の色
vbBlack
vbRed
vbGreen
vbYellow
vbBlue
vbMagenta
vbCyan シアン
vbWhite

⬛︎文字に色をつける

構文では「RGB」「ColorIndex」「定数」での文字に色をつける構文を紹介しました。

では、実際に各内容を見ていきましょう。

・RGBで色をつける

まずはRGBで色をつける方法を見ていきましょう。
RGBとは「RED:赤」「Green:緑」「Blue:青」の原色を意味しており、
この3色を混ぜて色を指定します。

各数値は「0から255」で指定します。
では構文を再度確認しましょう。

Range(“色をつけたいセル”).Font.Color=RGB(赤の要素,緑の要素,青の要素)

文字に色をつけたいセルは番地で指定します。
例えばB3の文字を指定するときはRange(“B3”)となります。

Range(“A1:D5”)のように複数範囲でも対応可能です。

一方、RGBの方はRGB(赤の要素,緑の要素,青の要素)のように指示します。

ちなみに各要素の数値が大きければ各原色は濃くなります。
一例を紹介すると下記の通りです。

白:RGB(0,0,0)
黒:RGB(255,255,255)
赤:RGB(255,0,0)
黄色:RGB(255,255,0)
青:RGB(0,0,255)

では実際にプログラムを作成してみましょう。

今回は例で「A1:D5」の文字を「赤」にしたいと思います。
プログラムはこのようになります。

Sub RGBで文字の色を変える()
Range("A1:D5").Font.Color = RGB(255, 0, 0)
End Sub

では実行してみましょう。
結果はこのようになりました。

A1からD5の文字が赤くなりましたね。

 

ちなみRGBの数値を知りたい場合はその他の色から確認が可能です。

「ホーム」タブの「フォントの色」に「v」がありますよね。

そちらを押すと下に「その他の色」があります。

そこで「ユーザー設定」を選択すると「RGB」の値が確認できます。

・ColorIndexで色を指定する

今度は「ColorIndex」で文字に色をつける方法を紹介します。
ColorIndexは設定によって変わっており、「1から56」で指定します。

ではColorIndexの設定色を確認してみましょう。

まず、「ファイル」タブの「オプション」を選択します。

そこから「保存」を選択し、「ブックの外観の保持」を見てみましょう。

その中の「色」を選択してみましょう。
すると56色の色が表示されます。

この色を基にColorIndexの色が割り振られます。

なのでColorIndexの色はカスタマイズが可能ということです。

では文字に色をつけてみましょう。
構文はこのようになります。

Range(“色をつけたいセル”).Font.ColorIndex=インデックス番号

文字に色をつけたいセルは先程と同様に番地で指定します。

インデックス番号は「1から56」の数値です。
今回は見本で「A1:D5」の範囲にインデックス番号「5」で実行してみましょう

プログラムはこのようになります。

Sub ColorIndexで文字の色を変える()
Range("A1:D5").Font.ColorIndex = 5
End Sub

それでは実行してみましょう。
結果はこのようになりました。

「A1からD5」の文字の色が青色になってますね。

ではインデックス番号と色を確認するプログラムを紹介します。

Sub ColorIndexの設定色を確認する()
Dim R, C, ColorNo
ColorNo = 1
For C = 1 To 6 Step 1
For R = 1 To 10 Step 1
Cells(R, C).Font.ColorIndex = ColorNo
Cells(R, C) = ColorNo
ColorNo = ColorNo + 1
If ColorNo = 57 Then
Exit Sub
End If
Next R
Next C
End Sub

実行した結果はこちらです。

この結果と、先程のブックの外観の保持の色を比較すると
インデックス番号と設定した色はバラバラに割り振られていることがわかります。

上記プログラムを実行して、
設定がどうなっているのか確認するのも手ですね。

・定数で色を指定する

これまではRGBでの色の指定やColorIndexのインデックス番号のように
数値で色の指定をしましたが、今回は定数の文字で指定します。

構文は下記の通りです。

Range(“色をつけたいセル”).Font.Color=色の定数

文字に色をつけたいセルはこれまでと同様に番地で指定します。

色の指定では下記表のように文字を入力します。

 

定数 文字の色
vbBlack
vbRed
vbGreen
vbYellow
vbBlue
vbMagenta
vbCyan シアン
vbWhite

黒であれば「vbBlack」、緑であれば「vbGreen」のように
「vb」の後に色のスペルを入れるのが特徴です。

 
しかしこれだけでは種類が少ないですよね。

そこで「xl」の後に複雑な色を指定することも可能です。
リンクは下記を参照してください☟

XlRgbColor 列挙 (Excel) | Microsoft Learn
では見本を見ていきましょう。

今回は見本で「A1からD5」の範囲に定数を「vbMagenta」で実行してみましょう

プログラムはこのようになります。

Sub 定数で文字の色を変える()
Range("A1:D5").Font.Color = vbMagenta
End Sub

それでは実行してみましょう。
結果はこのようになりました。

「A1からD5」の文字の色が紫色になってますね。

⬛︎オススメの文字に色をつける方法

これまで3つの文字に色をつける方法を紹介しましたが、
オススメを挙げるとすると「RGB」での指定になります。

理由としては下記の内容になります。

・色の調整や変更を計算や変数で応用できる
・RGBでの指定はどの条件でも変わらない(ColorIndexはPCの設定で変わる)

例を見ていきます。
下記のプログラムを用意しました。

Sub RGBで変数を使用して文字の色を変える()

Dim Red As Long, Green As Long, Blue As Long

Red = 115 '任意のRの数値を入力
Green = 55 '任意のGの数値を入力
Blue = 100 '任意のBの数値を入力

Range("A1:D5").Font.Color = RGB(Red, Green, Blue)

End Sub

通常RGBの値を数値で入力していましたが、
見本のように変数を活用することができます。

 

■練習問題

練習問題も別の記事でまとめているので是非参考にしてみてください!

⬛︎公式の説明

わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟

Font.Color プロパティ (Excel) | Microsoft Learn

⬛︎まとめ

いかがだったでしょうか。
VBAでも文字の色を設定できるのは便利ですね。

例えばIFで条件に当てはまる文字色の色を変更するといったことも可能です。
是非参考にしてみてください。

 

また、セルの背景に色を付ける方法も下記の記事にまとめています☟

【マクロVBA】セルの背景に色をつける・設定・変更! Interior.ColorとRGBなどで指定 ► 独学エクセル塾 (dokugakuexcel.com)

それでは次回の記事でお会いしましょう。

コメント