VBAでフォント (文字) の色を変更する方法!RGB・ColorIndexで簡単設定

当ページのリンクには広告 (Amazonアソシエイト含む) が含まれています。
アイキャッチ

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


・VBAでフォントの色を変更するにはどうすればいいの?

・RGBで色を細かく設定する方法が知りたい!

・条件によって文字の色を自動で変える方法は?

その場合は、VBAの「Font.Colorプロパティ」を
使用すると解決します!


この記事では、Font.Colorプロパティ を使ってセルのフォントの色を変更する方法を、初心者でも理解できるように詳しく解説します。

VBAを使えば、条件に応じた色の変更 や 特定の色を取得して他のセルに適用する など、手作業では面倒な処理を一瞬で実行できます。

「VBAは難しそう…」と思っている方も、この記事を読めばスムーズに理解できますよ!
ぜひ最後まで読んで、Excel作業をもっと便利にしてみましょう! 😊✨


【 この記事の概要 】

よく使う度
難しさ
覚えておくと安心度

VBAをしっかり学びたいけれど、「どこから始めればいいかわからない」と迷っていませんか?

そんな方には、UdemyのVBA講座がおすすめです。

動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!

多彩な講座から自分に合った講座を探そう!
UdemyでVBAを検索
UdemyでVBAを検索 画像出典:Udemy

\  自分のペースで学べるVBA講座はこちら  /

目次

この記事でできるようになること

スポンサーリンク

VBAでフォントの色を変更するとどんなことが便利になる?

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

VBAを使ってフォントの色を変更すると、
Excel作業がもっと便利になります!
例えば、次のようなことが簡単にできるようになりますよ。

フォントを変更したら便利になること
  • 重要なデータを目立たせる
    • 例:売上が目標を超えたら「青」、未達なら「赤」にする
  • エラーデータを一目で識別できる
    • 例:空白セルやエラーがある場合は「赤字」で警告

このように、手作業での色付けを自動化できるので、作業の効率がグッと上がります!

VBAでフォントの色を変更する基本方法 | Font.Colorプロパティ・Font.ColorIndexプロパティ

VBAでセル内のフォント(文字)の色を変更するには、
Font.Colorプロパティ または Font.ColorIndexプロパティ を使用します。

① VBAでフォントの色を自由に変更する方法【Font.Colorプロパティ】

VBAでフォントの色を細かく指定して変更するには、Font.Colorプロパティ を使用します。
このプロパティを使うと、RGB(赤, 緑, 青) 関数 を利用して自由に色を設定できます。

Excel VBAで「フォントの色を変更・取得」する際に、最もよく使われるプロパティなので、ぜひ覚えておきましょう!

Font.Colorプロパティの構成について

Font.Colorプロパティの構成
スクロールできます
コード説明
Range("A1").Font.Color = RGB(255, 0, 0)「A1」セルのフォントの色を赤色に変更
RGB(255, 0, 0)RGB関数を使って「赤色」を指定(赤255, 緑0, 青0)
※RGBの色詳細については、RGB一覧をご覧ください。
vbRedVBAの定数(赤色)(他にも vbBluevbGreen などがある)
※定数の色詳細については、定数一覧をご覧ください。

このように、Font.Colorプロパティ を使用すると、「RGB関数」や「定数」を使って細かくフォントの色を変更できます。

さらに詳細な仕様については、Microsoft公式のFont.Color プロパティ (Excel)を参照してください。

🎨 主要なRGBカラー & VBA定数一覧

Font.Colorプロパティでは、RGB(赤, 緑, 青) 関数 を使って色を指定するだけでなく、vbRedvbBlue などの「定数」も使用できます。

以下に、主な色の指定方法をまとめました!

スクロールできます
色名具体的な色RGB関数VBA定数
RGB(255, 0, 0)RGB(255, 0, 0)vbRed
RGB(0, 255, 0)RGB(0, 255, 0)vbGreen
RGB(0, 0, 255)RGB(0, 0, 255)vbBlue
黄色RGB(255, 255, 0)RGB(255, 255, 0)vbYellow
RGB(0, 0, 0)RGB(0, 0, 0)vbBlack
灰色RGB(128, 128, 128)RGB(128, 128, 128)vbGray
RGB(255, 255, 255)RGB(255, 255, 255)vbWhite
シアン(水色)RGB(0, 255, 255)RGB(0, 255, 255)vbCyan
マゼンタ(紫)RGB(255, 0, 255)RGB(255, 0, 255)vbMagenta

② VBAでカラーパレットから色を選択する方法【Font.ColorIndexプロパティ】

VBAでは、「Font.ColorIndexプロパティ」 を使うことで、Excelの標準カラーパレット(1〜56) を利用してフォントの色を設定できます。

RGB関数を使う方法と異なり、決まった色だけを簡単に指定できます。

Font.ColorIndexプロパティの構成について

Font.ColorIndexプロパティの構成
スクロールできます
コード説明
Range("A1").Font.ColorIndex = 3「A1」セルのフォントの色を赤色に変更
3赤色を指定(標準カラーパレットの番号)
※カラーパレットの色詳細については、カラーパレット一覧をご覧ください。

さらに詳細な仕様については、Microsoft公式のFont.ColorIndex プロパティ (Excel)を参照してください。

🎨 ColorIndexで指定できる主な色一覧

Font.ColorIndexプロパティを使えば、Excelの標準カラーを番号で指定できます。

色名具体的な色ColorIndex
RGB(255, 0, 0)3
RGB(0, 255, 0)4
RGB(0, 0, 255)5
黄色RGB(255, 255, 0)6
RGB(0, 0, 0)1
灰色RGB(128, 128, 128)15
RGB(255, 255, 255)2
シアン(水色)RGB(0, 255, 255)8
マゼンタ(紫)RGB(255, 0, 255)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で好きな色を指定

もう一度 Font.Color の説明を見る

⚠️ ③ 条件付き書式と競合する可能性がある

VBAで Font.ColorFont.ColorIndex を使ってフォントの色を変更しても、条件付き書式(Excelの「書式ルール」)が設定されているセルでは、条件付き書式が優先される場合があります。

条件付き書式が適用されている場合、VBAでの色変更は上書きされる可能性がある!

対策 : どのようにしたらいい?

対策
  • 条件付き書式を活用して、自動で色を変更する設定にする。 (VBAでの色変更は実施しない)
  • VBAでフォントの色を変える前に、条件付き書式を解除しましょう。
Range("A1").FormatConditions.Delete '// 条件付き書式を削除
スポンサーリンク

VBAでセルの色塗りを使った使用例をご紹介 | Font.Color・Font.ColorIndex

ここからは、VBAでフォントの色変更を使用した代表的なコード例を紹介します。

以下に紹介する使用例は、すべてコピペしてすぐに実行できるコードです。
気になる例は、ぜひご覧いただき、実際に実行してみてください。

VBAをしっかり学びたいけれど、「どこから始めればいいかわからない」と迷っていませんか?

そんな方には、UdemyのVBA講座がおすすめです。

動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!

多彩な講座から自分に合った講座を探そう!
UdemyでVBAを検索
UdemyでVBAを検索 画像出典:Udemy

\  自分のペースで学べる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

処理結果

使用例1: 売上データの数値に応じてフォントの色を変更した結果

コードの動作概要

STEP
範囲の指定

Set rng = Range("A1:A10") で対象範囲を設定します。

STEP
ループ処理の開始

For Each cell In rng で各セルを順番に処理します。

STEP
条件分岐

Select Case cell.Value で売上データに応じた処理を実行します。

STEP
フォントカラーの適用

cell.Font.Color = RGB(x, y, z) で色を変更します。

STEP
ループを終了

Next cell で次のセルへ進みます。

このコードで使用している機能

スクロールできます
機能名説明
Rangeセル範囲を指定するオブジェクト
For Each ~ In範囲内のすべてのセルを1つずつ処理するループ
IsEmptyセルが空白かどうかを判定
IsNumericセルの値が数値かどうかを判定
Select Case条件分岐を行う制御構文
Font.Colorフォントの色を変更するプロパティ
RGB(r, g, b)フォントの色をRGB値で指定

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub ChangeFontColorBySales()
    • サブルーチン「ChangeFontColorBySales」を定義します。
  2. Dim rng As Range
    • 「rng」:調査対象のセル範囲を取得します。(Range型)
  3. Dim cell As Range
    • 「cell」:ループで処理する各セルを取得します。(Range型)
  4. Set rng = Range(“A2:A10”)
    • 対象範囲「A2:A10」を設定します。
      この範囲内のセルの値に応じてフォントの色を変更します。
  5. For Each cell In rng
    • セルごとに処理を実行します。
      オブジェクト変数「rng」内のすべてのセルを1つずつ処理します。
  6. If Not IsEmpty(cell.Value) And IsNumeric(cell.Value) Then
    • セルが空白でなく、数値が入っている場合のみ処理します。
      • 「IsEmpty(cell.Value) = False」で空白を除外します。
      • 「IsNumeric(cell.Value) = True」 で数値のみ対象とします。
  7. Select Case cell.Value
    • セルの値に応じた処理を開始します。
      「Select Case」を使用し、値の範囲で条件分岐します。
  8. Case Is >= 80
    cell.Font.Color = RGB(0, 0, 255)
    • 80以上の場合、フォントの色を青に変更します。
      「RGB(0, 0, 255) 」は青色を指定します。
  9. Case Is < 50
    cell.Font.Color = RGB(255, 0, 0)
    • 50未満の場合、フォントの色を赤に変更します。
      「RGB(255, 0, 0)」は赤色を指定します。
  10. Case Else
    cell.Font.Color = RGB(0, 0, 0)
    • 50以上80未満の場合、フォントの色を黒に変更
      「RGB(0, 0, 0)」は黒色(標準の色)を指定
  11. End Select
    • 「Select Case」の終了します。
      ここで条件分岐の処理を終了します。
  12. End If
    • If条件の終了です。
  13. Next cell
    • 次のセルに進みます。
  14. 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

処理結果

使用例2: 指定したキーワードを含むセルのフォント色を変更した結果

コードの動作概要

STEP
キーワードの指定

keyword = "エラー" で検索する単語を設定します。

STEP
範囲の指定

Set rng = Range("A1:A10") で対象範囲を設定します。

STEP
ループ処理の開始

For Each cell In rng で各セルを順番に処理します。

STEP
セルの値にキーワードが含まれているか判定

If InStr(cell.Value, keyword) > 0 Then でチェックします。

STEP
フォントカラーの適用

cell.Font.Color = RGB(255, 0, 0) で色を変更します。

STEP
ループを終了

Next cell で次のセルへ進みます。

このコードで使用している機能

スクロールできます
機能名説明
Rangeセル範囲を指定するオブジェクト
For Each ~ In範囲内のすべてのセルを1つずつ処理するループ
IsEmptyセルが空白かどうかを判定
InStr文字列内に特定の単語が含まれているかを判定
Font.Colorフォントの色を変更するプロパティ
RGB(r, g, b)フォントの色をRGB値で指定

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub ChangeFontColorByKeyword()
    • サブルーチン「ChangeFontColorByKeyword」を定義
  2. Dim rng As Range
    • 「rng」:調査対象のセル範囲を取得します。(Range型)
  3. Dim cell As Range
    • 「cell」:ループで処理する各セルを取得します。(Range型)
  4. Dim keyword As String
    • 「keyword」: 検索するキーワードを格納します。(String型)
  5. keyword = “エラー”
    • 検索キーワードを「エラー」に設定します。
      これを変更すれば、他のキーワードでも検索可能です。
  6. Set rng = Range(“A1:A10”)
    • 対象範囲「A1:A10」を設定します。
      この範囲内のセルの値にキーワードが含まれているかを判定をします。
  7. For Each cell In rng
    • セルごとに処理を実行します。
      オブジェクト変数「rng」内のすべてのセルを1つずつ処理します。
  8. If Not IsEmpty(cell.Value) Then
    • セルが空白でない場合のみ処理します。
      • 「IsEmpty(cell.Value) = False」で空白セルを除外します。
  9. If InStr(cell.Value, keyword) > 0 Then
    • セルの値にキーワードが含まれているかを判定します。
      • 「InStr(文字列, 検索文字列)」は、検索文字列の位置を取得する関数です。
        「0」より大きい場合、キーワードが含まれているということになります。
  10. cell.Font.Color = RGB(255, 0, 0)
    • フォントの色を赤に変更します。
      「RGB(255, 0, 0)」は赤色を指定します。
  11. End If
    • If条件の終了です。
  12. Next cell
    • 次のセルに進みます。
  13. 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

処理結果

使用例3: 文字の一部分のみフォントの色を変更の結果

コードの動作概要

STEP
対象のセルを指定

Set rng = Range("A1") で編集するセルを指定

STEP
文字列をセット

rng.Value = "重要: データエラー" でサンプルデータを入力

STEP
一部分のフォント色を変更

rng.Characters(1, 3).Font.Color = RGB(255, 0, 0) で1〜3文字目を赤に変更

このコードで使用している機能

スクロールできます
機能名説明
Rangeセル範囲を指定するオブジェクト
Characters(開始位置, 文字数)文字列の一部分を指定するプロパティ
Font.Colorフォントの色を変更するプロパティ
RGB(r, g, b)フォントの色をRGB値で指定

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub ChangePartialFontColor()
    • サブルーチン「ChangePartialFontColor」を定義します。
  2. Dim rng As Range
    • 「rng」:調査対象のセル範囲を取得します。(Range型)
  3. Dim cell As Range
    • 「cell」:ループで処理する各セルを取得します。(Range型)
  4. Set rng = Range(“A1”)
    • 対象のセルを「A1」に設定します。
      「A1」セルの文字列の一部を変更します。
  5. rng.Value = “重要: データエラー”
    • 「A1」セルにサンプルの文字列を入力します。
      ⇒ 実際のデータに置き換え可能です。
  6. rng.Characters(1, 3).Font.Color = RGB(255, 0, 0)
    • 文字列の1〜3文字目(「重要:」の「重」「要」)のフォント色を赤に変更します。
      • 「Characters(開始位置, 文字数)」を使って範囲を指定します。
         RGB(255, 0, 0) で赤色を適用します。
  7. 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作業をさらに効率化できます。

あわせて読みたい
サイトマップ このページは、本サイトの記事を分かりやすくまとめました。ぜひご覧ください。 目次 「VBA」を見る 「Officeスクリプト」を見る 「ワークシート関数」を見る 「JavaScr...
スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次