質問: access vba 項目名だけ違いあとは同じ内容の条件付き書式設定の効率的な設定方法 access2003、帳票フォームで作成しています。 [都道府県]フィールドが『東京都』の時は、そのレコード全てのフィールドの背景を水色に、 [売上apr]、[売上may]、[売上jun]、.........[売上feb]、[売上mar]、[売上合計]の数値フィールドが『マイナス』の時は、その値を赤字にしたいのです。 そこで、[売上apr]フィールドにメニューの条件付き書式設定で、 [条件1]に、式で『[都道府県]="東京都" and [売上apr] < 0』の時、背景=水色、文字=赤 と設定し、 [条件2]に、『フィールドの値 が 0 より小さい』時、文字=赤 と設定し、 [条件3]に、式で『[都道府県]="東京都"』の時、背景=水色 と設定すると、期待していた書式設定になることが、先日聞いたq&aでわかりました。 ただ、この条件式を入れるフィールドがとても沢山ありまして(上で記載した売上12ヶ月分と合計の13フィールド。同じような形のフォームが12個くらいあります。。)、1フィールドづつ設定するととても大変&色の修正があった時もとても大変なので、 ◎この設定をvbaで効率よく設定することはできないでしょうか? よろしくお願いします。
回答: 以下vbaではありませんが、 背景用のテキストボックス、文字色用のテキストボックスを重ねる方法もあります。 この方法は参考程度ということに、 手順) ・現在のテキストボックスを全て選びます。 ・コピー&貼り付けでその近くに配置します。(作業のため) ・コピーした側が全選択されている状態で、プロパティ「コントロールソース」を ="" に変更します。 ・そのまま、条件付き書式で、背景色以外の条件を削除します。 (個別に削除が必要なら、個別に背景色以外の条件を削除します) ・コピーした側が全選択されている状態で、配置で最背面に移動します ・コピー元を全選択して、条件付き書式で、背景色の条件を削除します。 ・そのままプロパティ「背景スタイル」を「透明」に変更します。 ・そのまま、配置で最前面に移動します。 ・そのまま、コピーした側の上にかぶせます。 ・全てを選択後、元の位置に配置しなおします。 ※試される場合には、つぶれてもいいフォームを対象に (新規mdbで小さいフォームを作成して試された方が) ※背景色のあるテキストボックスをクリックすると、その部分は背景色が一時消えます ※このフォームはデータシートとしての表示には使えません。 ※背景色を変更しようとすると、重なっているのをずらさないとできません(面倒です) vbaでの条件付き書式設定については以下が参考になると思います。 また、レコード移動時に変更することもないと思いますので、form_open で1度設定すればよいと思います。 access formatconditions でweb検索すると例が出てくると思います。