• ベストアンサー

フォームのコントロールのバックカラーの色を変えたい

アクセス2007です。 フォームのコントロールのバックカラーの色をVBAで変えたいのですが Me.コンボ0.BackColor = #00B7EF とするとコンパイルエラーになってしまいます。 Me.コンボ0.BackColor = 255 なら大丈夫です。 「#00B7EF」はデザインビューの値から持ってきました。 (写真参照) 2003の時は、この方法で行けました。 #00B7EFを数値に変換する方法、 もしくは水色のコードを教えてください。 アドバイスよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • szk9998
  • ベストアンサー率45% (1026/2241)
回答No.2

>2003の時は、この方法で行けました ?本当に 手元の2003でもエラーになりますよ。 そもそもAccessのカラーコードは10進数ですね。 16進数を入れようとしても、そもそも型違いでエラーです。 詳しくはわかりませんが、単純にRGBの指定で数値を作っているようではないですね。 だから、#00B7EFを10進数に変換して、「0 183 239」(実際にはスペースをつめて)と入力しても全然違う色(緑っぽい色)になりますが、そういうのを希望されているわけじゃないですよね? あくまでもRGBでの色指定のイメージなんですよね? 背景色指定のプロパティ欄の右横に「...」の色パレットを表示するボタンがありますよね? それをクリックして色指定のダイアログを表示させます。 ↓ 「色の作成」をクリックすると詳細な色設定の欄が表示されます。 ここの「赤」「緑」「青」の欄に、先の#00B7EFをそれぞれ10進に変換して入力。 ↓ 赤-0 / 緑-183 / 青-239 ですね。 これで色の追加→OKとクリックしてダイアログを閉じれば、色コードがプロパティに入力されているはずですね。 これで算出されたコードは「15709952」なんですが、これでいいかどうかはご自分で見て確認してください。 Accessをずっと使ってますが、色指定で16進数を使うことはなかったような・・・

cvbnhytg
質問者

お礼

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

その他の回答 (1)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

> #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)」の頭文字から) をつけます。

cvbnhytg
質問者

お礼

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