HOME > 即効テクニック > Excel VBA > 書式設定関連のテクニック > RGB値で色を設定する(Colorプロパティ)

RGB値で色を設定する(Colorプロパティ)|Excel VBA

書式設定関連のテクニック

RGB値で色を設定する(Colorプロパティ)

(Excel 2000/2002/2003/2007/2010)

オブジェクト内部の塗りつぶし、フォント、輪郭線、罫線などの色をRGB値を用いて設定します。

●詳細●

RGB値の指定には、RGB関数やQBColor関数を使用します。

構文 Object.Color  設定/取得

設定項目内容
Object Interior、Font、Border、
Bordersコレクションオブジェクト [省略不可]

次のサンプル1はRGB関数で作成されるRGB値を表す色を確認します。

●サンプル1●

Sub ColorSamp1()
    Dim i As Long

    For i = 3 To 10
        Cells(i, 5).Interior.Color = RGB(Abs(Val(Cells(i, 2).Value)) Mod 256 _
            , Abs(Val(Cells(i, 3).Value)) Mod 256 _
            , Abs(Val(Cells(i, 4).Value)) Mod 256)
        '---E列のセルをB、C、D列の値から作成された色で塗りつぶします
    Next i
End Sub

RGB関数の第1引数は赤の割合、第2引数は緑の割合、第3引数は青の割合を、それぞれ0から255の範囲で指定します。

Excel 2003以前のバージョンではワークシート上で表現できる色が標準の色パレットに登録されている56色だけだったため、RGB関数でどんな色を指定しても色パレットにあるもっとも近い色に置き換えられていました。
Excel 2007以降のバージョンではワークシート上で表現できる色の数が1600万色に増えたため、これまでRGB関数で指定しても表示できなかった中間色も表現可能となったのです。

上のサンプル1ではセルB3~D10の範囲に0から255の範囲で値が入力されているときに、それらの値を元にして作成されたRGB値でE列のセルを塗りつぶします。
それぞれの数値を変更して、どのような指定でどんな色が作成されるか確認してみてください。

QBColor関数は、0~15の番号に対応した色のRGB値を返します。次のサンプル2はQBColor関数で作成されるRGB値の表す色を確認します。

●サンプル2●

Sub ColorSamp2()
    Dim c As Range

    For Each c In ActiveSheet.UsedRange
        If IsNumeric(c.Value) Then _
            c.Offset(0, 1).Interior.Color = QBColor(Abs(CLng(c.Value)) Mod 16)
            '---cが数値なら右隣のセルをcの数値をもとに
            '---QBColor関数で返される色で塗る
    Next c
End Sub

QBColor関数で指定できる色は、マクロの実行結果で確認できる16種類のみです。
なお、引数に0~15以外の数値を指定すると、エラーが発生します。

●注意●

Colorプロパティでは、「色なし」や「色自動」といった設定はできませんので、そのような設定を行いたい場合には、ColorIndexプロパティを設定してください。

取得を推奨する企業も!統計・分析スキルを証明する資格「ビジネス統計スペシャリスト」
就職・転職の際、実力アピールに使える資格「VBAエキスパート」