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

VBA QBColor 関数 色インデックスに対応する値を返す

VBA QBColor 関数 色インデックスに対応する値を返す

Excel VBAの「QBColor 関数」について解説します。

スポンサーリンク

QBColor 関数とは

Excel VBA の QBColor 関数は、指定したカラーインデックス番号に対応するRGB値を表す整数(Long)を返します。

VBAで色を指定する方法の一つが QBColor 関数です。QuickBasic由来の16色をインデックス番号で指定する初心者にも扱いやすいシンプルな関数です。

QBColor 関数の構文や実際の使い方について具体的に解説していきたいと思います。

QBColor 関数(Visual Basic for Applications リファレンス)

スポンサーリンク

構文(引数と戻り値)

Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。

構文

QBColor(color)

引数

指定項目説明
color【必須】範囲 0~15 の整数値を指定します

引数 color の設定値は次表のとおりです。(対応する戻り値も追記しています)

番号対応する戻り値
00
18388608
232768
3水色8421376
4128
58388736
632896
712632256
8灰色8421504
9明るい青16711680
10明るい緑65280
11明るい水色(シアン)16776960
12明るい赤255
13明るい紫(マゼンタ)16711935
14明るい黄65535
15明るい白16777215

戻り値

指定色のインデックス番号に対応するRBG値を示す長整数型 (Long) の値が返ります。

カラーインデックス番号に対応する戻り値のRGB値は、前表の3列目に記載しましたのでそちらを参照願います。

解説(使用例)

QBColor 関数の使い方について、サンプルコードを使って解説します。

QBColor 関数の主な使用例

QBColor 関数の使用例を紹介します。

基本的な使用例

セルの背景色などを QBColor 関数で設定する基本的な例のコードと実行結果です。

'■QBColor関数サンプル1(基本的な使用例)
Sub QBColor_sample_01()
  'セルの背景色を設定
  Range("B1").Interior.Color = QBColor(9) '明るい青
  Range("B2").Interior.Color = QBColor(10) '明るい緑
  Range("B3").Interior.Color = QBColor(12) '明るい赤
  'セルにQBColorの戻り値を入力
  Range("A1") = QBColor(9)  '=16711680
  Range("A2") = QBColor(10)  '=65280
  Range("A3") = QBColor(12)  '=255
  'フォントの色を指定
  Range("A1").Font.Color = Range("A1") '=QBColor(9)
  Range("A2").Font.Color = Range("A2") '=QBColor(10)
  Range("A3").Font.Color = Range("A3") '=QBColor(12)
End Sub
QBColor関数サンプル1(基本的な使用例)実行結果

・4~6行目:B1~B3の各セルの背景色を QBColor 関数で設定しています。

・8~10行目:A1~A3の各セルに戻り値のRGB値を入力しています。

・12~14行目:A1~A3の各セル内のフォント色を QBColor 関数で設定しています。

条件に応じて色を変える例

A列のセル値に応じて行の背景色を QBColor 関数設定する例と実行結果です。

'■QBColor関数サンプル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 = QBColor(11)
    Else
      '奇数の場合は塗りつぶさない
      cell.Interior.ColorIndex = 0 '塗りつぶしなし
    End If
  Next cell
End Sub
QBColor関数サンプル2(条件による色変更例)実行結果

5行目:Mod を使いセルの値を2で割って余りがなければ偶数、余りがなければ奇数です。

7行目:行全体を取得する EntireRowプロパティを使って指定背景色に塗りつぶします。

10行目:セルに値がないときは、背景色を透明(塗りつぶしなし)にします。
セルを背景色なし(塗りつぶしなし)にするには Interior.ColorIndex = 0 を使います。

全色インデックスを表示する例

QBColor 関数に使用できる16色のカラーインデックスを順番に行へ設定する例と実行結果です。

'■QBColor関数サンプル3(全色インデックスを表示する例)
Sub RGB_sample_03()
  Dim i As Integer
  For i = 0 To 15
    With Cells(i + 1, 1)
      .Value = "QBColor(" & i & ")" '塗りつぶす色設定を入力
      .EntireRow.Interior.Color = QBColor(i)
    End With
  Next i
End Sub
QBColor関数サンプル3(全色インデックスを表示する例)実行結果

4行目:16色のカラーインデックスを順番に行へ設定するように、0~15までループさせます。

6行目:1行目のセルに塗りつぶす色設定コードえを入力します。

7行目:行全体を取得する EntireRowプロパティを使って背景を指定色に塗りつぶします。

おわりに

VBA の QRColor 関数は、VBAで色を指定する際に使用できる関数です。色の選択肢こそ16色と限られていますが、シンプルで扱いやすいのが魅力です。特に、レガシーコードの保守や簡易的な色指定には最適です。

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

  • QBColor 関数のメリット
    • 色指定がシンプルで覚えやすい(16色)
    • レガシーコードとの互換性が高い
  • 考えられる活用のポイント
    • 簡易的な色分けで問題ない場合
    • 古いVBAコードの保守や改修などの場合

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

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

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

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

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

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