Accessでコントロールの色を変更する方法は、フォームのデザインビューでプロパティから変更する方法、そしてVBAでコードを記述する方法の2つです。
コントロールとは、フォームのヘッダー、詳細、フッターやコンボボックス、テキストボックスなどの入力系コントロール、コマンドボタンなどです。
Access2010で検証しています。古いバージョンのAccessの場合、コマンドボタンの背景色などは変更できません。
フォームのデザインビューでコントロールの色を変える
各コントロールのプロパティから以下の色を変更できます。
背景色 | コントロールの背景の色 |
---|---|
境界線色 | コントロールの枠(縁取り)の色 |
前景色 | コントロールのテキストの色 |
プロパティの画面は以下の通りです。
色の指定方法は2パターンあります。
あらかじめ定義されている色から選択する方法と、独自の色を指定する方法です。
「背景色を変えても反映されない⁉」と思ったら、背景スタイルが「透明」になっていないか確認しましょう。
背景スタイルが透明だとどんなに色を変えても透明です(笑)
予め定義されている色から選択する方法
上記のようにコンボボックスを開くと選択肢が表示されます。
これらの定数を使用することでWindowsのシステムカラーに合わせることができますのでwindowsのバージョン変更などの際に違和感なく溶け込むことができます。
独自の色を指定する方法
とはいえ、わざわざ変更するからにはコントロールを目立たせたい場合や会社のイメージカラーを使いたい場合など、特定の色を指定したいケースの方が多いかと思います。
その場合は、カラーチャートを使って選択するか、特定の色を指定することになります。
テーマの色や標準の色に指定したい色がなければ、「その他の色」からRGBを指定して色を作成することも可能です。
デザインビューではこのように直接カラーを指定します。
VBAでコントロールの色を変える
次にVBAから指定する方法です。
この方法は状況に応じて色を動的に変更する場合に使うことが多いかと思います。
例えば、以下のように計算結果が正数の時は前景色が黒、負数の時は赤で表示させたい場合などです。
サンプルプログラムは以下の通りです。
'収入-支出を計算して収支コントロールにセット Me.txt収支 = Me.txt収入 - Me.txt支出 '収支がマイナスなら前景色は赤 If Me.txt収支 < 0 Then Me.txt収支.ForeColor = vbRed '収支がプラスなら前景色は黒 Else Me.txt収支.ForeColor = vbBlack End If
このサンプルプログラムでは、色の指定にVBの定数を使用していますが、色の指定方法も3種類あります。
VBの定数を使用して色を指定する
サンプルでご紹介した通り、VBで定義されている色を指定します。
定義済みの色は以下の通りです。定義済みの色の種類はあまり多くはありません。
黒 | vbBlack |
---|---|
赤 | vbRed |
緑 | vbRed |
黄色 | vbYellow |
青 | vbBlue |
マゼンダ | vbMagenta |
シアン | vbCyan |
白 | vbWhite |
RGB関数を使用して色を指定する
VBAの関数RGB()を使用して色を指定する方法もあります。
me.txt収支.ForeColor = RGB(255, 0, 0)
この画面の赤(R)、緑(G)、青(B)をそれぞれRGB関数の引数に指定します。
16進数で色を指定する
カラーチャートなどで見つけた16進数の色(例:FF0000)を指定したい場合は以下のように指定します。
Me.txt収支.ForeColor = RGB(Val(“&HFF”), Val(“&H00”), Val(“&H00”))
16進数をRGB毎(2桁ずつ)に10進数に変換してRGB関数の引数として渡します。
アクセスのカラーコードは特殊なので、16進数のコードを単純に10進数に変更しても希望の色になりません。(エラーにはなりませんが別の色になります)
NG例:me.txt収支.ForeColor = Val(“&HFF0000”)
\逆引き辞書があると便利です/
[itemlink post_id=”1386″]