よろしくお願いいたします。
| 名前 | 性別 |
| 猫 | オス |
| 猫 | メス |
| 猫 | メス |
| 犬 | オス |
| 犬 | オス |
| 犬 | メス |
このようなテーブルがあったとします。
これを印刷したいのですが、①名前が変わるところ、②性別が変わるところ
それぞれで1行の空白を作った状態で印刷したいです。
さらに、③A4の紙いっぱい(15行)に表(罫線)を入れたい。
| 名前 | 性別 |
| 猫 | オス |
| 空行 | |
| 猫 | メス |
| 猫 | メス |
| 空行 | |
| 犬 | オス |
| 犬 | オス |
| 空行 | |
| 犬 | メス |
| 空行 | |
| 空行 | |
(....15行まで)
よろしくお知恵をお貸しください。
印刷はレポートでするのですよね。
まずは、
に関しては、下記を参考にしてください。
レコードがない場合も用紙の最後まで罫線を出力する - hatena chips
レポートの「グループ化/並べ替え」の機能で、
並べ替えの追加で「名前」フィールドを追加。
その後、グループの追加で「性別」フィールドを追加。
「ヘッダーセクションなし、フッターセクション付き」に設定。
以上です。
ありがとうございます。
おかげさまで、上記の質問の内容は出来ましたが、追加がありました。
| 番号 | 名前 | 性別 |
| 1 | 猫 | オス |
| 6 | 猫 | メス |
| 2 | 猫 | メス |
| 5 | 犬 | オス |
| 4 | 犬 | オス |
| 3 | 犬 | メス |
このデータの場合、最優先は番号だとしたら、
| 番号 | 名前 | 性別 |
| 1 | 猫 | オス |
| 空白 | | |
| 2 | 猫 | メス |
| 空白 | | |
| 3 | 犬 | メス |
| 空白 | | |
| 4 | 犬 | オス |
| 5 | 犬 | オス |
| 空白 | | |
| 6 | 猫 | メス |
このようにしたいです。
グループで番号を優先にしても名前を優先にしても
うまくいかなかったので、大変申し訳ございませんが、
ご教授願います。
VBAが必要になりますね。
まずは、グループ化/並べ替えは、[番号]フィールドのみグループ化して、下記のように設定します。
昇順 ヘッダーセクション付き フッターセクションなし
リボンの[コードの表示]をクリックしてVBAウィンドウを表示させます。
そこに下記のコードをコピーして貼り付けてください。
これでご希望の結果になると思います。
やっていることは、
モジュールレベル変数 preValue に直前のレコードの値を格納しておいて、
現在のレコードの値と比較して同じたったら、Cancel = True でヘッダーを出力しない。
異なっていたらそのまま出力とするということです。
ページヘッダーセクションで preValue = "" としているのは、
ページの先頭にレコードの前に空白行が出力されるのを防ぐためです。
ありがとうございました!思い通りの印刷が出来ました。