Access VBAで条件付き書式設定を効率的に設定する方法はあるか

このQ&Aのポイント
  • Access VBAを使用して、帳票フォームの条件付き書式設定を効率的に設定する方法について教えてください。
  • 条件付き書式設定を大量に設定する場合、1つずつ手動で設定するのは非常に手間がかかります。Access VBAを使用することで、効率的に設定する方法があるのでしょうか?
  • Access2003の帳票フォームで、特定の条件下でフィールドの背景色や文字色を変えたいと思っています。大量のフィールドに対して条件付き書式設定を行う場合、VBAを使用して効率的に設定する方法を教えてください。
回答を見る
  • ベストアンサー

Access VBA 項目名だけ違いあとは同じ内容の条件付き書式設定の効率的な設定方法

Access2003、帳票フォームで作成しています。 [都道府県]フィールドが『東京都』の時は、そのレコード全てのフィールドの背景を水色に、 [売上Apr]、[売上May]、[売上Jun]、………[売上Feb]、[売上Mar]、[売上合計]の数値フィールドが『マイナス』の時は、その値を赤字にしたいのです。 そこで、[売上Apr]フィールドにメニューの条件付き書式設定で、 [条件1]に、式で『[都道府県]="東京都" and [売上Apr] < 0』の時、背景=水色、文字=赤 と設定し、 [条件2]に、『フィールドの値 が 0 より小さい』時、文字=赤 と設定し、 [条件3]に、式で『[都道府県]="東京都"』の時、背景=水色 と設定すると、期待していた書式設定になることが、先日聞いたQ&Aでわかりました。 ただ、この条件式を入れるフィールドがとても沢山ありまして(上で記載した売上12ヶ月分と合計の13フィールド。同じような形のフォームが12個くらいあります。。)、1フィールドづつ設定するととても大変&色の修正があった時もとても大変なので、 ◎この設定をVBAで効率よく設定することはできないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

以下VBAではありませんが、 背景用のテキストボックス、文字色用のテキストボックスを重ねる方法もあります。 この方法は参考程度ということに、 手順) ・現在のテキストボックスを全て選びます。 ・コピー&貼り付けでその近くに配置します。(作業のため) ・コピーした側が全選択されている状態で、プロパティ「コントロールソース」を  =""  に変更します。 ・そのまま、条件付き書式で、背景色以外の条件を削除します。  (個別に削除が必要なら、個別に背景色以外の条件を削除します) ・コピーした側が全選択されている状態で、配置で最背面に移動します ・コピー元を全選択して、条件付き書式で、背景色の条件を削除します。 ・そのままプロパティ「背景スタイル」を「透明」に変更します。 ・そのまま、配置で最前面に移動します。 ・そのまま、コピーした側の上にかぶせます。 ・全てを選択後、元の位置に配置しなおします。 ※試される場合には、つぶれてもいいフォームを対象に (新規mdbで小さいフォームを作成して試された方が) ※背景色のあるテキストボックスをクリックすると、その部分は背景色が一時消えます ※このフォームはデータシートとしての表示には使えません。 ※背景色を変更しようとすると、重なっているのをずらさないとできません(面倒です) VBAでの条件付き書式設定については以下が参考になると思います。 また、レコード移動時に変更することもないと思いますので、Form_Open で1度設定すればよいと思います。 access FormatConditions でWeb検索すると例が出てくると思います。

chibiosa
質問者

お礼

PCの調子が悪く、返信が遅くなりまして申し訳ございません。。。 まずは、教えて頂きありがとうございました!! テキストボックスを重ねて…なんて、そんな裏ワザ?!があったんですね!! そして、教えて頂いたHPを見たりWebで検索して、アレコレやってみて、VBAでなんとか自分の希望していたことができるようになりました♪ とても助かりました。どうもありがとうございました☆

関連するQ&A

  • Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい

    Accessのフォームで、複数の条件が一致した時の書式を設定したいのですが、どうすればいいのでしょうか? 例えば、 [都道府県]フィールドが『東京都』の時、そのレコードの全フィールドの背景を水色にし、 [数量]フィールド、[金額]フィールドがマイナスの時、そのフィールドの値を赤字にしたいのです。 フォームで、全てのフィールドを選択してから、メニューの条件付き書式設定で、 『条件1(1)』に、「式」 「[都道府県]="東京都"」 と入力し、背景を水色に設定し、[OK] しました。 次に、[数量]フィールドと[金額]フィールドだけを選択し、メニューの条件付き書式設定で、 [追加]ボタンを押して、『条件2(2)』に、「フィールドの値」 「次の値より小さい」 「0」 と入力し、 フォントを赤色に設定し、[OK] をクリックしました。 ですが、実行すると、『東京都でマイナス』の時、『背景が水色で値が赤字』 という具合になりませんでした。。 単票フォームでも帳票フォームでもどちらでも結果は同じでした。 どうすればできるのでしょうか?それとも、こういうことはできないのでしょうか?? [都道府県] | [担当者] | [数量] | [金額]   → なって欲しい結果  東京都 | あああ | 5 | 500   → このレコードの背景が水色になる  千葉県 | いいい | -5 | -500   → -5 と -500 が赤字になる  東京都 | ううう | -1 | -100   → このレコードの背景が水色になり、更に-1と-100が赤字になる。 このようにしたいのですが、どうしたらよろしいのでしょうか? よろしくお願いします。

  • Access VBA 条件付き書式設定

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

  • Access 条件付き書式

    お世話になります。 条件付き書式で住所が "東京都" で始まるレコードには、その住所だけを赤い文字色にしたいと思います。 フォームをレイアウトビューで開き、「住所」フィールドのテキストボックスを選択します。 ダイアログボックスに 「フィールドの値」・・・・「次の値に等しい」・・・・「Like "東京都*"」  フォントの色 「赤」 を設定しました。 結果は、駄目でした。 どこが不備なのでしょうか。 よろしくお願いします。 Access 2007  SP-2  

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

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

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

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

  • 【VBA】アクセス 条件付書式 (Yes/No型) 

    フォームのデーターシートビューで 「フィールド1(Yes/No型)がTrueなら フィールド2の背景の色をピンクにする」 という条件付書式を行ないたいのですがどうすればいいでしょう? VBAでやりたいのですが難しかったら手作業の処理を教えてくださいませ。 よろしくお願いします。

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

    名簿管理をAccessで行っていますが、特定のレコード「指定フィールド」の色を変えて、確認しやすくしたいと考えております。条件付き書式を使う程度の知識はありますが、知識乏しく考えても分からない領域でもあり、アドバイスをお願いできればと思います。 [Access Ver] ACCESS2007(サポート終了ですが諸般の事情で使っています。) [やりたいこと] 永眠「チェックボックス」にチェック「YES」が入ったデータ「氏名」だけフォントの色を変えたい。 [やったこと] フォームの名簿一覧をデザインビューで開いてレコード「氏名」を選択し、リボンから条件付き書式を選択。条件から式を選択して式入力窓に「"永眠"=Yes」と記入する。思いつきの為、当然ながら全く変化なしでした。 [オブジェクト] ●フォーム名:名簿一覧 ●フィールド名「種別」 ・ID「オートナンバー」 ・担当区「テキストボックス」 ・名簿区分「テキストボックス」 ・都道府県「テキストボックス」 ・氏名「テキストボックス」 ・年賀状「チェックボックス」 ・永眠「チェックボックス」 以上ですが、宜しくお願いします。

  • アクセス2000の条件付書式で

    フォームに[旧・日付]と[新・日付] というコントロールを配置しています。 この二つのデータを比較し、値が一致しない場合は条件付式書式で[新・日付]に背景色をつけたいと思っています。 そこでツールの書式→条件付書式で 式   [旧・日付]<>[新・日付] 背景色 ピンク と設定しました。 ところが[旧・日付]にデータが入力されている場合はうまくいくのですが、[旧・日付]が空欄で、[新・日付]のみデータがある場合は認識してくれません。 どのように設定したらうまくいくのでしょうか。 よろしくお願いします。

  • ACCESSの一覧フォームで2つの日付の条件で、条件付き書式をしたい。

    一覧フォーム上に顧客のデータが入っていまして、 名前や住所、日付等のデータがあります。 そこでですが、 2つの日付の条件で、名前のフィールドの背景色を変えたいです。 日付の条件は、 1つ目は、今日から先の8日以内の日付のもの 2つ目は、日付欄が空欄のもの です。 条件付き書式の式に何らかを入れると思うのですが、 どうすればよいのでしょうか?

  • Accessフォーム条件付書式

    どなたか教えて下さい。 Access2002を使っています。 フォームの条件付書式を使い売上が100000円以上なら赤に背景色を変えようと思っています。 VBAの勉強の為に、ツールバーの条件付き書式を使わずにvbaで挑戦してみました。 Private Sub Form_Open(Cancel As Integer) If Me.売上.Value >=100000 Then Me.売上.BackColor = RGB(255, 0, 0) End If End Sub 単票形式ならば上手くいくのですが、フォームのデータシートタイプで表示すると反応しません。 但し、ツールバーの条件付き書式からの設定ではデータシートでも反応します。 上記のIF文では条件付書式にはなっていないのでしょうか? helpでDatasheetBackColor プロパティというのを探せましたが、全体の背景色の変更になってしまいます。 ツールバーにあるからには、VBAで出来るだろうと考えるのは間違えでしょうか? もしもデーターシートの条件にあったセルのみ背景色をvbaで変えられることを知っている方、よろしくお願いします。 haru

専門家に質問してみよう