プロが教えるわが家の防犯対策術!

アクセス2007です。

フォームのコントロールのバックカラーの色をVBAで変えたいのですが
Me.コンボ0.BackColor = #00B7EF
とするとコンパイルエラーになってしまいます。

Me.コンボ0.BackColor = 255
なら大丈夫です。

「#00B7EF」はデザインビューの値から持ってきました。
(写真参照)

2003の時は、この方法で行けました。

#00B7EFを数値に変換する方法、
もしくは水色のコードを教えてください。

アドバイスよろしくお願いします。

「フォームのコントロールのバックカラーの色」の質問画像

A 回答 (2件)

>2003の時は、この方法で行けました


?本当に
手元の2003でもエラーになりますよ。

そもそもAccessのカラーコードは10進数ですね。
16進数を入れようとしても、そもそも型違いでエラーです。
詳しくはわかりませんが、単純にRGBの指定で数値を作っているようではないですね。
だから、#00B7EFを10進数に変換して、「0 183 239」(実際にはスペースをつめて)と入力しても全然違う色(緑っぽい色)になりますが、そういうのを希望されているわけじゃないですよね?

あくまでもRGBでの色指定のイメージなんですよね?

背景色指定のプロパティ欄の右横に「...」の色パレットを表示するボタンがありますよね?
それをクリックして色指定のダイアログを表示させます。

「色の作成」をクリックすると詳細な色設定の欄が表示されます。
ここの「赤」「緑」「青」の欄に、先の#00B7EFをそれぞれ10進に変換して入力。

赤-0 / 緑-183 / 青-239
ですね。
これで色の追加→OKとクリックしてダイアログを閉じれば、色コードがプロパティに入力されているはずですね。
これで算出されたコードは「15709952」なんですが、これでいいかどうかはご自分で見て確認してください。

Accessをずっと使ってますが、色指定で16進数を使うことはなかったような・・・
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2012/03/24 21:16

> #00B7EFを数値に変換する方法、



最適解かはわからないのですが(汗)、VBAできる値には
以下の関数で変換できます:

RGB(&H00, &HB7, &HEF)

演算結果= 15709952


【解説】
Access2003までは10進数表示でしたが、Access2007
では16進数表示になったようです。
これを、VBAのBackColorなどに使用できるようにするには
上記のようにRGB関数を使用する方法があります。

「#00B7EF」のうち、「#」の後ろ6桁が、実際の数値になり、
左から順に2桁ずつで、それぞれR(赤)、G(緑)、B(青)に
あたります。
そのため、これをRGB関数のそれぞれの引数に割り当てます
が、この値が16進数であることを認識させるため、それぞれの
先頭に「&H」(「H」は「16進数(Hexadecimal)」の頭文字から)
をつけます。
    • good
    • 1
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2012/03/24 21:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A