Excel→PDF変換は「Excel帳票を自動でPDF化し、提出・共有・保管を一瞬で完了させる」ための最強スキル
業務効率化を本気で考える人にとって、
Excel→PDF変換の自動化は“Pythonで最も実務効果が高いExcel業務自動化” です。
Excelは編集しやすい反面、
提出・共有・保管には PDF形式が必須 になることが多いです。
Pythonを使えば、
Excel読み込み → 印刷設定 → PDF出力
まで完全自動化できます。
初心者でも理解できるように、例題を交えて丁寧に解説します。
Excel→PDF変換の基本構造(最重要ポイント)
Excel→PDF変換は次の2ステップで構成されます。
Excelの印刷設定を整える(openpyxl)
印刷範囲・余白・向きを設定して「見やすいPDF」にします。
PDFとして保存する(win32com)
ExcelアプリをPythonから操作してPDF化します。
この2つを理解すれば、どんなExcelでもPDFに変換できます。
Excel→PDF変換の最小テンプレート(Windows専用)
ExcelをPDFに変換する最小コード
import win32com.client as win32
excel = win32.Dispatch("Excel.Application")
excel.Visible = False
wb = excel.Workbooks.Open(r"C:\path\report.xlsx")
ws = wb.Worksheets("Sheet1")
ws.ExportAsFixedFormat(0, r"C:\path\report.pdf") # 0 = PDF
wb.Close(False)
excel.Quit()
Python深掘りポイント
ExportAsFixedFormat(0, …)がPDF化の本体- Excelを開かずにPDF化できる
- Windows環境で最も安定する方法
印刷範囲・余白・向きを整えて「見やすいPDF」にする
openpyxlで印刷設定を整える
from openpyxl import load_workbook
from openpyxl.worksheet.page import PageMargins
wb = load_workbook("report.xlsx")
ws = wb.active
ws.print_area = "A1:F40"
ws.page_margins = PageMargins(
left=0.5, right=0.5, top=0.5, bottom=0.5
)
ws.page_setup.orientation = "landscape"
wb.save("report_ready.xlsx")
Python深掘りポイント
- 印刷範囲を指定しないと余白だらけのPDFになる
- 余白を調整すると帳票が見やすくなる
- 横向きは「横長の帳票」で必須
Excel→PDF変換の実務テンプレート(最も使われる構成)
印刷設定 → PDF化まで自動化する
from openpyxl import load_workbook
import win32com.client as win32
wb = load_workbook("invoice.xlsx")
ws = wb.active
ws.print_area = "A1:E50"
wb.save("invoice_ready.xlsx")
excel = win32.Dispatch("Excel.Application")
excel.Visible = False
wb2 = excel.Workbooks.Open(r"invoice_ready.xlsx")
ws2 = wb2.Worksheets("Sheet1")
ws2.ExportAsFixedFormat(0, r"invoice.pdf")
wb2.Close(False)
excel.Quit()
Python深掘りポイント
- 帳票(請求書・発注書・レポート)をPDF化する業務に最適
- Excelを開かずにPDF化できるため完全自動化が可能
複数ExcelをまとめてPDF化する(大量処理を自動化)
フォルダ内のExcelをすべてPDF化
import win32com.client as win32
import glob
import os
excel = win32.Dispatch("Excel.Application")
excel.Visible = False
files = glob.glob("reports/*.xlsx")
for file in files:
wb = excel.Workbooks.Open(os.path.abspath(file))
ws = wb.Worksheets(1)
pdf_name = file.replace(".xlsx", ".pdf")
ws.ExportAsFixedFormat(0, pdf_name)
wb.Close(False)
excel.Quit()
Python深掘りポイント
- 月末の大量帳票を一括PDF化できる
- 1クリックで全PDFが生成される
Excelの複数シートをそれぞれPDF化する(帳票管理でよく使う)
シートごとにPDFを作成
excel = win32.Dispatch("Excel.Application")
excel.Visible = False
wb = excel.Workbooks.Open(r"multi_sheet.xlsx")
for sheet in wb.Worksheets:
pdf_name = f"{sheet.Name}.pdf"
sheet.ExportAsFixedFormat(0, pdf_name)
wb.Close(False)
excel.Quit()
Python深掘りポイント
- シート単位の帳票(売上・在庫・KPIなど)を自動でPDF化
- 手作業で1シートずつ保存する必要がなくなる
Excel→PDF変換+テンプレート処理(帳票生成の自動化)
テンプレートにデータを差し込み → PDF化
from openpyxl import load_workbook
import win32com.client as win32
wb = load_workbook("template.xlsx")
ws = wb["データ"]
ws["B2"].value = "MONO株式会社"
ws["B3"].value = "2026-05-26"
ws["B5"].value = 150000
wb.save("invoice_filled.xlsx")
excel = win32.Dispatch("Excel.Application")
excel.Visible = False
wb2 = excel.Workbooks.Open(r"invoice_filled.xlsx")
ws2 = wb2.Worksheets("データ")
ws2.ExportAsFixedFormat(0, "invoice.pdf")
wb2.Close(False)
excel.Quit()
Python深掘りポイント
- 帳票テンプレートにデータを自動入力
- 入力後すぐにPDF化
- 完全自動の帳票生成システムが作れる
Excel→PDF変換を業務で設計するときの視点
印刷範囲を必ず設定する
PDFの見た目が大きく変わる。
余白・向きを調整する
帳票の読みやすさが劇的に向上する。
win32com を使う
Excelアプリを直接操作するため最も安定。
テンプレートと組み合わせる
帳票生成 → PDF化 → 保存 が完全自動化できる。

