Access VBAで業務システムを開発していると、
- 請求書をPDF化したい
- 点検報告書を自動保存したい
- 売上レポートをメール送信したい
- 帳票を電子保存したい
- 月次資料を自動作成したい
といった要件が頻繁に発生します。
Access VBAでPDFを作成するならDoCmd.OutputToが最も簡単で実務向きです。
特に、
請求書
納品書
報告書
売上集計表
設備点検票
などの帳票管理システムでは必須レベルの機能です。
最近では紙ではなくPDFでの保管やメール送付が主流になっているため、Access VBA開発者ならぜひ習得しておきたい技術です。
- DoCmd.OutputToとは
- OutputToでできること
- 基本構文
- 最もよく使うPDF出力
- 逆引き① レポートをPDF化したい
- 逆引き② 日付付きファイル名で保存したい
- 逆引き③ 年月フォルダへ保存したい
- 逆引き④ 指定顧客の請求書を出力したい
- 逆引き⑤ 出力後にPDFを開きたい
- 実務活用例① 請求書システム
- 実務活用例② 設備点検管理システム
- 実務活用例③ 風量測定管理システム
- 実務活用例④ 売上管理システム
- 実務活用例⑤ ログ管理システム
- ファイル名を自動生成する
- Dir関数と組み合わせる
- DAOと組み合わせる
- ベテラン開発者の定番コード
- Copilot活用術① PDF出力コード生成
- Copilot活用術② 一括PDF作成
- Copilot活用術③ 保存処理改善
- OutputTo利用時の注意点
- OutputToが向いている処理
- 開発現場での利用頻度
- まとめ
DoCmd.OutputToとは
OutputToは、
レポート
↓
PDF出力
↓
ファイル保存
を行うAccess標準機能です。
OutputToでできること
主な用途です。
PDF出力
Excel出力
Word出力
HTML出力
テキスト出力
ですが、実務ではPDF出力が圧倒的に多いです。
基本構文
DoCmd.OutputTo _
出力対象, _
オブジェクト名, _
出力形式, _
保存先
最もよく使うPDF出力
基本コードです。
DoCmd.OutputTo _
acOutputReport, _
"R_INVOICE", _
acFormatPDF, _
"C:\PDF\Invoice.pdf"
結果
R_INVOICE
↓
Invoice.pdf
が生成されます。
逆引き① レポートをPDF化したい
最も基本です。
DoCmd.OutputTo _
acOutputReport, _
"R_SALES", _
acFormatPDF, _
"C:\PDF\Sales.pdf"
効果
売上レポートをPDF保存できます。
逆引き② 日付付きファイル名で保存したい
実務で最も利用される方法です。
Dim strFile As String
strFile =
"C:\PDF\Sales" & _
Format(Date(), _
"yyyymmdd") & _
".pdf"
出力
DoCmd.OutputTo _
acOutputReport, _
"R_SALES", _
acFormatPDF, _
strFile
結果
Sales_20260925.pdf
逆引き③ 年月フォルダへ保存したい
帳票保管向けです。
strFile = _
"C:\PDF" & _
Format(Date(), _
"yyyymm") & _
"\Sales.pdf"
効果
月別管理できます。
逆引き④ 指定顧客の請求書を出力したい
請求システムです。
レポート表示
DoCmd.OpenReport _
"R_INVOICE", _
acViewPreview, _
, _
"顧客コード='C001'"
PDF出力
DoCmd.OutputTo _
acOutputReport, _
"R_INVOICE", _
acFormatPDF, _
strFile
効果
個別請求書作成
逆引き⑤ 出力後にPDFを開きたい
確認用です。
Application.FollowHyperlink _
strFile
効果
自動表示できます。
実務活用例① 請求書システム
定番業務です。
処理
請求データ作成
↓
レポート生成
↓
PDF出力
↓
保存
VBA
DoCmd.OutputTo _
acOutputReport, _
"R_INVOICE", _
acFormatPDF, _
strFile
実務活用例② 設備点検管理システム
点検結果保存です。
帳票
設備番号
測定値
判定結果
出力
DoCmd.OutputTo _
acOutputReport, _
"R_CHECK", _
acFormatPDF, _
strFile
効果
電子保管対応
実務活用例③ 風量測定管理システム
測定報告書出力です。
出力内容
測定日時
測定地点
線量値
判定結果
効果
紙管理削減
履歴管理強化
実務活用例④ 売上管理システム
月次報告書出力です。
DoCmd.OutputTo _
acOutputReport, _
"R_MONTHLY_SALES", _
acFormatPDF, _
strFile
効果
管理資料自動作成
実務活用例⑤ ログ管理システム
実行結果報告です。
出力
処理件数
エラー件数
実行日時
効果
監査対応
ファイル名を自動生成する
実務では必須です。
strFile = _
"C:\PDF" &
"Report" & _
Format(Now(), "yyyymmdd_hhnnss") &
".pdf"
結果
Report_20260925_101530.pdf
ファイル重複を防げます。
Dir関数と組み合わせる
出力チェックです。
If Dir(strFile) <> "" Then
MsgBox "既に存在します"
End If
効果
上書き事故防止
DAOと組み合わせる
出力対象取得です。
Set rs = _
CurrentDb.OpenRecordset(strSQL)
レコードごとに出力できます。
Do Until rs.EOF
'PDF生成
rs.MoveNext
Loop
効果
請求書一括発行
ベテラン開発者の定番コード
実務で非常によく見る形です。
Dim strFile As String
strFile = _
"C:\PDF" & _
Format(Now(), "yyyymmdd_hhnnss") & ".pdf"
DoCmd.OutputTo _
acOutputReport, _
"R_REPORT", _
acFormatPDF, _
strFile
シンプルで保守しやすいコードです。
Copilot活用術① PDF出力コード生成
Copilotへの依頼例です。
Access VBAです。
レポートをPDF出力する
コードを作成してください。
Copilot活用術② 一括PDF作成
DAOで取得した顧客ごとに
請求書PDFを作成する
コードを作成してください。
Copilot活用術③ 保存処理改善
OutputToコードへ
エラー処理と
存在チェックを
追加してください。
OutputTo利用時の注意点
保存先フォルダ
事前に存在確認しましょう。
Dir(strFolder, vbDirectory)
レポート名
存在しない場合
実行時エラー
になります。
ファイル名重複
日時付与がおすすめです。
PDF出力前にレポート確認
レイアウト崩れを防げます。
OutputToが向いている処理
特に活躍するのは次の用途です。
- 請求書発行
- 納品書発行
- 見積書作成
- 売上報告書
- 点検報告書
- 風量測定報告書
- 月次管理資料
開発現場での利用頻度
| 順位 | 用途 |
|---|---|
| 1位 | 請求書PDF |
| 2位 | 売上報告書 |
| 3位 | 設備点検票 |
| 4位 | 月次資料 |
| 5位 | 監査資料 |
実務では非常によく利用される機能です。
まとめ
DoCmd.OutputToはAccess VBAでPDF出力を実現する最も重要な機能の一つです。
特に
- 請求書発行
- 設備点検報告
- 風量測定報告
- 売上報告書
- 月次資料作成
などで大きな効果を発揮します。
まずは次のコードを覚えましょう。
DoCmd.OutputTo _
acOutputReport, _
"R_REPORT", _
acFormatPDF, _
strFile
これだけで帳票の電子化や自動化を実現できます。
Copilotを活用すれば、
- PDF出力コード生成
- 一括出力処理作成
- エラーハンドリング追加
も効率的に進められます。
業務システムの自動化を進めるなら、ぜひ習得しておきたい定番テクニックです。


コメント