本ページには広告が含まれています。

VBA RGB 関数 色のRGB値を示す整数(Long)を返す

VBA RGB 関数 色のRGB値を示す整数(Long)を返す

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にそのまま使えます。

次表に、標準色の指定値を 赤、緑、青 それぞれの値を示します。

標準色redgreenblue
ブラック000
00255
02550
シアン0255255
25500
マゼンダ2550255
黄色2552550
255255255

戻り値

色の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

セルの背景色などを設定する基本的な例の実行結果が下の画像です。

RGB関数サンプル1(基本的な使用例)実行結果

・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列のセル値に応じて行の背景色を設定する例です。下の画像が実行結果です。

RGB関数サンプル2(条件による色変更例)実行結果

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(基本的な使用例)の実行結果下に、取得できた値で背景色や値などを追加しています。

RGB関数サンプル3(R,B,Gを変数で管理する例)実行結果

おわりに

VBA の RGB 関数は、VBAで色を指定する際に最も柔軟で強力な関数です。赤・緑・青の3つの成分を組み合わせることで、約1,677万色を自由自在に表現できます。

RGB 関数のメリットと活用ポイントは次のとおりです。

  • RGB 関数のメリット
    • 細かい色調整が可能です
    • Webカラーとの互換性が高いです
    • デザイン性の向上を図ることができます
  • 考えられる活用のポイント
    • エラーメッセージを赤色を使って強調します
    • 注意喚起のメッセージを黄色で表示します
    • 完了メッセージなどは青色や緑色などで表示します
    • グラフやレポートなどの視認性を向上させます

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!