PR

AccessのデータをPDFファイルとして出力する方法

VBA

Accessのデータを外部へ提供する場合に、PDFファイルとすると便利な場合があります。

ここでは、Access VBAでテーブルデータをPDFファイルとして出力する方法を紹介します。また、PDF形式に限らず、その他のファイル形式についても同様の処理で出力できますので、併せて紹介します。

スポンサーリンク

OutputToメソッドについて

ファイル出力については、OutputToメソッドが利用できます。基本構文は次のようになります。

DoCmd.OutputTo (ObjectType, ObjectName, OutputFormat, OutputFile, AutoStart, TemplateFile, Encoding, OutputQuality)

各引数の説明は次のとおりです。

表1 OutputToメソッドの引数

名前必須 /
オプション
データ型説明
ObjectType必須AcOutputObjectType出力するオブジェクトの種類を指定する AcOutputObjectType 定数。
ObjectName省略可能Variant引数 ObjectType で指定した種類のオブジェクトの有効な名前の文字列式。 アクティブ オブジェクトを出力する場合は、ObjectType 引数のオブジェクトの種類を指定し、この引数を空白のままにします。 OutputTo メソッドを含む Visual Basic コードをライブラリ データベースで実行すると、この名前のオブジェクトが、最初にライブラリ データベースで、次に現在のデータベースで検索されます。
OutputFormat省略可能AcFormat出力形式を指定する AcFormat 定数。 この引数を省略すると、出力フォーマットのダイアログ ボックスが表示されます。
OutputFileOptionalVariantオブジェクトの出力先ファイルのパスを含む完全な名前の文字列式。 この引数を指定しないと、出力ファイル名を指定するように促されます。
AutoStartOptionalVariant読み込まれる OutputFile 引数によって指定されたファイルを使用し、適切な Microsoft Windows ベースのアプリケーションを直ちに起動するには、True (1) を使用します。 アプリケーションを起動しない場合は、False (0) を使います。 この引数は、Microsoft Internet Information Server のファイル (.htx、.idc) および Active Server Pages のファイル (*.asp) に対しては無視されます。 この引数を空白にすると、既定値 (False) と見なされます。
TemplateFile省略可能VariantHTML、HTX、または ASP ファイルのテンプレートとして使用するファイルのパスを含む完全な名前の文字列式。
EncodingOptionalVariantテキストまたは HTML データの出力に使用する文字エンコード形式の種類。 MS-DOS、Unicode、または Unicode (UTF-8) を選択することができます。 MS-DOS 引数の設定は、テキスト ファイルでのみ使用できます。 この引数を指定しない場合、テキスト ファイルに対しては Windows の既定のエンコード方法を使用し、HTML ファイルに対してはシステムの既定のエンコード方法を使用して、データが出力されます。
OutputQualityOptionalAcExportQuality最適化の対象とする出力装置の種類を指定する AcExportQuality 定数。 既定値は acExportQualityPrint です。

続いて、ObjectTypeに指定する値を表2に示します。

表2 ObjectTypeに指定する値 

名前説明
acOutputForm2フォーム
acOutputFunction10ユーザー定義プロシージャ
acOutputModule5モジュール
acOutputQuery1クエリ
acOutputReport3レポート
acOutputServerView7サーバー ビュー
acOutputStoredProcedure9ストアド プロシージャ
acOutputTable0テーブル

さらに、OutputFormatに指定する値を表3に示します。このOutputFormat引数の値を変えてあげることで、様々なファイル形式でデータを出力することができます。

表3 OutputFormatに指定する値

定数説明 出力形式について
acFormatHTMLHTML形式
acFormatPDFPDF形式
acFormatRTFリッチテキストフォーマット形式
acFormatSNPスナップショット形式
acFormatTXTテキスト形式
acFormatXLSExcel形式(2007より前)
acFormatXLSBExcelバイナリ形式
acFormatXLSXExcel形式(2007以降)
acFormatXPSXPS形式

最後に、OutputQualityに指定する値を表4に示します。

表4 OutputQualityに指定する値

名前説明
acExportQualityPrint0出力が印刷に最適化されます。
acExportQualityScreen1出力が画面表示に最適化されます。

これらの値により、出力サイズの設定をすることができます。

以上がOutputToメソッドを用いる際の情報となります。

続いて、実際のコード例を見てみましょう。

サンプルコードについて

PDFファイルを出力するにあたって、サンプルテーブルとして「T_sample」テーブルを用意します。そして、「氏名」及び「生年月日」フィールドを追加し、それぞれのデータ型を「短いテキスト」及び「日付/時刻型」とします。

さらにサンプルデータとして表5の値を入力します。

表5 サンプルデータ

氏名生年月日
下田 一樹1984/06/24
武藤 祐美1970/08/28
古川 斎1985/03/17
土田 竹一1979/07/20
岩田 れいや1985/05/04

さて、ここで標準モジュールを作成し、以下のコードを実装してください。

Private Sub PDFOutput()

DoCmd.OutputTo acOutputTable, "T_sample", acFormatPDF, "C:\TEST\TEST.PDF", True

End Sub

このコードは先に紹介したOutputToメソッドですが、PDFファイルとして、「T_sample」テーブルを指定するパス「C:\TEST\TEST.PDF」で出力するという意味になります。

実際に動かしてみると、図1のようにファイルが出来上がり、作成されたPDFファイルを開くと図2のような結果が得られます。

図1 作成されたPDFファイルの保存先

今回指定したファイルパスは固定値にしましたが、変数を設定することもできるため、可変的な処理も実装可能です。

図2 作成されたPDFの出力内容

このようにして、PDFファイルを出力することができました。

まとめ

今回は、AccessからPDFファイルを出力する方法について紹介しました。ファイル形式は色々と選択することができるため、ルーチン業務について適用することで業務効率の改善を図ることができます。

今回紹介した内容は、以下の書籍でも紹介されていますので、お手元に1冊用意されると良いと思います。

スポンサーリンク

https://amzn.to/3dqd2n1
https://amzn.to/3h1NFKh

コメント

タイトルとURLをコピーしました