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 定数。 この引数を省略すると、出力フォーマットのダイアログ ボックスが表示されます。
OutputFile Optional Variant オブジェクトの出力先ファイルのパスを含む完全な名前の文字列式。 この引数を指定しないと、出力ファイル名を指定するように促されます。
AutoStart Optional Variant 読み込まれる OutputFile 引数によって指定されたファイルを使用し、適切な Microsoft Windows ベースのアプリケーションを直ちに起動するには、True (1) を使用します。 アプリケーションを起動しない場合は、False (0) を使います。 この引数は、Microsoft Internet Information Server のファイル (.htx、.idc) および Active Server Pages のファイル (*.asp) に対しては無視されます。 この引数を空白にすると、既定値 (False) と見なされます。
TemplateFile 省略可能 Variant HTML、HTX、または ASP ファイルのテンプレートとして使用するファイルのパスを含む完全な名前の文字列式。
Encoding Optional Variant テキストまたは HTML データの出力に使用する文字エンコード形式の種類。 MS-DOS、Unicode、または Unicode (UTF-8) を選択することができます。 MS-DOS 引数の設定は、テキスト ファイルでのみ使用できます。 この引数を指定しない場合、テキスト ファイルに対しては Windows の既定のエンコード方法を使用し、HTML ファイルに対してはシステムの既定のエンコード方法を使用して、データが出力されます。
OutputQuality Optional AcExportQuality 最適化の対象とする出力装置の種類を指定する AcExportQuality 定数。 既定値は acExportQualityPrint です。

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

表2 ObjectTypeに指定する値 

名前 説明
acOutputForm 2 フォーム
acOutputFunction 10 ユーザー定義プロシージャ
acOutputModule 5 モジュール
acOutputQuery 1 クエリ
acOutputReport 3 レポート
acOutputServerView 7 サーバー ビュー
acOutputStoredProcedure 9 ストアド プロシージャ
acOutputTable 0 テーブル

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

表3 OutputFormatに指定する値

定数 説明 出力形式について
acFormatHTML HTML形式
acFormatPDF PDF形式
acFormatRTF リッチテキストフォーマット形式
acFormatSNP スナップショット形式
acFormatTXT テキスト形式
acFormatXLS Excel形式(2007より前)
acFormatXLSB Excelバイナリ形式
acFormatXLSX Excel形式(2007以降)
acFormatXPS XPS形式

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

表4 OutputQualityに指定する値

名前 説明
acExportQualityPrint 0 出力が印刷に最適化されます。
acExportQualityScreen 1 出力が画面表示に最適化されます。

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

以上が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冊用意されると良いと思います。

スポンサーリンク

Kindle Unlimitedにサインアップして無料体験に登録する
Kindle Unlimitedに登録すると、人気のシリーズ、ベストセラー、名作などに好きなだけアクセスして、シームレスなデジタル読書体験を実現できます。
https://amzn.to/3dqd2n1
https://amzn.to/3h1NFKh

コメント

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