HOME > 即効テクニック > AccessVBA > ユーザーインターフェース > 月によってラベルの背景色を自動的に変更する

即効テクニック

ユーザーインターフェース

月によってラベルの背景色を自動的に変更する

(Access 2000/2002)
フォームに配置されたラベルの背景色を、その月によって自動的に変更する方法を紹介します。
ここでは背景色を変更しますが、応用で、その他のプロパティを変更したり、月単位ではなく、時間単位で変更することも可能です。
また、ラベル以外ののコントロールやフォーム自体のプロパティに対しても応用できますので、月によって、あるいは日によって書式や内容を変更する必要のなる場合は、いくつものフォームを用意する手間も省けるのではないでしょうか?

●操作手順●
背景色は、偶数月は青、奇数月は緑に変更します。

(1)フォームを新規作成して、デザインビューで表示します。

(2)ラベルを配置してプロパティシートを表示します。

(3)次のプロパティを設定します。

・[書式]タブの[背景スタイル]を「普通」にする
・[その他]タブの[名前]を「ラベル0」にする

(4)フォームのプロパティシートを表示して[イベント]タブの
[開く時]にイベントプロシージャを設定します。

(5)コード表示ボタン[...]をクリックして、次のコードを記入します。

Private Sub Form_Open(Cancel As Integer)
    If Month(Now) Mod 2 = 0 Then
        '背景色を青にする
        ラベル0.BackColor = QBColor(1)
    Else
        '背景色を緑にする
        ラベル0.BackColor = QBColor(2)
    End If
End Sub

(6)フォームを保存してから開くと、偶数月の場合はラベルの
背景色が青、奇数月の場合は緑に表示されます。

●補足●

<Month関数>
1年の何月かを表す0〜12の範囲の整数を表すバリアント型の値を返します。
構文は、「Month(date)」です。引数dateは必ず指定し、日付を表すバリアント型の値、数式、文字列式、またはこれらを組み合わせた値を指定します。
引数dateが有効な値を含まない場合は、Null値を返します。

<Now関数>
コンピュータのシステムの日付と時刻の設定に基づいて、現在の日付と時刻を表すバリアント型の値を返します。

<Mod演算子>
2つの数値の除算を行い、その剰余を返します。
構文は、「result = number1 Mod number2」です。
resultは任意の数値変数を必ず指定します。number1、number2は任意の数式を必ず指定します。

<QBColor関数>
指定した色番号に対応するRGBコードを表す長整数型(Long)の値を返す関数です。
構文は、「QBColor(color)」で、引数colorには、0〜15の範囲の整数を指定します。設定値は次のとおりです。

番号   色 
------------------------------
 0    黒
 1    青
 2    緑
 3    シアン
 4    赤
 5    マゼンタ
 6    黄
 7    白
 8    灰色
 9    明るい青
 10   明るい緑
 11   明るいシアン
 12   明るい赤
 13   明るいマゼンタ
 14   明るい黄
 15   明るい白