アクセスのVBAのFormatConditionsのコード例が余りWEB上で見つからなかったので、ある英文のWEBを修正しました。
http://blogs.msdn.com/frice/archive/2004/06/08/151178.aspx
(1)テーブル 野球道具テーブル
ID 商品コード 計数1 商品名
1 24 12 帽子
2 21 13 バット
3 15 14 ユニフォーム
4 17 15 グラブ
5 3 16 ミット
6 9 17 マスク
7 1 11 ストッキング
8 12 19 ボール
9 13 5 ベース
10 14 21 キャッチャーミット
11 1 22 ユニフォームズボン
(2)フォーム
新規作成で、野球道具テーブルで、帳票形式のフォームを作ります。
テキストボックスを1つ貼り付け。私の場合はテキスト8 となりました。
またコマンドボタンを1つ貼り付けます。コマンド10
(3)モジュールオブジェクトでコードModule1にコマンドボタンの
クリックイベントでコードを出し、
Private Sub コマンド10_Click()
Forms("野球道具")![テキスト8].SetFocus
v1 = Val(Forms("野球道具")![テキスト8].Text)
' MsgBox v1
Dim objFrc As FormatCondition
Dim lngRed As Long
Dim lngWhite As Long
Dim lngBlack As Long
Dim lngYellow As Long
'-----Set up background and foreground colors.
lngRed = RGB(255, 0, 0)
lngWhite = RGB(255, 255, 255)
lngBlack = RGB(0, 0, 0)
lngYellow = RGB(255, 255, 0)
' ----Remove any existing format conditions.
Me![計数1].FormatConditions.Delete
' Create three format objects and add them to the FormatConditions
' collection.
'----小さい場合
Set objFrc = Me![計数1].FormatConditions.Add(acFieldValue, _
acLessThan, v1)
'----等しい場合
Set objFrc = Me![計数1].FormatConditions.Add(acFieldValue, _
acEqual, v1)
'----大きい場合
Set objFrc = Me![計数1].FormatConditions.Add(acFieldValue, _
acGreaterThan, v1)
'-----------------
' Depending on the user's option selection, format the txtResult
' box.
optgrpchoice = 2
'--------
Select Case optgrpchoice
Case 1
' Refer to each format condition by its index.
With Me![計数1].FormatConditions(0)
.FontBold = False
.FontItalic = True
.FontUnderline = True
End With
With Me![計数1].FormatConditions(1)
.FontBold = True
.FontItalic = False
.FontUnderline = True
End With
With Me![計数1].FormatConditions(2)
.FontBold = True
.FontItalic = True
.FontUnderline = False
End With
Case 2
With Me![計数1].FormatConditions(0)
.BackColor = lngRed
.FontBold = True
.ForeColor = lngBlack
End With
With Me![計数1].FormatConditions(1)
.BackColor = lngBlack
.FontBold = True
.ForeColor = lngRed
End With
With Me![計数1].FormatConditions(2)
.BackColor = lngYellow
.FontBold = True
.ForeColor = lngRed
End With
Case 3
Me![計数1].FormatConditions(0).Enabled = False
Me![計数1].FormatConditions(1).Enabled = True
Me![計数1].FormatConditions(2).Enabled = False
Case 4
End Select
End Sub
(4)結果
テキストボックスに 12 と入れて、ボタンをクリック。
結果は
フォームの「計数1」の列(フィールド)で
12が黒色、文字が赤
11,5がセル背景が赤、文字が黒
その他は背景が黄色、文字がが赤
になりました
テキストボックスの数値を色々変えて、ボタンをクリックすると
セルの背景色と文字の状態が変わります。
ーーーー
optgrpchoice = 2
の部分の右辺をプログラム変数を持ってくるということで、質問の
意向に沿ってますでしょうか。
お礼
ありがとうございました。 参考になりました。
補足
調べて頂きありがとうございます。 恐縮です。 もっと、簡単にできないでしょうか? 条件付き書式設定のフォームで、条件式1(1)で式を選択しその右の欄に、例えば [test01]=1 (test01はフィールド名 1は定数) と記述しますが、定数1の部分にVBAコードで使っている変数を書けないか、という事なのですが。 [test01]=forms."野球用品".Bat_Color とかいう感じで・・・