教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA セル操作】セルのフォント色(Font.ColorIndex)を変更する方法を教えて!

構文

構文は以下の通りです。

Range("セル範囲").Font.ColorIndex = 番号

解説

Font.ColorIndexプロパティは、文字の色を設定する際に使用する便利な機能です。このプロパティは、セル内の文字列の色を番号を使って指定します。Excelでは、16種類の基本色に対応した番号があります。各番号には特定の色が対応しており、Font.ColorIndexを利用することで簡単に文字色を変更することができます。

番号 内容
0 自動色
1 黒色
2 白色
3 赤色
4 明るい緑色
5 青色
6 黄色
7 ピンク色
8 水色
9 濃い緑色
10 濃い青色
11 濃い赤色
12 明るい茶色
13 濃い紫色
14 濃い黄色
15 明るい青色

使い方

Font.ColorIndexプロパティを使用するには、まず対象となるセルのFontオブジェクトにアクセスする必要があります。以下は、セルB2の文字色を赤色(番号3)に変更する例です。

Sub ChangeFontColor()
    ' 対象セルのFontオブジェクトにアクセスして文字色を変更
    Range("B2").Font.ColorIndex = 3
End Sub

この例では、Range("B2")でセルB2を指定し、そのFontオブジェクトのColorIndexプロパティに3を代入しています。これにより、セルB2内の文字色が赤に変更されます。

プログラミング例

次に、Font.ColorIndexを使った簡単なプログラミング例を示します。この例では、セル内の特定の文字列に応じて文字色を変更するマクロを作成します。

Sub HighlightKeywords()
    Dim targetRange As Range
    Dim cell As Range
    Dim keywords() As String
    Dim keyword As Variant
    ' 対象セルの範囲を指定
    Set targetRange = Range("A1:A10")
    ' 強調したいキーワードを配列に設定
    keywords = Array("重要", "注意")
    ' キーワードごとにループ
    For Each keyword In keywords
        ' キーワードを含むセルの文字色を青(インデックス番号5)に変更
        For Each cell In targetRange
            If InStr(cell.Value, keyword) > 0 Then
                cell.Font.ColorIndex = 5
            End If
        Next cell
    Next keyword
End Sub

この例では、セルA1からA10までの範囲を対象とし、配列keywordsに"重要"と"注意"の2つのキーワードを指定しています。それぞれのキーワードがセル内に含まれている場合に、文字色を青(番号5)に変更します。

まとめ

Font.ColorIndexプロパティを利用することで、簡単にセル内の文字色を変更できます。16種類の基本色に対応しているため、色のバリエーションも豊富です。是非活用してください。