今回はVBAで16進数からRGB値を算出し、
それに対応した背景色を設定する方法について(以下参考)
マクロは以下のコピペで動くと思います。(A2に16進数が入力されていることが前提)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Option Explicit Sub ボタン1_Click() Dim R, G, B R = CInt("&H" & Mid(Range("A2"), 5, 2)) G = CInt("&H" & Mid(Range("A2"), 3, 2)) B = CInt("&H" & Mid(Range("A2"), 1, 2)) Range("C2") = R Range("D2") = G Range("E2") = B Range("F2").Interior.Color = RGB(R, G, B) End Sub |
■5行目
→関数「R」「G」「B」を定義する。
■7行目
→まず、Mid関数で「A2」セルの下2桁を抽出します。
その後、頭に「&H」を付け、「&HAF」の文字列にする。
CInt関数で数値型に変換を行うと「&HAF」→「175」になり、
Rの値が算出できます。(8、9行目も同様なイメージ)
■11行目
→7、8、9行目で出した値を
「C2」、「D2」、「E2」の各セルへ格納
■15行目
→Interior.Colorにて「F2」の色を
RGB値に対応した色で塗りつぶします。
※補足(RGB値の設定箇所について)
背景色が設定されているセルにフォーカスを当てた状態で
塗りつぶしアイコンから「その他の色(M)」で以下の画面
コメントを残す