サイトアイコン 独学エクセル塾

【Python×Excel】PythonでExcelの条件付き書式を設定する方法(色分けや強調)

 

日常業務でよく使うExcelですが、見やすく整えるために「条件付き書式」を使う場面は多いですよね。
たとえば、「数値が100を超えたら赤く表示する」など、重要なデータがひと目で分かる工夫です。

実はこの条件付き書式も、Pythonを使えば自動で設定できます。
繰り返しの作業を自動化すれば、入力ミスも防げて作業もスピードアップ!

今回は、Pythonとopenpyxlを使って条件付き書式を設定する方法をご紹介します。




⬛︎こんなことができるようになる!

・PythonでExcelの条件付き書式を自動設定できる
・数値に応じてセルの色を変更できる
・「色分け・強調」を自動で付けるテンプレートを作れる

⬛︎準備:openpyxlのインストール

Pythonと「openpyxl」ライブラリが必要です。まだインストールしていない場合は以下のコマンドでインストールしてください。

pip install openpyxl

⬛︎実践:100以上の数値に赤色をつける条件付き書式

以下のコードでは、「B列の数値が100以上なら赤い文字にする」という条件付き書式を適用します。

from openpyxl import Workbook
from openpyxl.styles import Font
from openpyxl.formatting.rule import CellIsRule

# ワークブックとシートを作成
wb = Workbook()
ws = wb.active
ws.title = "スコア"

# 見出しとデータの入力
ws["A1"] = "名前"
ws["B1"] = "点数"
data = [("田中", 80), ("佐藤", 120), ("鈴木", 95), ("山本", 150)]

for row in data:
    ws.append(row)

# 条件付き書式の設定(100以上で赤色)
red_font = Font(color="FF0000")
rule = CellIsRule(operator="greaterThanOrEqual", formula=["100"], font=red_font)
ws.conditional_formatting.add("B2:B100", rule)

# 保存
wb.save("score_highlight.xlsx")

⬛︎ポイント解説

CellIsRule を使って、セルの値に応じたルールを設定
operator="greaterThanOrEqual" は「以上」条件を意味する
formula=["100"] で閾値を100に設定
Font(color="FF0000") で赤色の文字に変化

⬛︎応用:セルの背景色を変えることも可能!

文字色ではなく背景色を変えることもできます。

from openpyxl.styles import PatternFill

# 背景を薄赤に設定
fill = PatternFill(start_color="FFC7CE", end_color="FFC7CE", fill_type="solid")
rule = CellIsRule(operator="greaterThanOrEqual", formula=["100"], fill=fill)
ws.conditional_formatting.add("B2:B100", rule)

⬛︎複数条件を設定したいときは?

条件を複数設定することもできます。

例:「70未満は青色、100以上は赤色」

# 70未満 → 青色
blue_font = Font(color="0000FF")
rule_low = CellIsRule(operator="lessThan", formula=["70"], font=blue_font)
ws.conditional_formatting.add("B2:B100", rule_low)

# 100以上 → 赤色(前述)
rule_high = CellIsRule(operator="greaterThanOrEqual", formula=["100"], font=red_font)
ws.conditional_formatting.add("B2:B100", rule_high)

⬛︎まとめ

Pythonとopenpyxlを使えば、条件付き書式も自由自在に設定できます。
Excelで行っていた面倒な「手動で色付け」作業も、自動化であっという間に完了です。

■活用例

・営業成績が一定以上の社員を色分け
・在庫数が少ない商品を強調表示
・テスト結果の合否判定を自動で色分け

 

モバイルバージョンを終了