ウィングのHPへようこそ 本文へジャンプ
サンプル一覧へ戻る

レポートの罫線をあらかじめ引いてしまうVBA


レポートを作成する際に、データの量に関係なく、罫線をページ一杯に引きたい時があります。
それを実現する方法の一つです。これは、データと関係なく、あらかじめ「ページフォーマット時」に罫線をひいてしまいます。
したがって、たとえデータが0件でも、関係なく引きます。
<ソース例>


Private Sub Report_Page()
  Dim SecHeight As Single, LineWidth As Single
  Dim LineTop As Single, LineHeight As Single
  Dim i As Integer

  Const RowCount = 20 'ここで行数を指定

  With Me
    .ScaleMode = 1
    .DrawWidth = 1 '罫線の太さ
    SecHeight = .Section(acDetail).Height '詳細セクションの高さ
    LineWidth = 38 * 567 '横罫線の幅をレポートの幅に(38cmの横罫線を指定します)
    LineTop = .Section(acPageHeader).Height '縦罫線の上位置
    LineHeight = SecHeight * RowCount '縦罫線の高さ

    ’ここからは罫線の外枠をまず引きます。
    Me.Line (0, LineTop)-Step(LineWidth, 0) '外枠 上
    Me.Line (0, LineTop)-Step(0, LineHeight) '外枠 左
    Me.Line (LineWidth, LineTop)-Step(0, LineHeight) '外枠 右

    'ここからは罫線の縦ラインを引きます。一番左と一番右側はすでに外枠で指定されています。
    'したがって、内側の縦線をひきます。
    Me.Line (1.3 * 567, LineTop)-Step(0, LineHeight) '縦罫線 ここはひだりから1.3cmのところに縦線を引きます。
    Me.Line (5.5 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (7.9 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (10.3 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (12.7 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (15.1 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (17.5 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (19.9 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (22.3 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (24.7 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (27.1 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (29.5 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (31.9 * 567, LineTop)-Step(0, LineHeight) '縦罫線
    Me.Line (34.3 * 567, LineTop)-Step(0, LineHeight) '縦罫線

    'ここからは横線を引きます。横線の長さはLineWidthであらかじめ指定しています。
    For i = 1 To RowCount '横罫線を20行分
      Me.Line (0, LineTop + SecHeight * i)-Step(LineWidth, 0)
    Next

  End With

End Sub

サンプル一覧へ戻る
 

Copyright(C) 2006 Wing