Python 業務自動化 | Excel業務自動化:Excel基本操作 - セル書式設定

Python Python
スポンサーリンク

セル書式設定は「Excelの見た目を整え、読みやすく美しい帳票を自動生成する」ための必須スキル

Excel業務自動化では、セルの書式設定(フォント・色・罫線・背景色・数値形式など)が欠かせません。
なぜなら、業務で使うExcelは「見た目が整っていること」が非常に重要だからです。

  • レポートのタイトルを太字にしたい
  • 金額を「#,###」形式で表示したい
  • ヘッダー行に背景色を付けたい
  • 罫線を引いて表を見やすくしたい
  • 日付を「YYYY/MM/DD」形式にしたい

Pythonの openpyxl を使えば、Excelの書式を細かくコントロールできます。
初心者でも理解しやすいように、基本から実務テンプレートまで丁寧に解説します。


フォントを設定する(太字・サイズ・色)

セルを太字にする

from openpyxl import load_workbook
from openpyxl.styles import Font

wb = load_workbook("sample.xlsx")
ws = wb["Sheet1"]

ws["A1"].font = Font(bold=True)

wb.save("sample.xlsx")
Python

深掘りポイント

  • Font(bold=True) で太字
  • Font(size=14) で文字サイズ変更
  • Font(color="FF0000") で赤文字
  • フォント設定は「見出し」「タイトル」でよく使う

背景色(塗りつぶし)を設定する

ヘッダー行に背景色を付ける

from openpyxl.styles import PatternFill

fill = PatternFill(fill_type="solid", fgColor="FFFF00")  # 黄色

for cell in ws["1:1"]:  # 1行目
    cell.fill = fill
Python

深掘りポイント

  • PatternFill(fill_type="solid") が基本
  • fgColor に16進カラーコードを指定
  • ヘッダー行の強調に最も使われる

罫線を設定する(表を見やすくする)

セルに枠線を付ける

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["A1":"C5"]:
    for cell in row:
        cell.border = border
Python

深掘りポイント

  • Side(style="thin") が最も使われる罫線
  • 範囲に一括適用できる
  • 明細表の見た目を整えるときに必須

数値形式を設定する(表示形式のコントロール)

金額を「#,###」形式にする

ws["C2"].number_format = "#,##0"
Python

日付を「YYYY/MM/DD」形式にする

ws["A2"].number_format = "yyyy/mm/dd"
Python

深掘りポイント

  • number_format は Excel の表示形式そのもの
  • 金額・日付・パーセンテージなどで必須
  • データはそのまま、見た目だけ変えられる

セルの配置(中央揃え・右揃え)

中央揃えにする

from openpyxl.styles import Alignment

ws["A1"].alignment = Alignment(horizontal="center")
Python

深掘りポイント

  • horizontal="center" で中央揃え
  • "left" "right" も指定可能
  • 見出しやタイトルでよく使う

列幅・行高さを設定する(見やすさ向上)

列幅を設定

ws.column_dimensions["A"].width = 20
Python

行高さを設定

ws.row_dimensions[1].height = 25
Python

深掘りポイント

  • 列幅・行高さは帳票の見た目に直結
  • 自動化で整えると手作業がゼロになる

例題①:ヘッダー行を「太字+背景色+中央揃え」にする

シナリオ

A1〜C1 をヘッダーとして装飾したい。

from openpyxl.styles import Font, PatternFill, Alignment

header_font = Font(bold=True)
header_fill = PatternFill(fill_type="solid", fgColor="DDDDDD")
header_align = Alignment(horizontal="center")

for cell in ws["1:1"]:
    cell.font = header_font
    cell.fill = header_fill
    cell.alignment = header_align
Python

深掘りポイント

  • ヘッダー装飾は帳票の基本
  • 3つの書式(フォント・背景色・配置)を組み合わせる

例題②:明細表に罫線を引いて見やすくする

シナリオ

A2〜D20 の範囲に罫線を付けたい。

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["A2":"D20"]:
    for cell in row:
        cell.border = border
Python

深掘りポイント

  • 罫線は表の視認性を大幅に向上
  • 帳票の品質が一気に上がる

例題③:金額列を「#,###」形式に統一する

シナリオ

C列の金額をすべて整形したい。

for cell in ws["C"][1:]:  # ヘッダー除外
    cell.number_format = "#,##0"
Python

深掘りポイント

  • 表示形式を統一すると見やすさが劇的に向上
  • データはそのままなので計算にも影響しない

pathlib を使った読みやすい書式設定コード

Pathオブジェクトで直感的に書ける

from pathlib import Path
from openpyxl import load_workbook
from openpyxl.styles import Font

path = Path("sample.xlsx")
wb = load_workbook(path)
ws = wb.active

ws["A1"].font = Font(bold=True)

wb.save(path)
Python

メリット

  • パス結合が / で直感的
  • 大規模プロジェクトでも保守性が高い

セル書式設定を業務で設計するときの視点

  • フォント・背景色・罫線・配置は帳票の基本
  • number_format で金額・日付の見た目を整えられる
  • 範囲に一括適用することで作業効率が爆上がり
  • テンプレートと組み合わせるとプロ品質のExcelが自動生成できる
  • pandas では書式設定ができないため openpyxl が必須

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