ACCESS VBA関数 RGB関数 [VBA関数]
RGB関数は、コントロールの境界線や背景色の色を指定する、色を表す値を、光の色の三原色、赤・緑・青の割合から求めます。
・書式
RGB(red, green, blue)
・引数
red … 赤の割合を、0から255の数値で指定する
green … 緑の割合を、0から255の数値で指定する
blue … 青の割合を、0から255の数値で指定する
・戻り値
色を表すLong型の値
・使用例
RGB(0,0,0)
赤緑青すべて0の場合は、黒色を表す「0」の値が返されます。
RGB(255,255,255)
赤緑青すべて255の場合は、白色を表す「16777215」の値が返されます。
・パソコンでの色を表す値について
パソコンで色を表す値の事を「カラーコード」などと一般的に呼ばれています。
その名の通り、色を便宜上数値で表したものです。
扱える色の数(精度)の違いで、8ビットカラー、16ビットカラー、24ビットカラーなどの方式があります。
8ビットカラーでは、情報が8ビットなので、全部で256色を指定することができます。
24ビットカラーでは、16,777,216色になります。これを「フルカラー」とも呼びます。通常パソコンで一般的に扱われるのは、この24ビットカラーになります。
通常は24ビットカラーで十分きれいな画像が得られるのですが、グラフィックスのより専門的な分野では、より精度の高い32ビットカラー・48ビットカラー等が用いられます。
パソコンでの色は、赤色、緑色、青色の、それぞれの明度の組み合わせで決められます。
3色すべて真っ暗なら黒色になり、3色すべてもっとも明るいと白色になります。
赤色がもっとも明るく、緑と青が真っ暗なら、そのまま純粋な赤色になります。
赤色と緑色がもっとも明るく、青が真っ暗なら、赤色と緑色が混ざって黄色になります。
こんなふうに、色を掛け合わせてさまざまな色が表現されます。
・注意事項
RGB関数が返す値は0から16777215の値、16,777,216色を返します。
引数の赤緑青それぞれ8ビット+8ビット+8ビットで24ビットです。
24ビットのカラーコードには違いないのですが、下図をご覧ください。
一番上の「赤」を表す値が「#0000FF」になっています。
HTMLの赤を表すカラーコードは、「#FF0000」です。
VBAのRGB関数が返すカラーコードと、HTMLのカラーコードとは異なっています。
たぶん、HTMLのカラーコードの方式の方が、一般的に認識されていると思われます。その感覚で、その値をVBAに指定したり、その逆をするとおかしなことになります。
VBAの場合は、16進で各桁が「#青青緑緑赤赤」となり、
HTMLでは、「#赤赤緑緑青青」となっています。
しかし、フォームのデザインビューで、プロパティを見ると、
背景色が青のテキストボックスの「背景色」の値が、「#0000FF」となっています。
おや、ここは普通のカラーコードなんだね、と思って「255」を入力すると、
エンターキーを押すと…
赤「#FF000」になっちゃいました。
この一貫性の無さを、どう受け止めたらいいんでしょうか。
#を付けて、16進でカラーコードを入力すると通常のHTMLと同じカラーコードを指定できるようです。
#を付けずに、数値として入力する場合は、RGB関数が返す方式のカラーコードを指定しなければならないようです。
グラフィックスに詳しい方や、HTMLでカラーコードに詳しい方、VBAではちょっと違うので、お気を付け下さい。
コメント 0