Accessの条件付き書式の機能は、本来、データ値などの条件に応じて動的にセルの文字色や背景色を変えるためのものですが、データシートビューにおいて、動的にある列全体の書式を変えることもできます。
次のサンプルコードでは、「fra背景色切り替え」という名前のオプショングループの選択を切り替えると、それに応じて、Me!frm仕入先_subサブフォーム内のその列全体の背景色を緑色に変更しています。また、このオプショングループ内には、オプション値プロパティが1~5の5つのオプションボタンが配置されています。
Private Sub fra背景色切り替え_AfterUpdate()
'背景色切り替えオプショングループの更新後処理
Dim iintLoop As Integer
'サブフォームの列数
Const cintColMax As Integer = 5
'サブフォーム内のすべての列のループ
For iintLoop = 1 To cintColMax
'対象コントロールを設定(コントロール番号は0から始まるので-1する)
With Me!frm仕入先_sub.Controls(iintLoop - 1)
If iintLoop = Me!fra背景色切り替え Then
'列番号がオプショングループの選択値のとき
With .FormatConditions
'新しい条件付き書式を追加
With .Add(acExpression, , "[仕入先コード] > 0")
'背景色を設定
.BackColor = vbGreen
End With
End With
Else
'オプショングループで選択外のコントロールの条件付き書式を削除
If .FormatConditions.Count > 0 Then
'ここでは条件が1つだけとしてFormatConditions(0)を削除
.FormatConditions(0).Delete
End If
End If
End With
Next iintLoop
End Sub
実行結果:



|