2012年2月2日木曜日

Access Printer Object 変更して印刷

Sub RestoreReportPrinter()
    Dim rpt As Report
    Dim prtOld As Printer
    Dim prtNew As Printer

    DoCmd.OpenReport ReportName:="商品区分別商品リスト", View:=acViewPreview
    Set rpt = Reports("商品区分別商品リスト")

    'レポートの現在のプリンタ設定を prtOld 変数に保存します。
    Set prtOld = rpt.Printer

    'レポートの現在のプリンタ設定を prtNew 変数に代入します。
    Set prtNew = rpt.Printer

    'レポートの設定を変更
    With prtNew
        '用紙の向きを横に設定
        .Orientation = acPRORLandscape
        '印刷するページの上の余白を 30mm に設定
        .TopMargin = Round(30 * 56.7, 2)
        '印刷部数を 2 部に設定
        .Copies = 2
        '上下にページをめくる両面印刷の印刷の向きに設定
        .Duplex = acPRDPVertical
        '給紙トレイを上段に設定
        .PaperBin = acPRBNUpper
    End With


    '印刷します。
    Docmd.RunCommand acCmdPrint

    'プリンタを元の設定に戻します。
    Set rpt.Printer = prtOld

    '保存せずに、レポートを閉じます。
    DoCmd.Close ObjectType:=acReport, ObjectName:="商品区分別商品リスト", Save:=acSaveNo

    Set rpt = Nothing
    Set prtNew = Nothing
    Set prtOld = Nothing
End Sub

0 件のコメント: