#344 | RGB値をRとGとBの16進に分割変換する方法 | VBA | |
RGB関数を使うと、Red、Green、Blueの色の三要素を各々指定することで、それらが合成された色のコードを得ることができます。そこで得られた値は長整数型の値で、ForeColorやBaclColorなど、色系のプロパティにそのまま代入することができます。 また、色の設定ダイアログから返される値もRGB関数の返り値と同じ、"8388863"のような長整数型の値です。 そこでここでは、これら単一の長整数の返り値を分解し、Red、Green、Blueそれぞれの値を取得、されにそれを16進に変換した上で、HTMLの色指定に使えるような"#FF0080"という形式にするサンプルプロシージャを紹介します。 次の例では、テキストボックス"txt長整数表記"に入力された長整数型のRGB値をまず変数"lngRGB"に代入します。その値をRed、Green、Blueの3つの値に分解したあと、先頭に"#"を付けてもう1つのテキストボックス"txt16進表記"に代入します。 Private Sub txt長整数表記_AfterUpdate() 'txt長整数表記の更新後処理 Dim lngRGB As Long Dim strR As String Dim strG As String Dim strB As String Dim strHex As String '入力された長整数値を取得 lngRGB = Me!txt長整数表記 '長整数の色表記をR・G・Bに分解 strR = Right$("00" & Hex$((lngRGB And "&H" & "0000FF")), 2) strG = Right$("00" & Hex$((lngRGB And "&H" & "00FF00") / 256), 2) strB = Right$("00" & Hex$((lngRGB And "&H" & "FF0000") / 256 ^ 2), 2) 'R・G・Bそれぞれの文字列を結合 strHex = "#" & strR & strG & strB '結果をtxt16進表記に代入 Me!txt16進表記 = strHex End Sub ※RGB関数ではRed→Green→Blueの順で引数を指定しますが、そこで返される長整数型 (Long) の値は、Blue→Green→Redという順番で16進の2桁単位で格納されています。 実行例: |
|||
|
Copyright © T'sWare All rights reserved |