ACCESS 条件付き書式で行ごとにフォームの色を変える方法

条件付き書式で行ごとにフォームの色を変える方法

ACCESSはExcelに比べると行ごとに色を変えて表現するシーンは少ないかもしれません。
しかし、見やすさの観点で色を一定の条件に従って変えたいという場合には、条件付き書式を使用すると便利です。

今回は、ACCESSのフォームで条件付き書式を使って、行ごとに色を変える方法をご説明します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。

完成形

最初に完成形をお見せします。

今回は、検索フォームにおいて選択したレコードのみ青色に色を変える機能を作成しました。

選択している請求ID:5のみ、行の色が変わっているのがお分かりいただけると思います。
ここで別のレコードを選択すると、

このように色の付くレコードが変わります。

ではこの機能を作成していきましょう。

処理概要

こちらの機能をどのように実現しているか、概要を先にお伝えします。

フォームでレコードを選択するたびに、選択されたレコードの主キー(今回は請求ID)の値をフォームのあるコントロールに格納します。

そのコントロールの値と、レコードの主キーの値が合致していれば、条件付き書式で背景の色を変える、という指定をしています。

やっていること自体は比較的単純ですね。

フォームの設定

まず、この機能を作成するためのフォーム側の設定からです。
フォームのデザインビューで設定していきます。

行の色を変える際に、行にあるすべてのコントロール(請求ID、請求日、顧客名など)の背景色を変えていくのは面倒ですよね。

そのため、各コントロールの背景色は透明にし、その背後に色を付けるためだけのテキストボックスコントロール「行背景」を作成します。

実際に使用するコントロールの背景は上記の通り、透明にします。

色を変更するためだけに使用するテキストボックスコントロールを作成します。
非連結のコントロールで問題ありません。
今回は「行背景」と命名しました。

このテキストボックス コントロールは行全体を覆えるように横幅を設定します。

そして、その テキストボックス コントロールを最背面に配置します。
色を付けた際に最背面にしていないと他のコントロールが見えなくなってしまうためです。

そしてもう一つ、現在選択されているレコードを特定するための値を格納するテキストボックスコントロールを作成しましょう。

こちらも非連結です。
今回は「選択中ID」と命名しました。
こちらは画面上で見える必要が無いので、プロパティシートで可視:いいえに設定しておきます。

これでフォームに必要なコントロールは作成できました。

VBAコード

次に、VBAのコードを作成しましょう。
フォームのイベントプロシージャを作成します。

今回は、フォームのレコード移動時イベントを作成します。

そして、イベントプロシージャには下記のように設定します。


Private Sub Form_Current()

    Me!選択中ID = Me!請求ID

End Sub

レコードが移動した時、つまりフォームの行を選択した際にその行の請求IDを、今回作成した選択中IDに格納するというコードです。

必要なコードはこれだけです。

条件付き書式設定

それではいよいよ条件付き書式を設定しましょう。
再度フォーム側で操作します。

作成した行背景コントロールを選択した状態で、上段のメニューから「書式」→「条件付き書式」を選択します。

条件付き書式ルールの管理画面が開きますので、新しいルールの作成、を選択します。

条件を設定する画面になります。

ルールの種類は「現在のレコードの値を確認するか、式を利用する」を選択します。

ルールの内容は、「式」を選択して下記のように記述します。

[請求ID] = [選択中ID]

そして、背景色を設定すれば出来上がりです。

条件式の [請求ID] = [選択中ID] とは、そのレコードの請求IDが選択中IDと合致したら書式を変える、という設定になっています。

少しややこしいですが、以下の処理になります。

フォーム上でレコードを選択すると、設定したイベントプロシージャにより、フォームの選択中IDに、請求IDが格納されます。

条件付き書式で選択中IDを参照すると、選択しているレコードの請求IDが格納されているので条件合致し、書式が適用される、というわけです。

以上、条件付き書式で行ごとにフォームの色を変える方法についてご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。