セル書式設定は「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 が必須
