Microsoft Access 掲示板

「余白に応じて行数指定無く用紙の最後まで罫線を出力する」の最下部横線太さについて / 3

5 コメント
views
4 フォロー
3
hiroton 2022/01/20 (木) 13:37:21 3c477@f966d

縦線についてはきれいな表形式のレポートならレイアウト機能(レポートデザインツール→テーブル→表形式)を使って縦線の代わりにテキストボックスを使うと印刷時拡張で一緒にサイズが変わるのでちょっと楽かもしれません


最下部の横線考えてたらhatenaさんがいい感じの回答してますが、

Private Sub Report_Page()
    BottomPos = BottomPos - PageTop     '//変更
    Me.DrawWidth = 4 '罫線の太さを設定
    Me.Line (0, BottomPos)-(Me.Width, BottomPos)
End Sub

Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
    PageTop = Me.Top  '//これだけでいい
End Sub

Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
    BottomPos = Me.Top + Me.拡張設定のあるテキストボックス.Height '//追加
End Sub

単に印刷領域上からの位置でいいんじゃないかなぁというのと、Formatイベントは処理が複雑なので実際に描画したPrintイベントで位置を取得すると楽じゃないかなと

見る方向が逆になっているので+-が逆になるのと、印刷時拡張後の高さが欲しいので高さを取得するコントロールをきちんと指定する必要があります
グループヘッダー・フッターについても、ページの最後に印刷される可能性があるならPrintイベントで同様に最下部の位置を取得しておけばいいです
いずれにせよReport_Pageイベント直前のPrintイベントでBottomPosがその「セクションの印刷開始位置(Me.Top)+セクションの高さ」で上書きされていればちょうど最下部に線を描画できます

※大本のコード(その他の目的)部分は考慮していません

通報 ...