• 締切済み

Access2003でユーザ定義用紙の印刷方法を教えてください

プログラミングに行き詰っているので、ご存知の方がおりましたら教えて下さい。 MS Access2003でレポートの印刷を、VBAかマクロを用いて自動で行いたいです。 印刷をしたい用紙のサイズが「W:127mm x H:430mm」と特殊なサイズとなっています。 現在までのところ、VBAから次のようなコードを試しましたがうまく動作せず、どうしてもA4用紙2枚に印刷されてしまいます。 ------------------------ DoCmd.OpenReport reportName, view:=acDesign set rpt=report(reportName) with rpt.printer  .defaultSize=False  .paperSize = acPRPSUser  .ItemSizeHeight = 430*567  .ItemSizeWidth = 127*567 end with DoCmd.Close reportName, Save:=acSaveYes DoCmd.OpenReport reportName, view:=acNormal ------------------------ 複数のPCで使うため、できれば「レポートを表示して、[ファイル]-[印刷設定]」ではなく、コードから選択が出来るとうれしいです。 なにかよい方法や回避策などご存知の方がおりましたら、よろしくお願いします。

みんなの回答

noname#140971
noname#140971
回答No.1

一介の工員でプログラマではないので参考程度に・・・ 1、アプローチの方向が違うのでは・・・。 2、素直にページ設定を利用しても良いのでは・・・。 まず、仮にユーザ定義用紙の名前を[請求書]とします。 これは、Access が定義するべき性格のものじゃなくOSレベルで定義すべきものだと思います。 ですから、Access 側では素直にページ設定で[請求書]を指定することになろうかと・・・。 (1) OS側でユーザ定義用紙[請求書]を参照するプリンタ[請求書]を用意する。 (2) Access のページ設定では[その他のプリンタ]を選び明示的にユーザ定義用紙[請求書]を指定する。 この場合、肝心なのはOS側の設定ですからレポート一つひとつの設定とは無縁。 レポートは、とにもかくにもページ設定さえ終っていれば事足りと思います。 仮に、自動化するのであれば、このOSの設定部であろうかと思います。 しかし、OSが違えばこの設定要領も違うと推察します。 ですから、まあ、シコシコと設定するのが現実的かと・・・。

wf9a5m75
質問者

補足

>Husky2007さん アドバイスを頂いてありがとうございます。 まぁ普通に考えるとそうなんですけど、今回はパッケージ化して納品するため、クライアントさんにレポートとかを触って欲しくなかったのです。 (何かの拍子にデザイン等を崩されると大変ですので) 一応、レジストリからプリンタと用紙の一覧・用紙IDを取得することで解決に至りそうです。 ありがとうございました。

関連するQ&A

専門家に質問してみよう