Article

ExcelからPDFを一括出力する方法|複数ファイルの保存・自動化を解説

「Excelで作成した請求書を1件ずつPDF保存している」

「顧客ごとにExcelの内容を切り替え、毎月何十件もPDFを作っている」

「複数シートをそれぞれPDFとして保存したい」

「PDFのファイル名変更やフォルダ分けまで自動化したい」

このようなExcel業務は、VBAやPythonなどを利用して自動化できる可能性があります。

例えば、50社分の請求書を作る場合、

顧客を選択
↓
請求書を表示
↓
PDFとして保存
↓
ファイル名を入力
↓
次の顧客を選択

という作業を50回繰り返していることがあります。

1件2分でも、

2分 × 50件
= 100分

です。

毎月同じ作業を行うなら、年間では大きな時間になります。

自動化すると、

対象顧客を取得
↓
帳票へデータ反映
↓
PDF生成
↓
ファイル名を自動設定
↓
指定フォルダへ保存

という処理をまとめて実行できます。

この記事では、ExcelからPDFを一括出力する方法、VBA・Pythonを利用した自動化、ファイル名や保存先の設定、外注するときのポイントを解説します。

ExcelからPDFを一括出力する業務とは

ExcelにはPDFとして保存する機能があります。

一件だけなら、

ファイル
↓
エクスポート
↓
PDF

という操作でも大きな負担にはなりません。

問題になるのは、

  • 毎月数十件作る
  • 顧客ごとに別PDFを作る
  • シートごとにPDFを分ける
  • ファイル名を毎回変更する
  • 保存先を振り分ける

といった業務です。

作成件数が増えるほど、手作業によるPDF出力は非効率になります。

ExcelからPDFを一括出力する代表的なケース

顧客ごとの請求書

例えば、顧客一覧に、

顧客ID顧客名請求金額
C001A社100,000
C002B社150,000
C003C社80,000

というデータがあるとします。

これをもとに、

A社_請求書.pdf
B社_請求書.pdf
C社_請求書.pdf

を自動生成します。

顧客ごとの見積書

案件一覧から顧客・案件ごとに見積書を生成します。

例えば、

案件001_A社_見積書.pdf
案件002_B社_見積書.pdf

という形です。

月次レポート

顧客ごとの数値をExcelへ反映し、

2026年07月_A社_月次レポート.pdf
2026年07月_B社_月次レポート.pdf

として一括保存できます。

社員ごとの帳票

例えば、

  • 給与関連帳票
  • 勤怠レポート
  • 実績表
  • 評価資料

などを社員ごとにPDF化するケースです。

個人情報を含む場合は、保存先やアクセス権限にも注意が必要です。

店舗・拠点ごとの帳票

例えば、

千葉店_月次実績.pdf
東京店_月次実績.pdf
埼玉店_月次実績.pdf

のように拠点ごとに作成できます。

ExcelでPDF一括出力を自動化するメリット

PDF保存操作を繰り返さなくてよい

最大のメリットです。

例えば100件の帳票なら、100回保存操作をする必要がなくなります。

ファイル名の入力ミスを減らせる

手作業では、

A社_請求書.pdf
A社請求書.pdf
A株式会社_請求書.pdf

など表記がばらつくことがあります。

自動化すれば、

年月_顧客ID_顧客名_帳票種類.pdf

など、決められた形式に統一できます。

保存先を自動で分けられる

例えば、

請求書
├─ 2026
│  ├─ 07
│  ├─ 08
│  └─ 09

というフォルダへ自動保存できます。

作成漏れを減らせる

対象顧客の一覧から順番に生成すれば、

「B社だけPDFを作り忘れた」

といった漏れを減らせます。

作業時間を短縮できる

一件あたりの処理時間が短くても、件数が多いほど効果が出ます。

定期的に同じ帳票を出力している業務ほど、自動化との相性がよいです。

ExcelからPDFを一括出力する主な方法

主な方法は次のとおりです。

  1. Excel標準機能を利用する
  2. VBAで自動化する
  3. Pythonで自動化する
  4. Webシステムへ移行する

業務規模によって選択します。

方法1.Excel標準機能で複数シートをPDF化する

複数シートをまとめて一つのPDFにするだけなら、Excel標準機能で対応できる場合があります。

例えば、

表紙
請求明細
内訳

という3シートを選択してPDFへ保存します。

この方法は、

複数シートを一つのPDFにまとめたい

場合には有効です。

一方、

シート1 → A社.pdf
シート2 → B社.pdf
シート3 → C社.pdf

のように別ファイルとして大量出力する場合は、自動化を検討します。

方法2.VBAでPDFを一括出力する

Excel中心の業務では、VBAが有力な方法です。

例えばExcelに、

[PDF一括出力]

というボタンを用意します。

クリックすると、

対象データを取得
↓
帳票へ反映
↓
PDF保存
↓
次のデータへ

を自動で繰り返します。

VBAが向いているケース

  • 現在のExcelをそのまま使いたい
  • Windows版Excelが中心
  • Excel帳票のレイアウトが完成している
  • 毎月同じPDF作成を行う
  • 数十〜数百件程度を処理する
  • 担当者がボタン操作で実行したい

このような場合は比較的導入しやすい方法です。

VBAでできるPDF自動化

シートごとにPDF保存

例えば、

Sheet_A
↓
A社.pdf

Sheet_B
↓
B社.pdf

と保存します。

一覧データから帳票を切り替える

より実用的なのは、一つの帳票テンプレートを使い回す方式です。

例えば、

顧客一覧
↓
1行目 A社
↓
請求書テンプレートへ反映
↓
A社.pdf

2行目 B社
↓
請求書テンプレートへ反映
↓
B社.pdf

という処理です。

顧客数だけシートを作る必要がありません。

ファイル名を自動設定

例えば、

202607_C001_A社_請求書.pdf

と自動生成します。

フォルダを自動作成

例えば7月分のフォルダがなければ、

2026
└─ 07

を自動作成して保存できます。

出力済みを記録する

顧客一覧へ、

PDF出力済
2026/07/30 10:15

などを記録することもできます。

VBAでPDF一括出力するときの注意点

印刷範囲を設定する

帳票シートに不要なセルが含まれていると、PDFへ余計なページが出力されることがあります。

印刷範囲を適切に設定します。

改ページを確認する

明細数によって帳票が2ページ以上になる場合があります。

実際のデータ量で確認します。

非表示行・列を確認する

帳票作成用の計算列などがPDFへ表示されないようにします。

ファイル名に使用できない文字に注意する

例えば顧客名に、

/
\
:
*
?

などが含まれていると、ファイル名としてそのまま使用できない場合があります。

ファイル名用に置換処理を行います。

同じファイル名が存在する場合

例えば同じ請求書を2回出力すると、

A社_請求書.pdf

がすでに存在する場合があります。

このとき、

  • 上書きする
  • エラーにする
  • 日時を付ける
  • バージョン番号を付ける

などを決めます。

PythonでExcelからPDFを一括出力する

Excelファイル数や処理件数が多い場合は、Pythonを使う方法もあります。

例えば、

Excel・CSVを読み込み
↓
データ加工
↓
帳票生成
↓
PDF保存

という処理です。

Pythonが向いているケース

  • Excelファイルが大量にある
  • CSVも扱う
  • データ加工が複雑
  • 複数ファイルを結合する
  • 定期的に自動実行したい
  • データベースと連携する
  • Excelを人が開かずに処理したい

単純なExcel操作だけならVBAが向いているケースもあります。

業務全体を自動処理したい場合はPythonが候補になります。

Pythonでできること

例えば、

顧客一覧.xlsx
↓
必要データ取得
↓
帳票生成
↓
PDF化
↓
顧客別フォルダへ保存

という一連の処理を実行できます。

さらに、

PDF生成
↓
ZIP化
↓
メール送信

までつなげることも可能です。

Excelを開かずにPDF生成したい場合

「Excelファイルを操作してPDF化する」のではなく、Excelからデータだけ取得し、別の方法で帳票を生成することもできます。

例えば、

Excel
↓
Pythonでデータ取得
↓
HTML・CSSへ反映
↓
PDF生成

という方法です。

Excelアプリケーション自体への依存を減らせます。

Excelテンプレートをそのまま使うか、新しく帳票を作るか

自動化するときの重要な判断です。

現在のExcelを維持する

メリットは、

  • レイアウトを作り直さなくてよい
  • 担当者が修正しやすい
  • 現在の帳票を活用できる

ことです。

別の帳票生成方式へ移行する

例えばHTML・CSSからPDFを生成します。

メリットは、

  • Webシステムと連携しやすい
  • サーバー処理しやすい
  • Excelアプリへの依存を減らせる

ことです。

将来的な運用まで考えて選びます。

PDFファイル名を自動化する

大量出力では、ファイル名のルールが重要です。

例えば、

202607_A社_請求書.pdf

だけでも構いません。

件数が多い場合は、

202607_INV000123_C001_A社.pdf

のようにIDを入れる方法もあります。

ファイル名に入れる項目

  • 年月
  • 顧客ID
  • 顧客名
  • 案件番号
  • 請求番号
  • 帳票種別
  • 発行日

などです。

顧客名だけに依存しない

例えば同じ顧客へ複数の請求書を出す場合、

A社_請求書.pdf

だけでは重複します。

請求番号など一意の情報を含める方が管理しやすくなります。

PDFの保存先を自動化する

例えば、

請求書
├─ 2026
│  ├─ 07
│  │  ├─ A社
│  │  ├─ B社
│  │  └─ C社

のように振り分けられます。

顧客ごとのフォルダへ保存

例えば、

顧客
├─ A社
│  └─ 202607_請求書.pdf
├─ B社
│  └─ 202607_請求書.pdf

という管理もできます。

年月ごとのフォルダへ保存

月次処理なら、

2026
├─ 06
├─ 07
└─ 08

の方が確認しやすいケースもあります。

業務に合わせます。

PDFを一つにまとめるか、個別に分けるか

例えば50人分のレポートを、

50人分.pdf

として一つにまとめることも、

Aさん.pdf
Bさん.pdf
Cさん.pdf

と分けることもできます。

一つのPDFが向いているケース

  • 全体をまとめて印刷する
  • 一括保存したい
  • 個別配布しない

個別PDFが向いているケース

  • 顧客ごとにメール送信する
  • ファイルを別々に保存する
  • 個人ごとにアクセス権限を変える

用途から決めます。

PDF出力後にZIPへまとめる

個別PDFとして作った後、

202607_請求書.zip

として一括ダウンロードできます。

数十・数百ファイルになる場合に便利です。

ExcelからPDFを大量出力するときの注意点

処理時間

例えば1件のPDF化に2秒かかる場合、

500件
約1,000秒

かかります。

件数が増えるほど処理時間を考慮する必要があります。

Excelが途中で停止する

VBAによる大量処理では、

  • メモリ
  • 外部リンク
  • 計算式
  • 画像

などによって処理が重くなる場合があります。

出力途中でエラーになる

例えば100件目でエラーになると、

「どこまでPDFを作ったか」

分からなくなることがあります。

処理結果をログに残す

例えば、

顧客結果時刻
A社成功10:01
B社成功10:01
C社エラー10:02

という処理結果を残します。

大量処理では特に有効です。

エラーになったデータだけ再実行する

全部を最初からやり直すのではなく、

失敗
C社
F社

だけ再実行できるようにすると便利です。

PDF出力後の確認作業も考える

一括生成できても、

100件のPDFを一件ずつ開いて確認

していると作業時間が残ります。

そのため、元データや帳票生成処理のチェックを強化し、

「人が確認すべき部分」

を減らせないか検討します。

金額など重要項目は事前チェックする

例えばPDF生成前に、

顧客名
請求金額
請求日
支払期限

が空欄でないかチェックします。

問題があればPDFを生成せず、

C社
請求金額が未入力

とエラーにします。

一括PDFとメール送信を組み合わせる

請求書などでは、

PDF一括生成
↓
顧客メールアドレス取得
↓
PDFを添付
↓
メール送信

まで自動化できます。

ただし、誤送信には十分な注意が必要です。

最初はメール下書きまででもよい

完全自動送信に不安がある場合は、

PDF生成
↓
メール下書きを自動作成
↓
担当者が確認
↓
送信

という方法があります。

人の確認を残しつつ作業を短縮できます。

PDF一括出力とファイル保存だけを自動化する方法もある

すべてを自動化する必要はありません。

例えば、

PDF生成
↓
ファイル名設定
↓
保存

だけでも、毎月の定型作業を大きく減らせる場合があります。

効果が高い部分から自動化します。

Excel PDF一括出力を外注するときに伝えること

現在使っているExcel

実際のファイルを確認すると開発内容を把握しやすくなります。

PDFの完成イメージ

現在手作業で作成しているPDFがあれば共有します。

一括出力する単位

例えば、

1顧客1PDF
1社員1PDF
1案件1PDF

などです。

出力件数

例えば、

毎月30件
毎月500件
毎月5,000件

によって適切な方法が変わります。

ファイル名

希望する命名規則を共有します。

保存先

例えば、

  • ローカルフォルダ
  • 共有フォルダ
  • Google Drive
  • クラウドストレージ

などです。

実行方法

例えば、

Excelのボタンを押す

のか、

毎月自動実行

なのかを決めます。

外注前に作ると便利な一覧

例えば、

項目希望
PDF単位1顧客1PDF
件数月100件
ファイル名年月_顧客名_請求書
保存先月別フォルダ
実行方法ボタン
メール不要

程度でも構いません。

詳細な仕様書を最初から作る必要はありません。

Excel PDF一括出力の開発費用

費用は現在のExcelと自動化範囲によって変わります。

目安としては、

内容規模
複数シートのPDF化小規模
顧客別PDF生成小規模〜
ファイル名自動設定小規模
フォルダ自動振り分け小規模
複雑な帳票切り替え中規模
大量PDF処理中規模以上
メール送信連携中規模
Webシステム化中規模以上

単純なVBAによる一括出力であれば、比較的小さな開発で対応できる場合があります。

一方、現在のExcelが複雑だったり、複数ファイルや外部システムからデータを集めたりする場合は工数が増えます。

費用は実際のファイルを確認したうえで見積もる必要があります。

自動化費用を抑える方法

現在のExcelを整理する

使っていないシートや数式を整理します。

帳票レイアウトを一つにする

顧客ごとに異なるExcelテンプレートを使っていると処理が複雑になります。

可能なら共通テンプレートにします。

ファイル名ルールを決める

開発途中でルール変更すると修正が発生します。

最初はPDF出力だけ自動化する

例えば、

第1段階
PDF一括出力

第2段階
フォルダ分け

第3段階
メール送信

と段階的に進めます。

VBAとPythonのどちらがよい?

一概には決まりません。

VBAが向いているケース

Excel
↓
PDF

で完結し、担当者がExcelから実行したい場合です。

Pythonが向いているケース

複数Excel
+
CSV
+
データ加工
+
PDF
+
自動実行

のように処理範囲が広い場合です。

Webシステム化した方がよいケース

そもそもExcelを毎月大量に加工して帳票を作っている場合、

PDF出力だけではなく元業務をWeb化した方がよい

ケースもあります。

例えば現在、

顧客情報
Excel

案件情報
Excel

請求情報
Excel

帳票
Excel

へ分散している場合です。

Webシステム化すると、

顧客
案件
請求
↓
データベースで一元管理
↓
PDFボタン

とできます。

ExcelからWebシステムへ移行する判断基準

次の項目が複数当てはまる場合は検討できます。

  • 帳票件数が多い
  • 複数人がExcelを編集する
  • 顧客データが複数Excelに分散している
  • PDF作成前に大量の転記がある
  • 帳票の発行履歴を残したい
  • 権限管理が必要
  • 外出先から利用したい
  • PDFを顧客へ自動送信したい

単純なPDF保存作業だけが問題なら、VBAなどの小規模な自動化の方が費用対効果は高くなります。

Excel PDF一括出力で失敗しやすいケース

ファイル名を顧客名だけにする

同じ顧客へ複数帳票を出すと重複します。

IDや年月を含めます。

既存ファイルを無条件で上書きする

過去のPDFが消える可能性があります。

保存先を固定しすぎる

PCが変わると動かなくなることがあります。

100件すべて成功する前提で作る

大量処理ではエラーログを用意した方が安全です。

PDFだけ自動化して元データの転記は残す

本当に時間がかかっている作業がどこか確認します。

Excelを複雑にしすぎる

VBAを追加し続けた結果、担当者しか使えないファイルになる場合があります。

将来的な保守も考えます。

自動化する前に現在の作業時間を測る

例えば、

帳票作成
30分

PDF保存
60分

ファイル名変更
20分

フォルダ整理
10分

なら、PDF保存の自動化による効果が大きいことが分かります。

一方、PDF保存が5分しかなく、帳票へのデータ入力に2時間かかっているなら、

PDF化ではなくデータ転記を自動化した方が効果的

です。

hiro-dev-labのExcel PDF一括出力・自動化支援

hiro-dev-labでは、中小企業向けに、ExcelからのPDF出力や帳票業務の自動化に対応しています。

対応内容の例は次のとおりです。

  • ExcelからPDF一括出力
  • 複数シートのPDF化
  • 顧客別PDF生成
  • 案件別PDF生成
  • ファイル名の自動設定
  • 月別・顧客別フォルダへの保存
  • VBAによるPDF出力
  • Pythonによる大量処理
  • CSVからPDF生成
  • 複数Excelの統合
  • PDF生成結果のログ
  • ZIP作成
  • メール添付
  • WebシステムへのPDF機能追加

最初からシステム全体を変更する必要はありません。

例えば、

現在
1件ずつPDF保存

第1段階
PDF一括出力

第2段階
ファイル名・保存先を自動化

第3段階
メール作成まで自動化

第4段階
必要ならWebシステム化

という形で段階的に改善できます。

既存Excelで十分対応できる場合は、VBAなどを活用して小さく自動化します。

処理件数が多い、複数ファイルを統合する、サーバー上で自動実行したい場合はPythonなども検討します。

千葉市内では、必要に応じて対面で現在のExcelやPDF作成手順を確認できます。

オンラインであれば、千葉県内・全国から相談可能です。

ExcelからのPDF一括出力に関するよくある質問

Excelの複数シートをPDFにできますか?

可能です。一つのPDFへまとめる方法と、シートごとに別PDFへ保存する方法があります。

顧客ごとにPDFを分けられますか?

顧客一覧を順番に処理し、1顧客1PDFとして保存できます。

ファイル名を自動で付けられますか?

年月、顧客名、顧客ID、請求番号などから自動生成できます。

PDFの保存フォルダも自動で分けられますか?

年月別、顧客別などのルールで自動振り分けできます。

VBAでできますか?

Excel中心の業務であればVBAが適している場合があります。

Pythonでもできますか?

大量データ処理、複数ファイル統合、定期実行などではPythonを検討できます。

数百件のPDFでも一括処理できますか?

可能な場合があります。件数が多い場合は処理時間やエラー時の再実行も考慮します。

出力したPDFをZIPにできますか?

複数PDFをZIPへまとめる処理も追加できます。

PDFをメールに自動添付できますか?

対応可能です。誤送信を防ぐため、確認工程を残す方法もあります。

今使っているExcelをそのまま使えますか?

現在のExcel構成を確認し、既存テンプレートを活用できるか判断します。

ExcelのPDF保存を毎月繰り返している方へ

ExcelからPDFを保存する操作自体は簡単です。

しかし、

顧客を選ぶ
↓
PDF保存
↓
ファイル名入力
↓
保存先を選ぶ

を何十回、何百回と繰り返すなら、自動化を検討する価値があります。

例えば、

Excelの一覧
↓
自動で顧客を切り替える
↓
PDF生成
↓
ファイル名設定
↓
指定フォルダへ保存

までまとめて処理できます。

さらに必要であれば、

PDF生成
↓
ZIP化
↓
メール下書き

まで発展させることもできます。

重要なのは、

PDF保存だけを自動化するのではなく、前後に残っている手作業まで確認すること

です。

hiro-dev-labでは、現在のExcelと実際のPDF作成手順を確認し、

VBA・Python・Webシステムの中から、現在の業務量に合ったPDF一括出力の仕組みを提案・実装します。

ExcelからのPDF一括出力・帳票業務の自動化について相談する

Contact

お問い合わせ

システム導入、Webアプリ開発、AI導入、業務委託での開発支援などのご相談を受け付けています。

要件が固まっていなくても大丈夫です。使う方・運用する方の視点で整理し、分かりやすく進めます。

まずはお気軽にお問い合わせください。