Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel帳票生成

Python Python
スポンサーリンク

Excel帳票生成は「定型フォーマットを自動で作り、毎月の提出資料をゼロ秒で完成させる」ための最強スキル

Excel業務自動化の中でも 帳票(レポート・申請書・明細書など)の自動生成 は効果が圧倒的です。
なぜなら、実務では次のような帳票を毎回手作業で作っているからです。

  • 売上明細書
  • 請求書
  • 発注書
  • 日報・週報・月報
  • チェックリスト
  • 入力フォーム付き帳票

Python(openpyxl)を使えば、
テンプレート作成 → データ差し込み → 書式設定 → 保存
まで完全自動化できます。

初心者でも理解しやすいように、
「基本構造 → 実務テンプレ → 応用」
の順で丁寧に解説します。


帳票生成の基本構造(最重要ポイント)

帳票は次の4ステップで作る

  1. テンプレート(雛形)を作る
  2. データを読み込む(Excel / CSV / DB)
  3. テンプレートにデータを差し込む
  4. 書式を整えて保存する

この流れを理解すれば、どんな帳票でも自動生成できます。


基本:シンプルな帳票を作る最小コード

タイトル・日付・明細を自動で書き込む例

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment

wb = Workbook()
ws = wb.active
ws.title = "帳票"

# タイトル
ws["A1"].value = "売上帳票"
ws["A1"].font = Font(size=16, bold=True)
ws["A1"].alignment = Alignment(horizontal="center")
ws.merge_cells("A1:D1")

# 日付
ws["A2"].value = "日付"
ws["B2"].value = "2026-04-27"

# 明細ヘッダー
headers = ["商品", "数量", "単価", "金額"]
for col, text in zip(["A", "B", "C", "D"], headers):
    ws[f"{col}4"].value = text
    ws[f"{col}4"].font = Font(bold=True)

# 明細データ
data = [
    ["りんご", 10, 100, 1000],
    ["みかん", 5, 80, 400],
]

for i, row in enumerate(data, start=5):
    for j, value in enumerate(row, start=1):
        ws.cell(row=i, column=j, value=value)

wb.save("report.xlsx")
Python

深掘りポイント

  • merge_cells でタイトルを中央に大きく表示
  • ヘッダーは太字にして帳票らしさを出す
  • 明細はループで自動書き込み
  • 帳票の基本構造がこのコードで理解できる

書式を整えて帳票らしくする(実務で必須)

罫線を付ける

from openpyxl.styles import Border, Side

border = Border(
    left=Side(style="thin"),
    right=Side(style="thin"),
    top=Side(style="thin"),
    bottom=Side(style="thin")
)

for row in ws["A4:D6"]:
    for cell in row:
        cell.border = border
Python

深掘りポイント

  • 帳票は「罫線」があるだけで完成度が一気に上がる
  • 明細部分に必ず罫線を付けるのが実務の定番

列幅・行高さを調整して見やすくする

ws.column_dimensions["A"].width = 20
ws.column_dimensions["B"].width = 10
ws.column_dimensions["C"].width = 10
ws.column_dimensions["D"].width = 12

ws.row_dimensions[1].height = 25
Python

深掘りポイント

  • 帳票は「見やすさ」が命
  • 列幅・行高さを整えるとプロ品質になる

実務テンプレ①:売上明細帳票の自動生成

A列:商品、B列:数量、C列:単価、D列:金額

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, Border, Side

wb = Workbook()
ws = wb.active
ws.title = "売上明細"

# タイトル
ws["A1"].value = "売上明細書"
ws["A1"].font = Font(size=16, bold=True)
ws.merge_cells("A1:D1")
ws["A1"].alignment = Alignment(horizontal="center")

# ヘッダー
headers = ["商品", "数量", "単価", "金額"]
for col, text in zip(["A", "B", "C", "D"], headers):
    ws[f"{col}3"].value = text
    ws[f"{col}3"].font = Font(bold=True)

# データ
data = [
    ["りんご", 10, 100, 1000],
    ["みかん", 5, 80, 400],
    ["バナナ", 8, 120, 960],
]

for i, row in enumerate(data, start=4):
    for j, value in enumerate(row, start=1):
        ws.cell(row=i, column=j, value=value)

# 罫線
border = Border(
    left=Side(style="thin"),
    right=Side(style="thin"),
    top=Side(style="thin"),
    bottom=Side(style="thin")
)

for row in ws["A3:D6"]:
    for cell in row:
        cell.border = border

wb.save("sales_report.xlsx")
Python

解説

  • 実務で最も使われる帳票形式
  • タイトル → ヘッダー → 明細 → 罫線 の流れが鉄板

実務テンプレ②:請求書の自動生成

顧客名・日付・明細・合計金額を自動で作成

ws["A2"].value = "請求先"
ws["B2"].value = "株式会社サンプル"

ws["A3"].value = "請求日"
ws["B3"].value = "2026-04-27"

# 合計金額
ws["C10"].value = "合計"
ws["D10"].value = "=SUM(D5:D9)"
ws["C10"].font = Font(bold=True)
Python

解説

  • Excelの数式も自動で入れられる
  • 請求書の自動生成は実務で非常に多い

実務テンプレ③:チェックリスト帳票

ws["A1"].value = "チェック項目"
ws["B1"].value = "確認"

items = ["在庫確認", "売上確認", "メール送信", "資料提出"]

for i, item in enumerate(items, start=2):
    ws.cell(row=i, column=1, value=item)
    ws.cell(row=i, column=2, value="")
Python

解説

  • 日次・週次のチェックリストを自動生成
  • 業務効率化に直結する帳票

Excel帳票生成を業務で設計するときの視点

  • 帳票は「タイトル」「ヘッダー」「明細」「罫線」の4要素で構成
  • openpyxl は帳票生成に最適(書式設定が自由)
  • pandas と組み合わせると大量データも自動差し込み可能
  • テンプレート化すれば毎月の帳票作成が完全自動化
  • 数式も自動挿入できるため計算ミスがゼロになる

タイトルとURLをコピーしました