VBAで色を16進数(Hex)で指定する方法|RGBとHexの違いとBGRの注意点

VBAで色を16進数(Hex)で指定するには &H を使います。ただし通常のHex(#FF0000など)とは色の並びが逆(BGR)になるので注意が必要です。普段は RGB() の方が直感的でわかりやすいので、HexはRGBとの対応関係を理解した上で必要なときだけ使いましょう。

この記事では、次の内容を順番に解説します。

  • VBAで色を指定する3つの方法
  • 16進数(Hex)とは何か
  • RGBとHexの変換と、VBA用の注意点

VBAで色を指定する3つの方法は?

VBAでセルや文字に色をつけるには主に3つの方法があります。

  • ColorIndex:1〜56の番号で色を指定する。古い方法で色の種類が少ない。
  • RGB:赤・緑・青の3つの数値(0〜255)で色を指定する。直感的でわかりやすい。
  • Hex(16進数)&H と16進数で色を指定する。Webカラーコードに慣れている場合に使いやすい。

この中で一番わかりやすく使いやすいのは RGB です。Hexは知識として知っておくと役立つ場面があります。

16進数とは?

普段使っている数字は10進数で、0〜9の10種類を使います。10になると桁が上がります。

16進数は0〜9とA〜Fの16種類を使います。Fの次が10(16進数の「10」)になります。

  • 10進数:0, 1, 2 … 9, 10, 11 … 15, 16, 17 …
  • 16進数:0, 1, 2 … 9, A, B, C, D, E, F, 10, 11 …

色の設定では、255(10進数)= FF(16進数)、0(10進数)= 00(16進数)になります。

RGBとHexの対応関係は?

「赤」を例に3つの表現を比べると次のようになります。

  • RGB(通常)RGB(255, 0, 0) 赤=255・緑=0・青=0
  • Hex(通常・Webカラー)#FF0000 左からR・G・Bの順
  • Hex(VBA用)&H0000FF 左からB・G・Rの順(逆!)

VBAのHexはWebカラーとは色の並びが逆(BGR)になっています。これが一番の注意点です。

「青」で確認してみる

  • RGB(通常)RGB(0, 0, 255)
  • Hex(通常)#0000FF
  • Hex(VBA用)&HFF0000 ← 赤と青が入れ替わる
' RGBで赤を指定する
Range("A1").Interior.Color = RGB(255, 0, 0)

' HexでRGBと同じ赤を指定する(BGRの順に注意)
Range("A1").Interior.Color = &H0000FF

まとめ

HexはWebデザインに慣れている方には馴染みやすい表現ですが、VBAではBGRの順になるという落とし穴があります。迷ったらRGBを使うのが一番シンプルです。

  • おすすめはRGBRGB(赤, 緑, 青) で直感的に指定できる。
  • HexはVBAではBGR:通常のWebカラー(#RRGGBB)とは並びが逆になる。
  • VBAのHexの書き方&H に続けて6桁の16進数を書く。

よくある質問

WebカラーコードをそのままVBAで使うには?

Webカラー(#RRGGBB)をVBAのHexに変換するには、R・G・Bを逆にしてBGRの順にする必要があります。たとえば #1A2B3C なら &H3C2B1A になります。変換が面倒な場合はRGBで書く方が確実です。

RGBの値はどこで確認できる?

Excelの「セルの書式設定」→「塗りつぶし」→「その他の色」→「ユーザー設定」タブを開くと、選んだ色のRGB値が確認できます。この値をそのままVBAの RGB(赤, 緑, 青) に使えます。

ColorIndexとRGBはどう使い分ける?

ColorIndexは1〜56の限られた色しか指定できませんが、古いマクロとの互換性があります。RGBは約1677万色を指定できるので、色の細かい指定が必要な場合はRGBを使います。新しく作るマクロはRGBを使うのがおすすめです。

Hex関数はVBAに存在する?

はい、Hex(数値) という関数があり、10進数を16進数の文字列に変換します。たとえば Hex(255)"FF" を返します。色の設定には直接使いませんが、16進数への変換が必要な場面で役立ちます。

VBAでHexを使うメリットはある?

Webデザインのカラーコードを参考にしながら色を設定する場合、HexからRGBに変換せずに使える点はメリットです。ただしBGRへの変換が必要なので、慣れていない場合はRGBで書いた方がミスが少なくなります。


動画で学びたい方へ

「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。

VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。

動画で学ぶExcelマクロ|JIMOVEオンラインスクール

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール