案1
レコードがない場合も用紙の最後まで罫線を出力する - hatena chips
上記のサンプルの応用
概要
ページヘッダーにロゴを配置。
その上に詳細セクションを重ねて出力。
詳細設定
ページヘッダーに、イメージコントロールにロゴを表示させて9つ配置します。
レポートの幅は用紙の幅から左右余白を引いた幅にします。
ページヘッダーの高さは用紙の高さから上下余白を引いた高さにします。
どちらも計算値より少し小さめにしておいてください。
[ページ設定]-[レイアウト]の設定
行列設定
列数 3
行間隔 0cm
列間隔 0cm
サイズ
幅 (用紙幅 - 左右余白)÷ 3
高さ(用紙高 - 上下余白)÷ 3
実寸 チェックはずす
詳細セクション
背景色 #FEFEFE (白だと透過してしまうので限りなく白に近いグレー)
ページヘッダーのフォーマット時のイベントプロシージャに下記のコードを記述します。
vba
1Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer)
2 Me.MoveLayout = False
3End Sub
以上で、残りの余った部分にロゴが表示されます。
この方法のメリットは、前回の質問 の右側の列の余白の部分にもロゴが表示される点です。
これで用事が無駄なく使えます。
案2
レコードがない場合も用紙の最後まで罫線を出力する NextRecord版 - hatena chips
上記のページの応用
概要
レポートフッターにロゴ画像を配置して、Me.NextRecord = False
で用紙の最後まで繰り返し出力する。
詳細設定
グループ化と並べ替えで、グループの追加 を追加して、グループ化は式を選択して、式を =1 という固定値にする。(固定値なら1でなくてもOK)
ヘッダーセクションなし
フッターセクション付き
グループフッターの高さは、詳細セクションの高さと同じにする。
イメージコントロールにロゴ画像を表示させて配置する。
vba
1Private Sub グループフッター1_Format(Cancel As Integer, FormatCount As Integer)
2 If Me.Left < 7000 Or Me.Top < 9000 Then
3 Me.NextRecord = False
4 End If
5End Sub
7000 と 9000 は前回の質問と同様に詳細セクションのフォーマット時で、
ebug.Print Me.Left, Me.Top
と記述してプレビューさせて表示させる数値を参考にして決めてください。
上記の数値でたいていいいと思います。
こちらの方法は、右側の列の余白の部分にはロゴは表示されないですが、
表示させる場合は、詳細セクションにロゴ画像を配置して、可視を切り替えて余白部のみ表示させるようにすれば可能です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。