HOME > 即効テクニック > AccessVBA > フォーム・レポート > レポートの印刷時に詳細に長方形の枠を描画する

即効テクニック

フォーム・レポート

レポートの印刷時に詳細に長方形の枠を描画する

(Access 97)
レポートの印刷時に発生するイベントで、次のようにイベントプロシージャを呼び出すステートメントを記述します。

Private Sub 詳細_Print(Cancel As Integer, _
                       PrintCount As Integer)
    ' Drawline プロシージャを呼び出します。
    DrawLine
End Sub

このイベントは、印刷またはプレビューで発生します。(「詳細」のプロパティシート[イベント]タブの「印刷時」)次に、呼び出されるプロシージャを同じクラスモジュール内に作成します。

Sub DrawLine()
    Dim rpt As Report, lngColor As Long
    Dim sngTop As Single, sngLeft As Single
    Dim sngWidth As Single, sngHeight As Single

    Set rpt = Reports!レポート1

    ' スケールをピクセル単位にします。
    rpt.ScaleMode = 3
    ' 上端から 5 ピクセル内側の辺です。
    sngTop = rpt.ScaleTop + 5
    ' 左端から 5 ピクセル内側の辺です。
    sngLeft = rpt.ScaleLeft + 5

    ' 幅。
    sngWidth = rpt.ScaleWidth / 2
    ' 高さ。
    sngHeight = rpt.ScaleHeight / 2
    ' 色を赤にします。
    lngColor = RGB(0, 0, 255)
    
    ' 線を使って四角形を描きます。
    rpt.Line (sngTop, sngLeft)-(sngWidth, sngHeight), _
             lngColor, B

End Sub

印刷またはプレビューでレポートを表示すると、詳細セクションの上端と左端から5ピクセル内側に、詳細セクションの半分の幅と高さの青い長方形が描画されます。
Lineメソッドは、Printイベントの発生時に、Reportオブジェクトに直線や長方形を描きます。
構文は次のとおりです。

<構文>
object.Line [[Step](x1, y1)] - [Step](x2, y2)
                                      [, [color][, B[F]]]

引数  内容 
object 描画の対象となるReportオブジェクトです。 
Step  始点の座標値を、objectのプロパティCurrentXとCurrentY からの
        相対位置として指定することを示すキーワードです。 
x1, y1 直線や長方形の始点の座標値を表す単精度浮動小数点型(Single)
        の値です。引数objectで指定したReportオブジェクトのスケール
        プロパティ(ScaleMode、ScaleLeft、ScaleTop、ScaleHeight、
        およびScaleWidthプロパティ)によって値の単位が決まります。
        この引数を省略すると、CurrentX、CurrentYが始点となります。 
Step   終点の座標値が始点からの相対位置で決まることを示すキーワードです。 
x2, y2 直線の終点の座標値を表す単精度浮動小数点型の値です。
        この引数を省略することはできません。 
color  直線のRGB(赤緑青)カラーを表す長整数型(Long)の値です。
        省略すると、"ForeColor/前景色"プロパティの値が使われます。
        RGB や QBColor 関数を使用することができます。 
B    終点と始点を長方形の対角と見なして長方形を描画するオプションです。 
F       FはBと共に指定します。Bオプションと共にFオプションを指定すると、
        長方形の中を外周と同じ色で塗りつぶします。
        Fを指定せずにBだけを指定すると、長方形の中は現在のFillColorと
        "BackStyle/背景スタイル"プロパティの値で塗りつぶされます。
        "BackStyle/背景スタイル"プロパティの既定値は[Normal/普通]です。