• ベストアンサー

AccessでPDFを複数ファイルにして出力

○環境 Access2007or2010 Windows7Pro Accessで、帳票をPDFファイルにして出力することを考えています。 VBAのコードで DoCmd.OutputTo acOutputReport, (オブジェクト名), acFormatPDF, (ファイルのパス) と書けば出力できることを確認しました。 さらに、10ページあるレポートならば、10のPDFファイルに分割して出力したいと考えています。 が、そこまで方法を書いたページが見つかりません。 別ソフトと組み合わせてもいいので、何か方法をご存じの方はお教えください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

追伸 もし無ければレポートの適当なところに、不可視でも構わないので テキストボックスを1個配置して、コントロールソースに =[Pages] と設定して置いてください。

souitirou1
質問者

お礼

詳細なアドバイスありがとうございます。 結局、これとは違う方法で解決することにしました。 上記レポートはデータベースをselectした結果を出力するものなのですが、 そこに繰り返し処理を加えてDoCmd.OutputToをページ数ぶん繰り返すことにしました。 今回は使いませんでしたが、nicotinismさんの回答が他の方の助けになればと思います。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

Adobe の Acrobat はお持ちでは無いでしょうか。 これを購入して・・ とてもお高いので。。私は下記の PDFCreator を使わせてもらっています。 http://sourceforge.jp/projects/pdfcreator/ 簡単な説明は上記リンクをご覧いただくとして オプションの AutoSave にチェックを入れ Filename には <Title> として おいて置けば自動的に保存されます。 ※ただし日本語(全角文字)は使えません なので別名で保存した後で、ファイル名を書き戻す必要が無いかも? (詳しくは最後の方に) Sub pdfPrint(rptName As String) '1ページずつPDFで印刷 'rptNameにはレポート名(※PDFCreatorで出力するように設定してあること)   Dim rpt As Report   Dim printCount As Integer   Dim i As Integer   DoCmd.OpenReport rptName, acViewPreview, windowmode:=acIcon   Set rpt = Reports(rptName)      If MsgBox(rpt.Printer.DeviceName & " で印刷します", vbOKCancel) = vbCancel Then     DoCmd.Close acReport, rpt.Name, acSaveNo     Set rpt = Nothing     Exit Sub   End If      printCount = rpt.Pages      Do Until i > printCount     i = i + 1     rpt.Caption = rpt.Name & Format(i, "-000")     DoCmd.PrintOut acPages, i, i   Loop      DoCmd.Close acReport, rpt.Name, acSaveNo   Set rpt = Nothing   MsgBox rptName & " の印刷終了" End Sub なお、YU-TANG さんが詳しい解説をされています。 レポートを PDF 出力する方法~ PDFCreator 編~ http://www.f3.dion.ne.jp/~element/msaccess/AcTipsRptPDFCreator.html また、日本語化を行った有志の方を紹介されています。

関連するQ&A