概要
| この記事の結論 Accessのレポートを[印刷プレビュー]で開き、[PDFまたはXPS]から保存先とファイル名を指定して[発行]するとPDFにできます。先に対象の顧客・期間・帳票を絞り込み、用紙サイズや改ページを確認してください。発行後はPDFを開き、宛先・金額・ページ数を照合すると、別顧客の混入や文字切れを防げます。 |
この記事でわかること
- 対象の帳票とデータを先に絞り込む
- 印刷プレビューで用紙と全ページを確認する
- PDFまたはXPSからファイルを発行する
- 完成PDFで宛先・金額・ページ数を照合する
この記事の主な内容
- 印刷プレビューからPDFを作る基本
- 出力前に宛先と対象データを確定する
- PDFの保存手順と出力方法の使い分け
- 白紙ページや文字切れを直す方法
- VBAで条件を指定してPDFを出力する
- 配布前の確認と帳票運用の整え方
- まとめ
- よくある質問
想定読了時間:約12分~16分
印刷プレビューからPDFを作る基本
Accessのレポートは、紙に印刷せずPDFファイルとして保存できます。請求書、見積書、一覧表などを、相手がAccessを持っていない場合にも渡しやすくなる方法です。まずは標準の[PDFまたはXPS]を使い、手動で正しい出力ができることを確認します。
ここでいうレポートは、Access内で印刷用に設計した帳票です。テーブルをそのまま出力する場合と異なり、見出し・明細・合計などをレポート上で配置できます。PDFはその時点の結果を保存するため、元データを後から修正しても、作成済みPDFの内容は変わりません。

最短の操作手順
1. ナビゲーションウィンドウで目的のレポートを右クリックします。
2. [印刷プレビュー]を選びます。
3. 宛先、対象期間、合計、ページ数を確認します。
4. リボンの[PDFまたはXPS]を選択します。
5. 保存先とファイル名、PDF形式を確認し、[発行]します。
6. 作成されたPDFを開いて内容を確認します。
ボタンが見えない場合は、レポートが印刷プレビューで開いているか、リボンが折りたたまれていないかを確認します。版によっては[外部データ]のエクスポート機能からPDF/XPSを選ぶこともできます。独自リボンを使う業務アプリでは、開発者が用意した出力ボタンから操作する場合があります。
レポートビューとの違い
レポートビューはデータの閲覧に便利ですが、紙のページ境界や印刷結果を確定する確認画面ではありません。改ページや余白を判断するときは印刷プレビューを使います。デザインビューで罫線や部品を直した後も、必ずプレビューへ戻って確かめます。
PDF化は帳票の内容を正しくする機能ではありません。元の請求額が間違っていたり、別顧客のデータが含まれていたりすれば、そのまま保存されます。保存ボタンを押す前の対象確認が、出力形式の選択よりも重要です。
出力前に宛先と対象データを確定する
「今見えている顧客だけをPDFにしたい」場合、元のフォームの表示が、そのままレポートに引き継がれるとは限りません。レポートが参照するテーブルやクエリ、起動時の絞り込み条件を確認します。請求書なら顧客名だけでなく請求書IDまで合わせると、対象を特定しやすくなります。
レコードの条件とページ範囲を分ける
顧客IDや請求年月を条件にするのは、帳票に含めるデータを決める作業です。一方、「2ページ目だけ」を出すのは、既に作られた帳票のページを選ぶ作業です。ページ番号で顧客を選ぶ運用は、明細が増減すると対象ページがずれるため注意が必要です。
| 指定したいこと | 主に確認する場所 | 注意点 |
|---|---|---|
| 顧客201だけ | レコードソースや起動時の条件 | フォームの表示だけに頼らない |
| 請求書1001だけ | 請求書IDなど一意の条件 | 同じ顧客の別請求書を混ぜない |
| 9月の全データ | クエリの期間条件 | 時刻がある月末の境界にも注意 |
| 完成帳票の一部ページ | 出力・印刷のページ範囲 | データ抽出の代用にしない |

手動のフィルターを使う場合も、フィルターの有無と対象件数をプレビューで確認します。既存の出力ボタンに条件が組み込まれているときは、別の操作経路から開くと結果が変わる可能性があります。担当者間で使う入口をそろえておきましょう。
確認用の帳票を決める
説明用の例では、R_請求書というレポートが請求書IDを持つレコードソースを参照しているものとします。請求書ID1001の宛先・明細件数・合計金額を先に把握し、その値と出力を照合します。これは教育用の想定であり、特定の実案件データではありません。
特に複数ページの帳票では、先頭ページだけで判断しないでください。末尾に別顧客が含まれる、合計だけ次ページへ出る、途中で見出しが消えるなどの問題は、全ページを通して初めて分かります。最終ページとグループの切り替わりを重点的に見ます。
PDFの保存手順と出力方法の使い分け
標準のPDF発行画面では、保存先・ファイル名・出力形式を指定します。画質や出力範囲などの選択肢が表示される場合は用途に合わせて確認してください。通常は印刷を想定した品質から試すと、文字やロゴの確認がしやすくなります。
保存先と名前の決め方
最初は書込み可能な検証フォルダーへ保存します。ファイル名は「請求書_1001_202609_確認用.pdf」のように帳票の種類、対象ID、対象年月を含めると探しやすくなります。実際の命名規則では、機密情報をファイル名にどこまで含めるかも決めてください。
同じ名前のPDFがある場合は、上書きする前に内容と保存目的を確認します。発行済みの証跡を残したい運用なら、版や出力日時を付けて別保存する方法が考えられます。ファイル名の変更だけで、再発行の承認や履歴管理が自動で行われるわけではありません。

標準のPDF発行とPDFプリンター
WindowsのMicrosoft Print to PDFをプリンターとして選ぶ方法と、Access標準のPDF発行は操作経路が異なります。標準機能での保存を基本にし、印刷ダイアログで扱いたい条件がある場合にPDFプリンターを検討すると整理しやすくなります。
| 方式 | 向いている用途 | 確認する点 |
|---|---|---|
| PDFまたはXPS | 担当者が確認して手動保存 | 保存先・品質・完成PDF |
| PDFプリンター | 印刷操作からPDFへ出したい | 用紙、方向、印刷範囲、ドライバー |
| VBAのOutputTo | 同じ条件で繰り返し保存 | 抽出条件、保存先、例外処理 |

プリンターを切り替えると印刷可能領域や設定が変わり、ページ数に影響することがあります。「PDFにすればどの経路でも全く同じ結果になる」と決めつけず、実運用で使用する出力方法を固定して検証します。
保存後のPDFを開く
発行後にファイルを開く設定がある場合は有効にするか、保存先から手動で開きます。PDFビューアーで各ページを確認し、読めない文字、切れた罫線、欠けたロゴがないかを見ます。元のレポートを直した場合は、PDFを再発行してから比較してください。
白紙ページや文字切れを直す方法
レポートの横幅が用紙の内側に収まらないと、横方向にはみ出した部分が別ページに出ることがあります。文字のないページが交互に出る場合も、まず横幅と左右の余白、右端に残った罫線やコントロールを確認します。
レポート幅と左右余白を確認する
確認の考え方は「レポートの幅+左余白+右余白が用紙幅を超えていないか」です。例えばA4縦は幅210mmです。左右余白をそれぞれ10mmにする設計なら、レポート幅の目安は190mm以内です。ただし、使用するプリンターの印刷可能領域も確認する必要があります。
デザインビューの右端にある線や画像が、見えている明細より外へはみ出していないかも見ます。数ミリの余白だけを詰める前に、用紙サイズ・縦横の向き・レポート幅を一緒に確認します。印刷設定を変えたら、最終ページまで再確認してください。

症状ごとの切り分け
| 症状 | 主な確認箇所 | 最初に試すこと |
|---|---|---|
| 交互に白紙が入る | 幅、余白、右端の部品 | 右端を縮めてプレビュー |
| 最後だけ空白になる | 末尾の改ページ、フッターの高さ | 不要な改ページを一つずつ解除 |
| 文字が途中で切れる | テキストボックスの幅・高さ | 長い値でサイズを見直す |
| 画像が白い四角になる | 元画像、背景スタイル、出力経路 | 透過画像とPDFを分けて確認 |
| 別PCでページ数が違う | フォント、用紙、プリンター設定 | 環境差を記録して比較 |
| 一部顧客が混ざる | フィルター、レコードソース | 出力条件を先に修正 |
文字を小さくして無理に収めると、帳票の可読性が落ちます。長い摘要だけが問題なら、テキストボックスの伸長や明細高さを見直し、改ページとの関係も確認します。定型の1件だけでなく、最長の摘要や最大の明細件数で試してください。
保存できない場合
保存先への書込み権限、存在しないフォルダー、ファイル名に使えない文字、同名PDFが他のアプリで使用中かどうかを確認します。ネットワーク先で失敗する場合は、許可されたローカルの検証フォルダーへ別名保存して、帳票生成と保存先の問題を分けます。
アクセス権の問題を、Accessを管理者として起動するだけで回避する運用にはしないでください。保存すべき場所に必要な権限があるかを管理者へ確認します。エラーが出たときは、帳票名、対象条件、保存先、メッセージを残すと調査しやすくなります。

請求書や帳票のPDF出力を安全に自動化する相談をする
基本操作で解決できる範囲は、まずコピーで試し、出力結果を確認しましょう。顧客別大量出力、対象条件の取り違え、帳票レイアウト崩れ、保存履歴を管理したい場合は、専門家への相談もご検討ください。
既存Accessの状況整理から、クエリ・フォーム・レポートの改修までご相談いただけますのでお気兼ねなく下記へご相談下さい。
VBAで条件を指定してPDFを出力する
VBAで自動化する場合も、先に手動出力で帳票の完成形を確認します。対象を絞ってレポートを開く役割はOpenReport、ファイルへ書き出す役割はOutputToです。OutputToにはWhereCondition引数がないため、出力だけを呼んで対象レコードが自動的に絞られるわけではありません。
サンプルの前提
次の例は数値型の請求書IDを使い、既存のR_請求書を開いてからPDF化する基本例です。レポートのレコードソースに請求書IDが含まれ、保存先フォルダーが既に存在することを前提とします。標準モジュールへ置く想定で、実機未検証のためコピーで動作確認してください。
- レポート名はR_請求書です。実際の名前に置き換えます。
- 請求書IDは数値型です。文字列型では条件式の組み立てが異なります。
- C:\AccessPdfというフォルダーを事前に用意し、書込みを確認します。
- レポートが既に開いている場合と同名PDFがある場合は処理を止めます。
Public Sub ExportInvoicePdf(ByVal invoiceId As Long)
Const reportName As String = “R_請求書”
Dim outputFile As String
Dim openedHere As Boolean
Dim errorText As String
On Error GoTo ErrorHandler
If invoiceId <= 0 Then
Err.Raise vbObjectError + 100, , “IDを確認してください。”
End If
If CurrentProject.AllReports(reportName).IsLoaded Then
Err.Raise vbObjectError + 101, , “対象レポートを閉じてください。”
End If
outputFile = “C:\AccessPdf\Invoice_” & CStr(invoiceId) & “.pdf”
If Len(Dir$(outputFile)) > 0 Then
Err.Raise vbObjectError + 102, , “同名PDFが既にあります。”
End If
DoCmd.OpenReport reportName, acViewPreview, , _
“[請求書ID]=” & CStr(invoiceId), acHidden
openedHere = True
If Not Reports(reportName).HasData Then
Err.Raise vbObjectError + 103, , “対象データがありません。”
End If
DoCmd.OutputTo acOutputReport, reportName, acFormatPDF, _
outputFile, False
DoCmd.Close acReport, reportName, acSaveNo
openedHere = False
MsgBox “出力しました。PDFの内容を確認してください。”
Exit Sub
ErrorHandler:
errorText = Err.Description
On Error Resume Next
If openedHere Then DoCmd.Close acReport, reportName, acSaveNo
On Error GoTo 0
MsgBox “PDF出力を完了できませんでした。” & vbCrLf & errorText
End Sub
呼び出し例は「ExportInvoicePdf 1001」です。acHiddenで画面表示を抑え、処理が開いたレポートだけを閉じる構成にしています。実際のレポートにOpen・Load・NoDataなどのイベント処理がある場合は、その処理との整合も確認します。

実運用へ広げるときの追加事項
この例はPDFの自動送信や発行履歴の更新までは行いません。大量出力では、対象一覧、成功・失敗の記録、再実行時の重複防止、途中失敗時の扱いを追加します。エラーで残ったファイルが完成品か判断できない場合は、内容確認前に配布しない運用にします。
複数人が同じ保存先を使う場合、存在確認と保存の間に別利用者が同じ名前を作る可能性もあります。実行IDごとの保存フォルダーや重複しない命名を設計してください。単発サンプルを、そのまま同時実行可能な発行システムとみなさないことが大切です。
配布前の確認と帳票運用の整え方
PDFを保存できた段階と、配布できる段階を分けると誤送付を防ぎやすくなります。最終確認では宛先、金額、ページ数、ファイル名の4点を最低限照合します。合計額だけが一致していても、別の請求書の可能性があるため、識別番号も合わせます。

配布用PDFとAccess原本を分ける
PDFを共有するために、Accessデータベースそのものを渡す必要はありません。Microsoftもレポートの配布方法として固定形式への出力を案内しています。配布先ではPDFだけを参照し、元データベースは管理対象の場所へ保管する運用が考えられます。
ただし、PDFは閲覧・コピー・編集を完全に防ぐ形式ではありません。必要なアクセス制限は保存先や共有方法で設定します。Access標準の出力だけで、パスワード保護や電子署名などの要件まで満たすと考えないでください。
帳票の変更時に残す情報
帳票名と版、Accessの製品名・Build・bit数、用紙、プリンター、出力方式、検証データを記録します。旧PDFと新PDFのページ数・主要値を比較すれば、ロゴの変更だけのつもりでページ構成まで変わっていないか確認できます。
顧客別PDFを繰り返し作る場合は、出力担当者が条件を毎回打ち直す設計より、対象IDを明示する出力画面や確認一覧があるほうが運用を整理しやすくなります。自動化の目的はボタン操作を減らすだけでなく、同じ条件で再現できる状態を作ることです。
まとめ
Accessのレポートは印刷プレビューからPDFとして保存できます。最初に対象データを確定し、プレビューで用紙と改ページを確認してから発行します。自動化する場合も、OpenReportでの条件指定とOutputToでの保存を分け、完成PDFの照合と失敗時の扱いまで整えましょう。
よくある質問
対応するAccessには標準のPDF/XPS出力機能があります。基本的なPDF保存のために別の有料ソフトを必ず購入する必要はありません。独自の編集や署名などは要件を別に確認します。
印刷プレビューで開いているか、リボンが省略されていないかを確認します。独自リボンやRuntimeでは、開発側で出力ボタンを用意する必要がある場合があります。
できますが、レポートにも顧客IDや請求書IDの条件を適用する必要があります。フォーム上で顧客を選んだだけで自動反映されるとは限りません。
出力画面や印刷経路にページ範囲の設定がある場合は指定できます。ただし、顧客を選ぶ目的にはページ番号ではなくデータ条件を使ってください。
幅、左右余白、右端の部品、改ページ設定を確認します。特に交互に白紙が入る場合は横方向のはみ出しを先に確認します。
VBAのOutputToでフルパスを指定する方法があります。保存先の権限、フォルダーの存在、同名ファイルの扱いを合わせて設計します。
OutputToにWhereCondition引数はありません。条件を付けてレポートを開く、またはレコードソースで対象を絞る方法を使います。
発行済み資料か検証用かで判断が変わります。原稿のサンプルコードでは事故防止のため同名ファイルがある場合に停止します。
更新されません。PDF出力は、その時点の帳票をファイルに保存する操作です。元データの修正後は必要に応じて再発行します。
完全な編集防止にはなりません。閲覧範囲や共有権限、署名などの要件は、配布方法と併せて検討してください。
別途実装できますが、PDF保存とは別の処理です。宛先確認、送信履歴、再送制御を設計し、最初は手動確認を組み込んだ運用で検証します。
業務上の発行・承認ルールに合わせて決めます。ファイル名だけで判断せず、対象ID、出力日時、帳票版、確認者などを管理すると追跡しやすくなります。
請求書や帳票のPDF出力を安全に自動化する相談をする
基本操作で解決できる範囲は、まずコピーで試し、出力結果を確認しましょう。顧客別大量出力、対象条件の取り違え、帳票レイアウト崩れ、保存履歴を管理したい場合は、専門家への相談もご検討ください。
既存Accessの状況整理から、クエリ・フォーム・レポートの改修までご相談いただけますのでお気兼ねなく下記へご相談下さい。
参考資料
[1] Microsoft OfficeのPDF保存
https://support.microsoft.com/en-us/office/collab-files/save-or-convert-to-pdf-or-xps-in-office-desktop-apps
[2] Microsoft レポート配布
https://support.microsoft.com/en-us/access/distribute-a-report
[3] Microsoft レポートの基本構造
https://support.microsoft.com/en-us/access/introduction-to-reports-in-access
[4] Microsoft OpenReportの条件指定
https://learn.microsoft.com/en-us/office/vba/api/access.docmd.openreport
[5] Microsoft OutputToの構文
https://learn.microsoft.com/en-us/office/vba/api/access.docmd.outputto