「VBAでフォントの色を変更したいけど、どうすればいいの?」
このように悩んだことはありませんか?

・VBAでフォントの色を変更するにはどうすればいいの?
・RGBで色を細かく設定する方法が知りたい!
・条件によって文字の色を自動で変える方法は?



その場合は、VBAの「Font.Colorプロパティ」を
使用すると解決します!
この記事では、「Font.Colorプロパティ」 を使ってセルのフォントの色を変更する方法を、初心者でも理解できるように詳しく解説します。
VBAを使えば、条件に応じた色の変更 や 特定の色を取得して他のセルに適用する など、手作業では面倒な処理を一瞬で実行できます。
「VBAは難しそう…」と思っている方も、この記事を読めばスムーズに理解できますよ!
ぜひ最後まで読んで、Excel作業をもっと便利にしてみましょう! 😊✨
【 この記事の概要 】
よく使う度 | |
難しさ | |
覚えておくと安心度 |
VBAをしっかり学びたいけれど、「どこから始めればいいかわからない」と迷っていませんか?
そんな方には、UdemyのVBA講座がおすすめです。
動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!


\ 自分のペースで学べるVBA講座はこちら /
この記事でできるようになること
- VBAでフォントの色変更ができるとどんなことが便利になるのか?確認を行う
- Font.Colorプロパティ・Font.ColorIndexプロパティの基本構成を習得する
- フォントの色を変更する際の注意ポイントを把握する
- Font.Colorプロパティ・Font.ColorIndexプロパティの使用例を確認する
VBAでフォントの色を変更するとどんなことが便利になる?



VBAでフォントの色を変更するのは
通常の変更となにか違うの?



VBAを使ってフォントの色を変更すると、
Excel作業がもっと便利になります!
例えば、次のようなことが簡単にできるようになりますよ。
- 重要なデータを目立たせる
- 例:売上が目標を超えたら「青」、未達なら「赤」にする
- エラーデータを一目で識別できる
- 例:空白セルやエラーがある場合は「赤字」で警告
このように、手作業での色付けを自動化できるので、作業の効率がグッと上がります!
VBAでフォントの色を変更する基本方法 | Font.Colorプロパティ・Font.ColorIndexプロパティ
VBAでセル内のフォント(文字)の色を変更するには、
「Font.Colorプロパティ」 または 「Font.ColorIndexプロパティ」 を使用します。
VBAでセルの色を変更する2つの方法【Font.Color & Font.ColorIndex】
① VBAでフォントの色を自由に変更する方法【Font.Colorプロパティ】
VBAでフォントの色を細かく指定して変更するには、「Font.Colorプロパティ」 を使用します。
このプロパティを使うと、「RGB(赤, 緑, 青) 関数」 を利用して自由に色を設定できます。
Excel VBAで「フォントの色を変更・取得」する際に、最もよく使われるプロパティなので、ぜひ覚えておきましょう!
Font.Colorプロパティの構成について


コード | 説明 |
---|---|
Range("A1").Font.Color = RGB(255, 0, 0) | 「A1」セルのフォントの色を赤色に変更 |
RGB(255, 0, 0) | RGB関数を使って「赤色」を指定(赤255, 緑0, 青0) ※RGBの色詳細については、RGB一覧をご覧ください。 |
vbRed | VBAの定数(赤色)(他にも vbBlue や vbGreen などがある)※定数の色詳細については、定数一覧をご覧ください。 |
このように、Font.Color
プロパティ を使用すると、「RGB関数」や「定数」を使って細かくフォントの色を変更できます。
さらに詳細な仕様については、Microsoft公式のFont.Color プロパティ (Excel)を参照してください。
🎨 主要なRGBカラー & VBA定数一覧
Font.Colorプロパティでは、RGB(赤, 緑, 青)
関数 を使って色を指定するだけでなく、vbRed
や vbBlue
などの「定数」も使用できます。
以下に、主な色の指定方法をまとめました!
色名 | 具体的な色 | RGB関数 | VBA定数 |
---|---|---|---|
赤 | ![]() ![]() | RGB(255, 0, 0) | vbRed |
緑 | ![]() ![]() | RGB(0, 255, 0) | vbGreen |
青 | ![]() ![]() | RGB(0, 0, 255) | vbBlue |
黄色 | ![]() ![]() | RGB(255, 255, 0) | vbYellow |
黒 | ![]() ![]() | RGB(0, 0, 0) | vbBlack |
灰色 | ![]() ![]() | RGB(128, 128, 128) | vbGray |
白 | ![]() ![]() | RGB(255, 255, 255) | vbWhite |
シアン(水色) | ![]() ![]() | RGB(0, 255, 255) | vbCyan |
マゼンタ(紫) | ![]() ![]() | RGB(255, 0, 255) | vbMagenta |
② VBAでカラーパレットから色を選択する方法【Font.ColorIndexプロパティ】
VBAでは、「Font.ColorIndexプロパティ」 を使うことで、Excelの標準カラーパレット(1〜56) を利用してフォントの色を設定できます。
RGB関数を使う方法と異なり、決まった色だけを簡単に指定できます。
Font.ColorIndexプロパティの構成について


コード | 説明 |
---|---|
Range("A1").Font.ColorIndex = 3 | 「A1」セルのフォントの色を赤色に変更 |
3 | 赤色を指定(標準カラーパレットの番号) ※カラーパレットの色詳細については、カラーパレット一覧をご覧ください。 |
さらに詳細な仕様については、Microsoft公式のFont.ColorIndex プロパティ (Excel)を参照してください。
🎨 ColorIndexで指定できる主な色一覧
Font.ColorIndexプロパティを使えば、Excelの標準カラーを番号で指定できます。
色名 | 具体的な色 | ColorIndex |
---|---|---|
赤 | ![]() ![]() | 3 |
緑 | ![]() ![]() | 4 |
青 | ![]() ![]() | 5 |
黄色 | ![]() ![]() | 6 |
黒 | ![]() ![]() | 1 |
灰色 | ![]() ![]() | 15 |
白 | ![]() ![]() | 2 |
シアン(水色) | ![]() ![]() | 8 |
マゼンタ(紫) | ![]() ![]() | 13 |
VBAでフォントの色を変更する際の注意ポイント3つ!エラーや制限を回避する方法
VBAでフォントの色を変更する際には、いくつかの制約や注意点 があります。
特に、「透明化ができない」「ColorIndexの色が限られている」など、知らないとハマるポイントもあるので、事前にチェックしておきましょう!
⚠️ ① フォントの透明化はできない!
VBAでは、セルの背景色(Interior.ColorIndex = xlNone)を透明にすることはできますが、フォントの色を「透明」にすることはできません。
Range("A1").Font.ColorIndex = xlNone '// 無効(フォントには適用不可)
Range("A1").Font.ColorIndex = -4142 '// 無効(効果なし)
フォントの透明化は不可能!「透明に見せる」工夫が必要
- フォントの色を背景色と同じにする
- 背景が白なら、フォントを白(vbWhite)にする
- ワークシートの「非表示」設定を利用する
⚠️ ② Font.ColorIndex で指定できる色は限られている
Font.ColorIndex
を使う場合、Excelの標準カラーパレット(1〜56)の色しか指定できません。
これは Excelの決まったカラーパレットを使用する仕様 なので、自由に色を設定したい場合はFont.Color
を使う必要があります。
Range("A1").Font.ColorIndex = 5 '// 青色(標準パレットの5番目)
ColorIndexは簡単に色を指定できるが、自由度が低い!
✅ 自由に色を指定したい場合は Font.Color
を使いましょう。
Range("A1").Font.Color = RGB(123, 200, 255) '// RGBで好きな色を指定
⚠️ ③ 条件付き書式と競合する可能性がある
VBAで Font.Color
や Font.ColorIndex
を使ってフォントの色を変更しても、条件付き書式(Excelの「書式ルール」)が設定されているセルでは、条件付き書式が優先される場合があります。


対策 : どのようにしたらいい?
- 条件付き書式を活用して、自動で色を変更する設定にする。 (VBAでの色変更は実施しない)
- VBAでフォントの色を変える前に、条件付き書式を解除しましょう。
Range("A1").FormatConditions.Delete '// 条件付き書式を削除
VBAでセルの色塗りを使った使用例をご紹介 | Font.Color・Font.ColorIndex
ここからは、VBAでフォントの色変更を使用した代表的なコード例を紹介します。
以下に紹介する使用例は、すべてコピペしてすぐに実行できるコードです。
気になる例は、ぜひご覧いただき、実際に実行してみてください。
VBAをしっかり学びたいけれど、「どこから始めればいいかわからない」と迷っていませんか?
そんな方には、UdemyのVBA講座がおすすめです。
動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!


\ 自分のペースで学べるVBA講座はこちら /
使用例1: 売上データの数値に応じてフォントの色を変更
売上データが一定の閾値(しきいち)を超えた場合にフォントの色を自動で変更する例をご紹介します。
例えば、売上が「80以上なら青」、「50未満なら赤」、「それ以外は黒」に設定します。
このようなコードは、売上データの可視化や異常値の識別に役立ちます。
コード例 | セルの値に応じたフォント色の変更
Sub ChangeFontColorBySales()
Dim rng As Range
Dim cell As Range
'// 対象範囲を指定(A1:A10の範囲)
Set rng = Range("A2:A10")
'// 範囲内の各セルをループ
For Each cell In rng
'// セルが空白でない場合のみ処理
If Not IsEmpty(cell.Value) And IsNumeric(cell.Value) Then
'// 条件分岐
Select Case cell.Value
Case Is >= 80 '// 80以上なら青
cell.Font.Color = RGB(0, 0, 255)
Case Is < 50 '// 50未満なら赤
cell.Font.Color = RGB(255, 0, 0)
Case Else '// 50以上80未満なら黒
cell.Font.Color = RGB(0, 0, 0)
End Select
End If
Next cell
End Sub
処理結果


コードの動作概要
Set rng = Range("A1:A10")
で対象範囲を設定します。
For Each cell In rng
で各セルを順番に処理します。
Select Case cell.Value
で売上データに応じた処理を実行します。
cell.Font.Color = RGB(x, y, z)
で色を変更します。
Next cell
で次のセルへ進みます。
このコードで使用している機能
機能名 | 説明 |
---|---|
Range | セル範囲を指定するオブジェクト |
For Each ~ In | 範囲内のすべてのセルを1つずつ処理するループ |
IsEmpty | セルが空白かどうかを判定 |
IsNumeric | セルの値が数値かどうかを判定 |
Select Case | 条件分岐を行う制御構文 |
Font.Color | フォントの色を変更するプロパティ |
RGB(r, g, b) | フォントの色をRGB値で指定 |
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub ChangeFontColorBySales()
- サブルーチン「ChangeFontColorBySales」を定義します。
- Dim rng As Range
- 「rng」:調査対象のセル範囲を取得します。(Range型)
- Dim cell As Range
- 「cell」:ループで処理する各セルを取得します。(Range型)
- Set rng = Range(“A2:A10”)
- 対象範囲「A2:A10」を設定します。
この範囲内のセルの値に応じてフォントの色を変更します。
- 対象範囲「A2:A10」を設定します。
- For Each cell In rng
- セルごとに処理を実行します。
オブジェクト変数「rng」内のすべてのセルを1つずつ処理します。
- セルごとに処理を実行します。
- If Not IsEmpty(cell.Value) And IsNumeric(cell.Value) Then
- セルが空白でなく、数値が入っている場合のみ処理します。
- 「IsEmpty(cell.Value) = False」で空白を除外します。
- 「IsNumeric(cell.Value) = True」 で数値のみ対象とします。
- セルが空白でなく、数値が入っている場合のみ処理します。
- Select Case cell.Value
- セルの値に応じた処理を開始します。
「Select Case」を使用し、値の範囲で条件分岐します。
- セルの値に応じた処理を開始します。
- Case Is >= 80
cell.Font.Color = RGB(0, 0, 255)- 80以上の場合、フォントの色を青に変更します。
「RGB(0, 0, 255) 」は青色を指定します。
- 80以上の場合、フォントの色を青に変更します。
- Case Is < 50
cell.Font.Color = RGB(255, 0, 0)- 50未満の場合、フォントの色を赤に変更します。
「RGB(255, 0, 0)」は赤色を指定します。
- 50未満の場合、フォントの色を赤に変更します。
- Case Else
cell.Font.Color = RGB(0, 0, 0)- 50以上80未満の場合、フォントの色を黒に変更
「RGB(0, 0, 0)」は黒色(標準の色)を指定
- 50以上80未満の場合、フォントの色を黒に変更
- End Select
- 「Select Case」の終了します。
ここで条件分岐の処理を終了します。
- 「Select Case」の終了します。
- End If
- If条件の終了です。
- Next cell
- 次のセルに進みます。
- End Sub
- サブルーチンを終了します。
総括・ポイント
- 売上データに応じてフォントの色を自動変更できる!
Select Case
を使用することで、条件分岐が簡単に記述できる!RGB(赤, 緑, 青)
で自由に色を設定可能!- 売上データの可視化に活用でき、業務効率化にも最適!
使用例2: 指定したキーワードを含むセルのフォント色を変更
このコードでは、指定したキーワードを含むセルのフォント色を自動で変更します。
このように、「重要」や「エラー」などの特定の単語を含むセルのフォントを赤色にすることで、重要な情報を一目で識別しやすくすることができます。
コード例 | 特定のキーワードを含むセルのフォント色を変更
Sub ChangeFontColorByKeyword()
Dim rng As Range
Dim cell As Range
Dim keyword As String
'// 検索するキーワードを指定
keyword = "エラー"
'// 対象範囲を指定(A1:A10の範囲)
Set rng = Range("A1:A10")
'// 範囲内の各セルをループ
For Each cell In rng
'// セルが空白でない場合のみ処理
If Not IsEmpty(cell.Value) Then
'// セルの値にキーワードが含まれているか判定
If InStr(cell.Value, keyword) > 0 Then
cell.Font.Color = RGB(255, 0, 0) '// 赤色に変更
End If
End If
Next cell
End Sub
処理結果


コードの動作概要
keyword = "エラー"
で検索する単語を設定します。
Set rng = Range("A1:A10")
で対象範囲を設定します。
For Each cell In rng
で各セルを順番に処理します。
If InStr(cell.Value, keyword) > 0 Then
でチェックします。
cell.Font.Color = RGB(255, 0, 0)
で色を変更します。
Next cell
で次のセルへ進みます。
このコードで使用している機能
機能名 | 説明 |
---|---|
Range | セル範囲を指定するオブジェクト |
For Each ~ In | 範囲内のすべてのセルを1つずつ処理するループ |
IsEmpty | セルが空白かどうかを判定 |
InStr | 文字列内に特定の単語が含まれているかを判定 |
Font.Color | フォントの色を変更するプロパティ |
RGB(r, g, b) | フォントの色をRGB値で指定 |
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub ChangeFontColorByKeyword()
- サブルーチン「ChangeFontColorByKeyword」を定義
- Dim rng As Range
- 「rng」:調査対象のセル範囲を取得します。(Range型)
- Dim cell As Range
- 「cell」:ループで処理する各セルを取得します。(Range型)
- Dim keyword As String
- 「keyword」: 検索するキーワードを格納します。(String型)
- keyword = “エラー”
- 検索キーワードを「エラー」に設定します。
これを変更すれば、他のキーワードでも検索可能です。
- 検索キーワードを「エラー」に設定します。
- Set rng = Range(“A1:A10”)
- 対象範囲「A1:A10」を設定します。
この範囲内のセルの値にキーワードが含まれているかを判定をします。
- 対象範囲「A1:A10」を設定します。
- For Each cell In rng
- セルごとに処理を実行します。
オブジェクト変数「rng」内のすべてのセルを1つずつ処理します。
- セルごとに処理を実行します。
- If Not IsEmpty(cell.Value) Then
- セルが空白でない場合のみ処理します。
- 「IsEmpty(cell.Value) = False」で空白セルを除外します。
- セルが空白でない場合のみ処理します。
- If InStr(cell.Value, keyword) > 0 Then
- セルの値にキーワードが含まれているかを判定します。
- 「InStr(文字列, 検索文字列)」は、検索文字列の位置を取得する関数です。
「0」より大きい場合、キーワードが含まれているということになります。
- 「InStr(文字列, 検索文字列)」は、検索文字列の位置を取得する関数です。
- セルの値にキーワードが含まれているかを判定します。
- cell.Font.Color = RGB(255, 0, 0)
- フォントの色を赤に変更します。
「RGB(255, 0, 0)」は赤色を指定します。
- フォントの色を赤に変更します。
- End If
- If条件の終了です。
- Next cell
- 次のセルに進みます。
- End Sub
- サブルーチンを終了します。
総括・ポイント
- 特定のキーワードを含むセルを自動で強調できる!
InStr
関数を活用して、文字列内の検索が簡単に可能!RGB(赤, 緑, 青)
で自由に色を設定できる!- エラーメッセージの識別や重要データの強調に最適!
使用例3: 文字の一部分のみフォントの色を変更
このコードでは、セル内の文字列の一部分だけフォントの色を変更 します。
例えば、「重要: データエラー」 のようなセルがある場合、「重要:」の部分だけを赤色にすることが可能です。
コード例 | 文字の一部分だけフォント色を変更
Sub ChangePartialFontColor()
Dim rng As Range
'// 対象のセルを指定
Set rng = Range("A1")
'// A1セルに文字列を入力(サンプル)
rng.Value = "重要: データエラー"
'// 文字列の先頭5文字(「重要: 」)のフォント色を赤に変更
rng.Characters(1, 3).Font.Color = RGB(255, 0, 0)
End Sub
処理結果


コードの動作概要
Set rng = Range("A1")
で編集するセルを指定
rng.Value = "重要: データエラー"
でサンプルデータを入力
rng.Characters(1, 3).Font.Color = RGB(255, 0, 0)
で1〜3文字目を赤に変更
このコードで使用している機能
機能名 | 説明 |
---|---|
Range | セル範囲を指定するオブジェクト |
Characters(開始位置, 文字数) | 文字列の一部分を指定するプロパティ |
Font.Color | フォントの色を変更するプロパティ |
RGB(r, g, b) | フォントの色をRGB値で指定 |
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub ChangePartialFontColor()
- サブルーチン「ChangePartialFontColor」を定義します。
- Dim rng As Range
- 「rng」:調査対象のセル範囲を取得します。(Range型)
- Dim cell As Range
- 「cell」:ループで処理する各セルを取得します。(Range型)
- Set rng = Range(“A1”)
- 対象のセルを「A1」に設定します。
「A1」セルの文字列の一部を変更します。
- 対象のセルを「A1」に設定します。
- rng.Value = “重要: データエラー”
- 「A1」セルにサンプルの文字列を入力します。
⇒ 実際のデータに置き換え可能です。
- 「A1」セルにサンプルの文字列を入力します。
- rng.Characters(1, 3).Font.Color = RGB(255, 0, 0)
- 文字列の1〜3文字目(「重要:」の「重」「要」)のフォント色を赤に変更します。
- 「Characters(開始位置, 文字数)」を使って範囲を指定します。
RGB(255, 0, 0) で赤色を適用します。
- 「Characters(開始位置, 文字数)」を使って範囲を指定します。
- 文字列の1〜3文字目(「重要:」の「重」「要」)のフォント色を赤に変更します。
- End Sub
- サブルーチンを終了します。
総括・ポイント
- セルの一部分だけフォントの色を変更できる!
Characters(開始位置, 文字数).Font.Color
を使えば部分的な装飾が可能!- エラーメッセージや警告文など、一部を強調したい場合に便利!
- 応用すれば、太字やフォントサイズ変更などの装飾も可能!
この記事のまとめ
この記事では、VBAを使用してフォントの色を変更する方法 について詳しく解説しました。
Font.Colorプロパティ を使えば、フォントの色を RGB値や定数 で自由に変更できます。
また、 Font.ColorIndexプロパティ を使用すると、Excelの標準カラーパレット を活用して色を設定できます。
さらに、フォントの色を変更する際の注意点 や、実際の業務で役立つ使用例 も紹介しました。
VBAを活用することで、手作業での色付けを自動化し、Excel作業を効率化できます! 🚀✨
ポイントのおさらい
✅ VBAでフォントの色を変更する基本方法
VBAでフォントの色を変更するには、「Font.Colorプロパティ」または「Font.ColorIndexプロパティ」 を使用します。
👉 詳しくはこちら
⇒ 「VBAでフォントの色を変更する基本方法-|-Font.Colorプロパティ・Font.ColorIndexプロパティ」をもう一度見る
VBAでフォントの色を変更する際の注意ポイント
VBAを使う際には、いくつかの制約や注意ポイントがあります。
特に、以下の3つのポイントに気をつける必要があります。
- フォントを透明にすることはできない
- Font.ColorIndexで指定できる色は限られている
- 条件付き書式と競合する可能性がある
👉 詳しくはこちら
⇒ 「VBAでフォントの色を変更する際の注意ポイント3つ!エラーや制限を回避する方法」をもう一度見る
✅ VBAのフォント色変更を活用した使用例
VBAを活用すると、フォントの色を使った便利な処理を自動化できます!
以下の3つの使用例を紹介しました。
使用例 | 概要 | 活用シーン |
---|---|---|
使用例1 | 売上データの数値に応じてフォントの色を変更 | 売上・成績データの可視化 |
使用例2 | 指定したキーワードを含むセルのフォント色を変更 | エラーや重要な情報の強調 |
使用例3 | 文字の一部分のみフォントの色を変更 | レポートや通知文の装飾 |
👉 詳しくはこちら
⇒ 「VBAでセルの色塗りを使った使用例をご紹介 | Font.Color・Font.ColorIndex」をもう一度見る


さらに学ぶために
VBAのフォント色変更を学んだら、次は関連するVBAの便利な機能を学んでみましょう!
以下の機能や方法と組み合わせると、Excel作業をさらに効率化できます。

