- ベストアンサー
AccessのレポートからPDFをページ毎に作成
Acrobat StandardがインストールされたマシンでAccessのレポート機能を使って、印刷を行うときに、出力先をAdobePDFにしたいのですが、ページ毎にファイルを分けて印刷を行いたいと考えています。 1ページずつページ指定をして出力するような手動方式ではなく自動で行う方法はありますか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub t() Dim rpt As Report Dim rptName As String Dim printCount As Integer Dim i As Integer rptName = "あれを" DoCmd.OpenReport rptName, acViewPreview ', wherecondition:="" Set rpt = Reports(rptName) printCount = rpt.Pages Do Until i > printCount DoCmd.PrintOut acPages, i, i i = i + 1 Loop DoCmd.Close acReport, rpt.Name MsgBox "fin" End Sub とかで総ページ数を取得して・・ ところで、AdobePDFでは同名の既存ファイルがあった場合、 ファイル名に連番を付加するとか、 既定ファイル名を出力日時にするとかのオプションは 無いのですかね? 当方持ち合わせておりませんので分かりませんが。 あるいは妥協してスナップショットでしたらファイル名を指定できますが・・ DoCmd.OutputTo acOutputReport, "R発注書", "SnapshotFormat(*.snp)", strFileName,
その他の回答 (1)
- O_cyan
- ベストアンサー率59% (745/1260)
Acrobat Ditillerを使用すればレポート名のままPDFに保存できませんか。 または プリンタ名にAcrobat WriterとAdobe Distillerがあるかどうかを確認してみてください。 マクロでもVBでも出力時にAdobe Distillerを使用して出力すればできませんでしょうか。
補足
プリンタ名にはAdobePDFというものがあります。 ちなみにバージョンは7.0です。 出力先をAdobePDFにすれば、レポート名のままPDFに保存ができますが、ページ毎にファイルを分けて保存する方法が分かりません。つまり100ページのレポートがあったときに、100のPDFファイルを作成する方法です。
お礼
ありがとうございます。参考になりました。 AdobePDFでは、レポートの標題(なければレポート名)がファイル名になるようでしたから、レポートの標題を変えながら印刷を行ったらうまくいきました。