SSブログ

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ではちょっと違うので、お気を付け下さい。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。
※URL(リンク)は記述できません。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。