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

即効テクニック

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

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

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

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

  構文  Object.Color     設定/取得


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


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

●サンプル1●
Sub ColorSamp1()
    Dim i As Integer

    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

セルB3〜D10の範囲に0から255の範囲で値が入力されているときに、それらの値を元にして作成されたRGB値でE列のセルを塗りつぶします。
RGB関数の第1引数は赤の割合、第2引数は緑の割合、第3引数は青の割合を、それぞれ0から255の範囲で指定します。それぞれの数値を変更して、どのような指定でどんな色が作成されるか確認してみてください。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(, 1).Interior.Color = QBColor(Abs(CLng(c.Value)) Mod 16)
            '---cが数値なら右隣のセルをcの数値をもとに
            '---QBColor関数で返される色で塗る
    Next c

End Sub

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

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