- Excelテンプレ作成は「毎回同じフォーマットを自動生成し、作業時間を大幅削減する」ための最強スキル
- 新規Excelを作成してテンプレの土台を作る(最も基本)
- ヘッダー行を作成する(テンプレの基本構造)
- ヘッダー行の書式を整える(見やすいテンプレに必須)
- 列幅を調整してテンプレを整える(視認性UP)
- 入力規則(データ検証)を設定する(入力ミス防止)
- コメントを追加して説明を付ける(ユーザーに優しいテンプレ)
- 罫線を引いて表を整える(テンプレの完成度UP)
- 例題①:入力フォームテンプレートを自動生成する
- 例題②:売上明細テンプレートを自動生成する
- 例題③:チェックリストテンプレートを自動生成する
- Excelテンプレ作成を業務で設計するときの視点
Excelテンプレ作成は「毎回同じフォーマットを自動生成し、作業時間を大幅削減する」ための最強スキル
Excel業務自動化の中でも、テンプレート(雛形)を自動生成する処理は特に効果が大きいです。
なぜなら、実務では次のような「毎回同じ形のExcel」を作る場面が非常に多いからです。
- 日報・週報・月報
- 売上明細テンプレート
- 入力フォーム
- チェックリスト
- 顧客管理シートの初期フォーマット
Python(openpyxl)を使えば、
セル配置・書式設定・入力規則・コメント・罫線・列幅・行高さ
などをすべて自動で設定したテンプレートを作れます。
ここでは、初心者でも理解しやすいように
「基本 → 実務テンプレ → 高度テンプレ」
の順で丁寧に解説します。
新規Excelを作成してテンプレの土台を作る(最も基本)
新規ファイルを作成して保存する
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "入力フォーム"
wb.save("template.xlsx")
Python深掘りポイント
Workbook()で新規Excelを作成ws.titleでシート名を変更- まずは「空のテンプレ」を作るところから始める
ヘッダー行を作成する(テンプレの基本構造)
A1〜C1 に項目名を設定
ws["A1"].value = "日付"
ws["B1"].value = "担当者"
ws["C1"].value = "内容"
Python深掘りポイント
- テンプレートは「項目名」を最初に作る
- ここが土台になるため、後の処理が楽になる
ヘッダー行の書式を整える(見やすいテンプレに必須)
太字・背景色・中央揃えを設定
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深掘りポイント
- ヘッダー行は必ず「太字+背景色+中央揃え」にすると見やすい
- テンプレートの品質が一気に上がる
列幅を調整してテンプレを整える(視認性UP)
列幅を設定
ws.column_dimensions["A"].width = 12
ws.column_dimensions["B"].width = 15
ws.column_dimensions["C"].width = 40
Python深掘りポイント
- 内容欄(C列)は広めにするのが実務的
- 列幅調整はテンプレ作成の必須工程
入力規則(データ検証)を設定する(入力ミス防止)
B列に「担当者リスト」のプルダウンを設定
from openpyxl.worksheet.datavalidation import DataValidation
dv = DataValidation(type="list", formula1='"山田,佐藤,鈴木"')
ws.add_data_validation(dv)
dv.add("B2:B100")
Python深掘りポイント
- テンプレートに入力規則を仕込むとミスが激減
- プルダウンは実務で最も使われる
コメントを追加して説明を付ける(ユーザーに優しいテンプレ)
A1 に説明コメントを付ける
from openpyxl.comments import Comment
ws["A1"].comment = Comment("日付を YYYY/MM/DD 形式で入力してください", "システム")
Python深掘りポイント
- コメントは「説明書き」として非常に便利
- 入力者が迷わないテンプレートになる
罫線を引いて表を整える(テンプレの完成度UP)
A1〜C20 に罫線を設定
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:C20"]:
for cell in row:
cell.border = border
Python深掘りポイント
- 罫線があるだけでテンプレの完成度が大幅に上がる
- 入力フォーム・明細表で必須
例題①:入力フォームテンプレートを自動生成する
シナリオ
日付・担当者・内容の入力フォームを作るテンプレ
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
from openpyxl.worksheet.datavalidation import DataValidation
from openpyxl.comments import Comment
wb = Workbook()
ws = wb.active
ws.title = "入力フォーム"
# ヘッダー
headers = ["日付", "担当者", "内容"]
for col, text in zip(["A", "B", "C"], headers):
ws[f"{col}1"].value = text
# 書式
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
# 列幅
ws.column_dimensions["A"].width = 12
ws.column_dimensions["B"].width = 15
ws.column_dimensions["C"].width = 40
# プルダウン
dv = DataValidation(type="list", formula1='"山田,佐藤,鈴木"')
ws.add_data_validation(dv)
dv.add("B2:B100")
# コメント
ws["A1"].comment = Comment("日付を YYYY/MM/DD 形式で入力", "システム")
# 罫線
border = Border(
left=Side(style="thin"),
right=Side(style="thin"),
top=Side(style="thin"),
bottom=Side(style="thin")
)
for row in ws["A1:C20"]:
for cell in row:
cell.border = border
wb.save("input_template.xlsx")
Python解説
- このコードだけで「実務レベルの入力フォーム」が完成
- 毎回の作業を完全自動化できる
例題②:売上明細テンプレートを自動生成する
シナリオ
商品名・数量・金額の明細テンプレ
wb = Workbook()
ws = wb.active
ws.title = "売上明細"
ws["A1"].value = "商品名"
ws["B1"].value = "数量"
ws["C1"].value = "金額"
ws.column_dimensions["A"].width = 25
ws.column_dimensions["B"].width = 10
ws.column_dimensions["C"].width = 15
ws["B1"].comment = Comment("数量は整数で入力", "システム")
wb.save("sales_template.xlsx")
Python解説
- 売上管理のテンプレートとしてそのまま使える
- コメントで入力ルールを明確化
例題③:チェックリストテンプレートを自動生成する
wb = Workbook()
ws = wb.active
ws.title = "チェックリスト"
ws["A1"].value = "項目"
ws["B1"].value = "確認"
dv = DataValidation(type="list", formula1='"OK,NG"')
ws.add_data_validation(dv)
dv.add("B2:B50")
wb.save("checklist_template.xlsx")
Python解説
- チェックリストは実務で非常に多い
- プルダウンで入力ミスを防げる
Excelテンプレ作成を業務で設計するときの視点
- ヘッダー行の書式設定はテンプレの品質を決める
- 列幅・行高さを整えると視認性が大幅UP
- 入力規則(プルダウン)でミスを防げる
- コメントで説明を付けるとユーザーが迷わない
- 罫線で表を整えるとプロ品質のテンプレになる
- pandasではテンプレ作成ができないため openpyxl が必須

