• 締切済み

Access VBA 条件付き書式設定

フォームのフィールドの「条件付き書式設定」について 条件式にフォームのVBAコード上で使用している変数を利用する記述の方法を教えて下さい。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

アクセスの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 の部分の右辺をプログラム変数を持ってくるということで、質問の 意向に沿ってますでしょうか。

situmonnsya
質問者

お礼

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

situmonnsya
質問者

補足

調べて頂きありがとうございます。 恐縮です。 もっと、簡単にできないでしょうか? 条件付き書式設定のフォームで、条件式1(1)で式を選択しその右の欄に、例えば [test01]=1 (test01はフィールド名 1は定数) と記述しますが、定数1の部分にVBAコードで使っている変数を書けないか、という事なのですが。 [test01]=forms."野球用品".Bat_Color とかいう感じで・・・

すると、全ての回答が全文表示されます。

関連するQ&A