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のような結果が得られます。
今回指定したファイルパスは固定値にしましたが、変数を設定することもできるため、可変的な処理も実装可能です。
このようにして、PDFファイルを出力することができました。
まとめ
今回は、AccessからPDFファイルを出力する方法について紹介しました。ファイル形式は色々と選択することができるため、ルーチン業務について適用することで業務効率の改善を図ることができます。
今回紹介した内容は、以下の書籍でも紹介されていますので、お手元に1冊用意されると良いと思います。
スポンサーリンク
コメント