MS Access Tips/Sample and VBA and Blog customize etc...

カレント行の背景色の変更 その2

前回の記事 カレント行の背景色の変更 では非表示のテキストボックスを配置しましたが、今回はそれを改良して、テキストボックスを使用せずに実現する方法を考えてみました。

前回の記事を読んでない方は カレント行の背景色の変更 を一度目を通してからお読み下さい。

カレント行の背景色変更

難易度:

WEB上で下記のようなコードをみつけました。(サンプルに合うように改変してますが)

これは、非表示テキストボックスを利用せずにVBA上だけのコードで完結してますので、なかなかスマートなコードだと思います。

ただ、レコード移動のたびに全てのテキストボックスの条件付き書式を削除して、また、追加しているのはちょっと気になります。サンプルを作って試してみましたが、やはり、レコード移動したとき、前回の方法に比べてワンテンポ遅れて色が変わるようです。(私の4,5年前のパソコンでの環境ですので最新のハイスペックパソコンなら差はでないかも知れません。)Ctrl+PageDown で連続レコード移動した場合もちらつきが大きく感じました。

いちいち削除、追加しなくても、条件を変更だけすればいいのではと思いヘルプを見てみると Modifyメソッドがあるのでこれが使えそうです。フォームの開くときに条件付き書式を追加して、レコード移動時には、条件式 のみ変更するようにコーディングしてみました。

フォーム上のすべてのテキストボックスをまとめてループ操作するために、コントロールをグループ化して操作するで紹介したCollectionオブジェクトを利用する方法を使っています。

非表示テキストボックスを利用する方法と比べてみても、レコード移動時の反応はほとんど差は無いように感じしました。ただ、連続レコード移動で若干ちらつきが大きいかなという気はしますが。

どちらを使うかはご自身の環境でテストしてみて判断してください。

追加情報
カレント行の背景色の変更 その3

サンプルファイルが下記からダウンロードできます。
FrmCurrentRecBackColor_07.zip (Access 2007-2010 形式 - 44kb)
FrmCurrentRecBackColor.zip (Access 2002-2003 形式 - 37kb)
FrmCurrentRecBackColor_2k.zip (Access 2000 形式 - 35kb)

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/20-9ee08ebe
該当の記事は見つかりませんでした。