<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 MS-Access97大魔法陳列棚>しましまレポート



【仕 様 な ど】MS-Access97で作成。Windows95でのみ動作確認。

【ダウンロード】←Zip形式
            (解凍後、mdb初期状態:およそ192KB)

【主 な 機 能】

表形式のレポートの背景色を一行ずつ色を変える関数と、そのレポートのサンプルです。


【作 り 方 等】

適当に、表形式のレポートをひとつ作ります。
そのレポートの、詳細セクション部分の背景色を、偶数行と奇数行で変更する関数を作ります。

あらかじめ、好きな色のコードを調べておくとよいでしょう。
画面表示を何色にしているかにも寄りますが、色は数値で表現されています。ためしに適当なテキストボックスの背景色を変えてみて、プロパティの「背景色」欄にどんな数値が入るか確認しておくとよいでしょう。私は256色で使ってます。

いくつか挙げてみますと

コード コード
ちょっと濃いめの水色 16764057 うんと薄い水色 16777164
ハデな黄色 65535 ハデなピンク 16711935
濃いハデな青 16737843 真っ赤 255
スタンダードなグレー 12632256 濃いめのグレー 9868950
0 16777215
ハデな緑 65280 渋い緑 32768
陽気なオレンジ 39423 16751052

段取りとしては以下の通りです。

レポートのページヘッダーが印刷されるときに、変数をゼロにしておきます。

レポートの詳細セクションが印刷されるとき、変数に1を足します。足した数を割ってみて、偶数か奇数か判断し、偶数の場合とそうでない場合に、違う色をセクションの背景色プロパティに代入します。

以下にクラスモジュールのサンプルを記します。

Option Compare Database '宣言セクション
Dim LCount As Integer'これから、LCountという変数を使います、と宣言しておきます。
Option Explicit


Private Sub ページヘッダー_Print(Cancel As Integer, PrintCount As Integer)
LCount = 0 '<-----行数を数えるための変数をゼロにしておきます。
End Sub


Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
LCount = LCount + 1
If LCount Mod 2 = 0 Then 'LCountを2で割った時、余りがゼロかどうか判断します。
Me.Section(0).BackColor = 16777215 '詳細セクションのプロパティ「背景色」に白を代入します。
Else
Me.Section(0).BackColor = 13434828 '同じく「背景色」に薄い緑色を代入します。
End If
End Sub


緑色の文字部分はコメントです。
色はお好きな色に変更してみてください。

私はシロクロのプリンタしか持ってなくて、こんな細かい色指定の印刷物はプレビュー止まりなんで、イメージどおりの色が印刷されるのかどうか、いまひとつ自信ないんです。もし、全然変な色が印刷されてきたりしたら・・・スミマセン。