Excel VBAの「RGB 関数」について解説します。
RGB 関数とは
Excel VBA の RGB 関数は、色のRGB値を示す整数(Long)を返します。
この関数を使うことで、赤(Red)・緑(Green)・青(Blue)の3つの成分を組み合わせて約1,677万色を自由に表現できます。
RGB 関数の構文や実際の使い方について具体的に解説していきたいと思います。
RGB 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
RGB(red, green, blue)
引数
指定項目 | 説明 |
---|---|
red | 【必須】赤の明度を範囲 0~255 の整数値で指定します |
green | 【必須】緑の明度を範囲 0~255 の整数値で指定します |
blue | 【必須】青の明度を範囲 0~255 の整数値で指定します |
RGB の引数の値が 255 を超えて指定されても 255 と見なされます。また、0 より小さい値が指定された場合は「エラー 5 プロシージャの呼び出し、または引数が不正です。」が発生します。
RGB値を確認したいときは、Windowsの「ペイント」の色の編集やWeb上のカラーコードツールを使うと便利です。色を選んでRGB値を取得すれば、VBAにそのまま使えます。
次表に、標準色の指定値を 赤、緑、青 それぞれの値を示します。
標準色 | red | green | blue |
---|---|---|---|
ブラック | 0 | 0 | 0 |
青 | 0 | 0 | 255 |
緑 | 0 | 255 | 0 |
シアン | 0 | 255 | 255 |
赤 | 255 | 0 | 0 |
マゼンダ | 255 | 0 | 255 |
黄色 | 255 | 255 | 0 |
白 | 255 | 255 | 255 |
戻り値
色のRBG値を示す長整数型 (Long) の値が返ります。
RGB値とは「red, green, blue」の値を組み合わせて表現される色の情報を表す 0 から 16777215 までの範囲の整数値です。
解説(使用例)
RGB 関数の使い方について、サンプルコードを使って解説します。
RGB 関数の使用例
RGB 関数の使用例を紹介します。
基本的な使用例
'■RGB関数サンプル1(基本的な使用例)
Sub RGB_sample_01()
'セルの背景色を設定
Range("B1").Interior.Color = RGB(255, 0, 0) '赤
Range("B2").Interior.Color = RGB(0, 255, 0) '緑
Range("B3").Interior.Color = RGB(0, 0, 255) '青
'セルにRBG値を入力
Range("A1") = RGB(255, 0, 0) '赤RGB値=255
Range("A2") = RGB(0, 255, 0) '緑のRGB値=65280
Range("A3") = RGB(0, 0, 255) '青のRGB値=16711680
'フォントの色を指定
Range("A1").Font.Color = Range("A1") '255
Range("A2").Font.Color = Range("A2") '6528
Range("A3").Font.Color = Range("A3") '16711680
End Sub
セルの背景色などを設定する基本的な例の実行結果が下の画像です。

・4~6行目:B1~B3の各セルの背景色を設定しています。
・8~10行目:A1~A3の各セルにRGB値を入力しています。
・12~14行目:A1~A3の各セル内のフォント色をセルに入力されたRGB値に設定しています。
条件に応じて色を変える例
'■RGB関数サンプル2(条件による色変更例)
Sub RGB_sample_02()
Dim cell As Range
For Each cell In Range("A1:A10")
If cell.Value Mod 2 = 0 Then
'偶数なら行の背景色をスカイブルーにする
cell.EntireRow.Interior.Color = RGB(159, 252, 253)
Else
'奇数の場合は塗りつぶさない
cell.Interior.ColorIndex = 0 '塗りつぶしなし
End If
Next cell
End Sub
A列のセル値に応じて行の背景色を設定する例です。下の画像が実行結果です。

5行目:Mod を使いセルの値を2で割って余りがなければ偶数、あまりがなければ奇数です。
7行目:行全体を取得する EntireRowプロパティを使って指定背景色に塗りつぶします。
10行目:セルに値がないときは、背景色を透明(塗りつぶしなし)にします。
セルを背景色なし(塗りつぶしなし)にするには Interior.ColorIndex = 0 を使います。
R,B,Gの値を変数で管理する例
色定数 vbYellow のRBG値(Long)から、red, blue, green それぞれの値を逆算する例です。
'■RGB関数サンプル3(R,B,Gを変数で管理する例)
Sub RGB_sample_03()
Dim CValue As Long
Dim R As Integer, G As Integer, B As Integer
CValue = vbYellow '65535
R = CValue Mod 256
G = (CValue \ 256) Mod 256
B = (CValue \ 65536) Mod 256
Range("B4") = R & "," & G & "," & B
Range("B4").Interior.Color = RGB(R, G, B)
Range("A4") = RGB(R, G, B)
End Sub
例1(基本的な使用例)の実行結果下に、取得できた値で背景色や値などを追加しています。

おわりに
VBAの関数一覧はこちらからご参照ください。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!
VBA の RGB 関数は、VBAで色を指定する際に最も柔軟で強力な関数です。赤・緑・青の3つの成分を組み合わせることで、約1,677万色を自由自在に表現できます。
RGB 関数のメリットと活用ポイントは次のとおりです。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;