Accessでレポートを作成すると、既定で1行おきに背景色が異なる縞模様になります。
背景色はプロパティで簡単に変更できますし、背景色なしにすることもできます。
ただ、2行おきや3行おきの縞模様にするためには、少し工夫しなければなりません。
マクロアクション[一時変数の設定]を使って設定する方法を紹介します。
参考ここでのウィンドウの表示は[タブ付きドキュメント](既定)の設定にしています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
テーブルからレポートを作成
サンプルとして以下のようなテーブルがあります。
このテーブルを基に簡単にレポートを作成します。
テーブル[T_商品]を選択して[作成]タブの[レポート]グループにある[レポート]をクリックします。
以下のようなレポートが作成できます。
すでに1行おきに背景色が設定された縞模様になっています。
作成されたレポートのコントロールの幅やヘッダーなどを調整したのが、以下のレポートです。
このレポートをもとに編集していきます。
[詳細]セクションの各コントロールの[背景スタイル]と[境界線スタイル]は[透明]にしています。
参考レポートは、ウィザードを使って作成することもできます。
-
レポートウィザードを使って表形式のレポートを作成
Accessのテーブルやクエリを基にレポートウィザードを使用してレポートを作成することができます。 ウィザードで作成した後、より見やすいレポ ...
[詳細]セクションの[背景色]と[代替の背景色]
レポートをデザインビューで開いて、[詳細]セクションのプロパティを表示します。
[書式]タブにある[背景色]と[代替の背景色]をみると、ここで縞模様が作られていることがわかります。
[代替の背景色]のカラーを変更してみます。
[代替の背景色]の[…]をクリックしてカラーパレットを表示して、任意の色を選択します。
参考[標準の色]から選択すると、カラーコードで表示されます。
レポートビューに切り替えると、以下のように縞模様の色が変更されていることを確認できます。
[交互の行の色]から設定
プロパティの[代替の背景色]の設定は、デザインビューの[書式]タブにある[交互の行の色]から選択することもできます。
[詳細]セクションのバーを選択すると、コマンドが有効になります。この設定はプロパティの [代替の背景色]と連動しています。
参考[交互の行の色]コマンドは、テーブルやフォームにもあります。
テーブルは、[ホーム]タブの[テキストの書式設定]グループにあります。
フォームは[フォームデータシート]タブの[書式設定]グループにあります。デザインビューの[書式]タブにもあります。
各オブジェクトで別々の色の設定ができます。
参考[交互の行の色]については、以下の記事で解説しています。
Access2007では[代替の塗りつぶし/背景色]という名前になっています。
レポートを縞模様なしにするには
レポートを縞模様なしにするには、[詳細]セクションのプロパティ[代替の背景色]で[色なし]を選択します。
または、[背景色]と同じ色にします。
以下のようになります。
マクロで縞模様を設定する場合は、[代替の背景色]は[色なし]にしておきます。
数行おきに色が異なる縞模様にするためのマクロアクション
1行おきの色の設定は簡単にできますね。
しかし、2行おきや3行おきに色が異なる縞模様のレポートにするには、少し工夫しなければなりません。
Accessには、Excelのような行番号を返すROW関数はありません。
表示されている[詳細]セクションが何行目なのかを知るための処理が必要になります。
マクロアクションには、[一時変数の設定]というアクションがあります。この一時変数アクションを使うと何行目かを知ることができます。
[変数]とは一時的にデータを格納するための箱のようなものです。
また、レポートの[詳細]セクションのイベントには、[印刷時]というのがあります。この[印刷時]イベントで設定します。
まず、2行おきの縞模様にしてみます。
レポートの[読み込み時]イベントで[一時変数の設定]
レポートのプロパティを開きます。
左上の■をクリックすると、レポートのプロパティになります。
プロパティシートで[レポート]が選択されていることを確認してください。
[イベント]タブの[読み込み時]の[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]ダイアログボックスが表示されますので、[マクロビルダー]を選択して[OK]ボタンをクリックします。
マクロビルダーが表示されます。
[新しいアクションの追加]の▼をクリックして、マクロアクションの一覧から[一時変数の設定]を選択します。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
[一時変数の設定]の[名前]のテキストボックスをポイントすると、以下のポップヒントが表示されます。
名前
一時変数の名前です。構文 TempVars!MyVariableName を使って、マクロ内の式で名前により変数を参照できます。MyVariableName は、このマクロの引数で使った名前です。
一時変数の名前は、ここでは[line]とします。一時変数の名前は何でもいいです。後で使いますので、ここで付けた一時変数の名前は憶えておきます。
一時変数の名前は、自由に付けてかまいませんが、[@!&$.(ドット)]などの記号やスペースは使用できません。先頭文字に数字は使用できません。また、複数の変数を設定する場合、同じ名前にはできません。
[式]には[0]と入力します。
マクロビルダーは、上書き保存して閉じます。
プロパティの[読み込み時]には、[埋め込みマクロ]と表示されます。
[詳細]セクションの[印刷時]イベントでマクロを設定
今度は、[詳細]セクションのプロパティを表示します。
[詳細]と記されたバーをクリックすると、[詳細]セクションプロパティが表示されます。
[イベント]タブの[印刷時]の[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]ダイアログボックスが表示されますので、[マクロビルダー]を選択して[OK]ボタンをクリックします。
[新しいアクションの追加]の▼をクリックして、マクロアクションの一覧から[If]を選択します。
[If]の条件式に以下のように入力します。[Mod]の前後には、半角スペースを入力します。
[割られる数 Mod 割る数] で割られる数を割る数で割った余りを取得できます。
テキストボックスに途中まで入力すると補助メニューが表示されますので、ダブルクリックするか、[Enter]キーを使って入力できます。
マクロアクション[If]の[条件式]は、以下のようになります。
すぐ下にある[新しいアクションの追加]の▼をクリックします。
少し下へスクロールすると、マクロアクション[プロパティの設定]がありますので選択します。
[プロパティの設定]の[コントロール名]には、[詳細]と入力します。
[プロパティ]は、▼ボタンをクリックして選択肢の中から[背景色]を選択します。
[値]には、カラーコードを入力します。カラーコードは、プロパティでカラーパレットから選択すると確認できます。
入力が終わったら、[Elseの追加]をクリックします。
再度、マクロアクションの一覧から[プロパティの設定]を選択します。
[コントロール名]と[プロパティ]は同じ設定にして、[値]のみ[#FFFFFF]と入力します。
[#FFFFFF]は白のカラーコードです。
[If文の最後]の下にある[新しいアクション]で、[値の代入]を選択します。
マクロアクション[値の代入]は、[マクロデザイン]タブの[表示/非表示]グループにある[すべてのアクションを表示]をクリックしないと表示されませんので気をつけてください。
[すべてのアクションを表示]をクリックして、一番下までスクロールすると、最後から4番目にあります。
マクロアクション[値の代入]の[アイテム]には、以下のように入力します。
[式]には、以下のように入力します。
これで[詳細]セクションが表示されるごとに、一時変数の値が1ずつ増えるようになります。
入力が終わったら、上書き保存して閉じます。
設定後[詳細]セクションの[印刷時]には、[埋め込みマクロ]と表示されます。
印刷プレビューで表示
設定後のレポートを[印刷プレビュー]で表示します。
[レポートデザイン]タブの[表示]から[印刷プレビュー]をクリックします。
[レポートビュー]では、縞模様は表示されません。
以下のように2行ずつの縞模様になります。
縞模様の行数を変更するには
3行おきの縞模様にするには、[詳細]セクションの[印刷時]イベントのマクロビルダーを表示して修正します。
[詳細]セクションのプロパティ[イベント]タブの[印刷時]は[埋め込みマクロ]と表示されていますが、[…]をクリックすると表示できます。
そして、以下のように修正します。
割る数は、指定したい行数の2倍の数にして、[<]の右は指定したい行数にします。
印刷プレビューで確認すると、以下のようになります。
参考以下の記事では、レポートに数行おきに罫線を表示する方法を解説しています。
-
レポートの詳細セクションに直線を引いて数行おきに罫線を設定する
Accessのレポートで罫線を数行おきに設定する方法です。 Accessには罫線という機能はありませんが、[詳細]セクションに[直線]を引く ...