• ベストアンサー

AccessレポートをExcel2010PDF出力

AccessからレポートのPDF出力を考えています。 DoCmd.OutputTo acOutputReport, Source, acFormatPDF, FileName Access2007以降なら上の文でPDF出力できますが、Access2003とExcel2010がインストール された環境で、Access2003からExcel2010の機能を使ってPDF出力させることは可能でしょうか。 AccessからExcelのワークシート関数を使ったり、Excelファイルを開いて編集することはできたので、 PDF出力もできるかもしれないと思い、質問しました。

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

  • ベストアンサー
回答No.2

ゴメン。 激しく勘違な回答のようです。 Access2003でPDF出力ですよね。Excel2010みたいに。 本家AcrobatやフリーウェアのBullZipPDFなどのPDF出力アプリを別途用意しないと 無理のように思います。

この投稿のマルチメディアは削除されているためご覧いただけません。
Barracuda
質問者

お礼

Access2003とExcel2010がインストールされた環境で、Access側で「Microsoft Excel14.0 Object Library」に参照設定しておけば、Access2003から*.xlsを開いて編集して、上書き保存することや、 VBAでExcelのワークシート関数を使うことができます。 このため、Ecxel2010のPDF出力機能も使えないか、と思ったのです。 質問してからいろいろ調査したところ、Access2003からは、たとえExcel2010に参照設定しても、office2003以降の新機能に対応する命令は発行できないことがわかりました。 例えば、Access2003で*.xlsを開き、FileFormatをExcel2010のデフォルトに指定して*.xlsxに 保存しようとしても、Excel2003のデフォルトである*.xlsで上書き保存してしまいます。 また、本来の目的・レポートのPDF出力は、そもそもExcel2010はワークシートをPDFに変換できても、レポートの場合はPDFに変換する以前に、レポートを表示する機能すらないことに付きました。 結局、別途PDF出力ルーチンを作って組み込むことにしました。 ※蛇足※ 実はAccess2010も持っているのですが、あまりの使いにくさに戻してしまいました。 ユーザーインターフェイス以外は2010の方が多くの点で優れているのに、もったいない.....

その他の回答 (2)

回答No.3

ExcelにはAccessのレポートを読み込む機能はないので無理なような気がします。 下記で紹介されているフリーソフトを使うというのはどうでしょうか。 レポートを PDF 出力するフリーウェアまとめ | YU-TANG's MS-Access Discovery http://www.f3.dion.ne.jp/~element/msaccess/AcTipsRptBestFreewareForPDF.html

回答No.1

Microsoft Excel 14.0 Object Library に参照設定した事前バインディングだと こんな感じかもしれない。 実行時だと、Excel.・・・ を Object で宣言して…多分どちらかは動くのでは?と。 Office2010 しか入れてないので検証不可。 普段、xls ファイルをダブルクリックで開いたときに2003が立ち上がる時でも大丈夫? >AccessからExcelのワークシート関数を使ったり 私よりも詳しそうなので、この辺で。 Sub ine() Dim xl2010 As Excel.Application Dim bk As Excel.Workbook Dim sh As Excel.Worksheet Set xl2010 = CreateObject("excel.application.14") Set bk = xl2010.Workbooks.Add bk.Worksheets(1).cells(1, 1) = "出来たかな?" bk.Worksheets(1).ExportAsFixedFormat Type:=xlTypePDF, FileName:="E:\Book1.pdf", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=True bk.Close savechanges:=False Set bk = Nothing xl2010.Quit Set xl2010 = Nothing End Sub

関連するQ&A