VBAでフォームのリストボックスを操作し、個別のフィールドの色を変えたい方法

このQ&Aのポイント
  • VBAを使用してフォームのリストボックスを操作し、選択した状況によって個別のフィールドの色を変える方法について教えてください。
  • 現在、業務上VBAを使っている際に、リストボックスを使用しているフォームで選択した項目に応じて個別のフィールドの色を変えたいと考えています。
  • 具体的には、リストボックスに「状態」というフィールドがあり、「完成」「未完成」などの項目があります。選択した項目に応じて「商品名」の対応するレコードの色を変えたいです。個別のフィールドの色を変える方法について、助けていただけないでしょうか?
回答を見る
  • ベストアンサー

アクセスのフォーム上の操作で・・・

お世話になっております。 いま、業務上アクセス2000のVBAを使っているのですがどなたかお力をお貸しください。 それは、フォームにリストボックスがあり、選択した状況によって他のフィールドの色を変えたいと思っているのですが、フィールド自体の色を変えることはできるのですが、全てのレコードの色まで変わってしまいます。ワンレコードづつの色を変えることってできるのでしょうか? たとえば、「状態」というフィールドがあり、それはリストボックスになっていて、「完成」「未完成」とリストになっています。 「未完成」を選ぶと「商品名」の対応レコードが「赤」に、「完成」を選ぶと「商品名」の対応レコードを「青」にしたいと思ってます。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

えーと、まず、条件付書式はテキストボックス及びコンボボックスに対してのみ、設定することが出来ます。 今回は[商品名]の色を変えるとのことですので、恐らく大丈夫でしょう。(それ以外のコントロールを使って表示しているのでしたら、一度テキストボックスかコンボボックスに変更してやってください) 1:まずは、フォームをデザインモードで開いてください。 2:[商品名]をマウスで選択して、ツールバーの[書式]-[条件付き書式]を実行してください。 3:[条件1]を以下のように設定します。 「式」「[状態]='未完成'」 として、「フォント/前景の色」を赤に設定します。 4:「追加」をクリック 5:[条件2]を以下のように設定します。 「式」「[状態]='完成'」 として、「フォント/前景の色」を青に設定します。 6:OK 以上の操作で、[状態]によって商品の色が変わるようになったはずです。 うまくいかなければ補足してくださいね。

obahiro
質問者

お礼

ありがとうございます。なんとか希望通りのことができました。 これからもよろしくお願いいたします。

その他の回答 (1)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

VBAを使わなくてもできますよ(^^)。 [書式]-[条件付書式]を使ってみてください。 操作等不明でしたら、補足していただければ詳しく説明します。

obahiro
質問者

補足

ご回答ありがとうございます。 [書式]とは、フォームのプロパティの書式のことでしょうか? 条件付書式の設定の仕方がどうしたらよろしいものか困っています・・・ できましたら、補足をよろしくお願いいたしますm(_ _)m

関連するQ&A

  • Accessのフォームで…

    Access 2010のフォームのリストボックスで、あるテーブルのフィールドの値を選択した場合に、同じテーブルの同じレコードにある違うフィールドの値を、テキストボックスに読み込みたいのですが、どうすれば出来ますでしょうか? VBAのサンプルソース等でも構いません。回答お願いしますm(_ _)m

  • ACCESSのフォーム操作について

    vbaが全く分からない初心者です。 あれこれ調べてみましたが、分かりませんので 教えてください。 ACCESSでフォーム作成をしています。 テーブルA テーブルB テーブルC があり、フィールドは全て共通しています。 フォームに、コンボボックスを設けテーブル名を表示させ クリックするとそのテーブルのデータをフォームに表示させる ということがやりたいのですがどうすればよいでしょうか。 (例 テーブルCを選ぶとフォームにテーブルCのデータを表示) 本来なら初歩的な事から勉強をした方がいいのですが 仕事の作業でどうしても必要になり、急いでおります。 参考になりそうな、ページやvbaがありましたら教えて 頂けないでしょうか。 宜しくお願い致します。

  • フォームを開くボタンを1個でコントロールしたい

    「やりたいこと、ご指導頂きたいこと」 1,現在の運用方法(下記)ではコマンドボタンが4個と多く、使いづらいのでコマンドボタンを1個で完結できる方法が知りたいです。 2,個人的なお願いですが「マクロ」で対応できる方法があれば、そちらでお願いしたいと思います。理由は、VBAのスキルが低レベルで話にならない為。但し、不可の場合は、可能な方法でご指導願います。 「現在の運用方法の紹介」 企業の連絡情報帳をアクセスで運用しています。尚、フィールドの数は10ありますが、質問内容には検索項目の4個を紹介させて貰っています。 運用の概要ですが、検索専用フォームにコンボボックスを4個つくり、コンボボックスで企業リストテーブルを参照させて希望のフィールド(会社名、製品名、商品名、得意技)を選択させています。選択後はコンボボックスの横に配したコマンドボタン4個を使って個別フォームを開いている。運用の背景ですが、絞込検索では都合が悪い事情がある為です。 「各オブジェクトの紹介」 1,テーブル名:企業リスト 2,フォーム名:検索専用フォーム(レコードソースなし) 3,コンボボックスの名前:会社名、製品名、商品名、得意技 ・企業リストの各該当フィールドを値集合ソースにて参照 4,企業リストクエリ ・会社名(検索専用フォームのコンボボックス「会社名」を抽出条件に) ・製品名(検索専用フォームのコンボボックス「製品名」を抽出条件に) ・商品名(検索専用フォームのコンボボックス「商品名」を抽出条件に) ・得意技(検索専用フォームのコンボボックス「得意技」を抽出条件に) 5,フォーム名 ・会社名検索結果(レコードソースに会社名クエリ参照) ・製品名検索結果(レコードソースに製品名クエリ参照) ・商品名検索結果(レコードソースに商品名クエリ参照) ・得意技検索結果(レコードソースに得意技クエリ参照) 以上ですが、他に細かな設定(ファイル操作・選択文字の選択後の消去・等々)もありますが割愛して居ります。どうか宜しくお願いします。

  • ACCESS 条件付き書式の設定について

    条件付き書式の設定ですが、以下の条件での完成を目指しています。ご面倒をお掛けしますが、宜しくお願い申し上げます。 「対象オブジェクト」 フォーム名:F_商品管理 フィールド名:商品ID、商品コード、商品名、在庫数、適正在庫、原価 「やりたいこと」 (在庫数)が(適正在庫)を割った場合、対象レコード(数値・文字)のフィールド全て、又は、フィールド(複数)を赤色表示にしたいと思っています。 ・やりたいこと1  レコード(全フィールド値)を赤色にする。(在庫数が適正在庫を割った時) ・やりたいこと2  商品名と在庫数を赤色にする。(在庫数が適正在庫を割った時) 「やったこと(上手くいったこと)」 フィールド名:(在庫数)が(適正在庫)を割った時に在庫数フィールドを赤色にする。フォーム:F_商品管理をデザイモードで開いて、(在庫数)をクリックしリボンの条件付き書式をクリックし、(フィールド値)→(次の値より小さい)→(適正在庫)→(条件が真のときに使用する書式のプレビューで赤色を設定) 以上ですが、上手くいったこと以外は全くできていません。どうか、宜しくお願いします。

  • ACCESSフォームのリストボックスでレコードが選択できない

    ACCESS2000です。 フォームの左側に親テーブルのフィールド1の値を選択させるリストボックスがあり、そこで選択したレコードにリンクする子テーブルのレコードをフォームの右側にサブフォームで表示させたいのですが、リストボックスでレコードを選択できません(クリックしても反転しません)。でもレコード移動ボタンを押すと、リストボックス内の該当レコードがちゃんと反転し、右側のサブフォームにも正しく反映します。 リストボックスのプロパティはくまなく見ましたがそれらしい設定項目はみつかりませんでした。どこを直せばよいのでしょうか。

  • Accessのフォームで、ある項目の条件によって、数値の書式を変えたい

    フォームのコンボボックスで選択した値によって、 クエリで抽出(集計)した結果を表示するサブフォームで、 [商品名]や[合計金額]フィールド等を表示しています。 合計金額の桁数が多いので千円単位表示にしたく、 [合計金額]フィールドの書式に 『#,###,;-[赤]#,###,』 と入力しました。 ここまではいいのですが、ある商品(例えば「商品A」)は絶対千円以下なので、この商品の時は[合計金額]フィールドに上の書式を設定したくないのですが、どうすればいいのでしょうか? 「条件付き書式設定」も見たのですが、条件式で 『[商品名]="商品A"』 の時に色などを変えることはできたのですが、数値の書式の設定ができませんでした。 どなたかおわかりになる方がいらっしゃいましたら、教えていただけますでしょうか。 VBAでもかまいません。よろしくお願いします<m(__)m>

  • Access フォームからの検索について

    初歩的な質問で申し訳ありませんが教えて下さい。 Access2000を使っています。 フォームに作ったテキストボックスに、入力した値又は文字と、特定のフィールドと比較し一致した場合にそのレコードをフォームに表示する方法はないでしょうか? いろいろと、web上のQ&Aなども見ましたが、思った動作をしませでした。 考えているのは、   ・テキストボックスにある値を入力し、『Enter』を押すとテキストボックスに入力した値と特定のフィールドと一致したレコードをフォームに表示 ・一致しない場合はメッセージボックスで一致しない旨を表示 です。 ・完全一致のみ表示 VBAでの動作を考えていますが、合わせて他の方法があれば教示頂ければと思います。 以上、お手数をお掛け致しますがよろしくお願い致します。

  • ACCESS フォームで抽出条件の違うレコード表示

    宜しくお願いします。 ACCESSでレコードソースをQ_Bとするフォームに、ヘッダー部分に別のクエリ(Q_Aとします)のデータを表示させようと思っています。 Q_Aのデータを元にフォーム内でnoごとに表示するテキストボックス(リストボックスなどでも可)を変えて表示させたいのですがうまくいきません。 Q_Aは No 日付 1 1/15 2 2/1 3 2/5 4 3/12 ・・・レコード数は10あります。 Q_Aの日付フィールドのみ一定期間ごとに変更します。 ですので、一つのテキストボックスには例えば Noのフィールドの「1」のレコードが表示されるようにしたいのです。 Q_Aを元に、レコード数10が個別に表示されるテキストボックス等を、VBAなど?で抽出条件を指定しておきフォームを開いた際に表示できるようにしておきたいのですが、どのような方法があるかご教授願えますでしょうか? よろしくお願い致します。

  • アクセスのフォーム

    アクセスのフォームで、作成した帳票フォームが1レコードづつ色が変わっています。1レコード目は白、2レコード目は青、3レコード目は白・・・という具合になっています。 これを全て白に直すにはどうしたら良いですか? 誰か教えて下さい。よろしくお願いします。

  • Accessのフォームを更新させるには

    Access2000を使用しています。 レコードを検索できるように同フォーム内にリストボックスを老いています。 そのリストボックスにはこれまで入力した人の名前が列挙されています。 そのリストボックスのだれかをクリックするとその人のレコードに移動するようフィルタでマクロを使っています。 新しいレコードを入力すればそのリストボックスにそのレコードの名前が追加表示されると思ってたのですが、されません。 閉じて拓き直すとちゃんと更新されてそのリストボックスに新しい名前が表示されます。 閉じて開き直さなくてもよいようにするにはどうしたらよいのでしょうか? わかりずらい文面とは思いますが、わかる方宜しくお願いします。