Python 業務自動化 | Excel業務自動化:Excel基本操作 - セル値取得

Python Python
スポンサーリンク

セル値取得は「Excelの特定セルから値を読み取り、Pythonで自由に扱える形にする」ための基本操作

Excel業務自動化の中でも セルの値を取得することは最も重要な基礎です。
なぜなら、どんな自動化でも最初に「Excelから必要な値を取り出す」工程が必ず発生するからです。

  • A1 の値を読みたい
  • 特定の行・列の値を取得したい
  • 数式の結果を取得したい
  • セル範囲をまとめて読みたい

Pythonでは openpyxl を使うことで、Excelのセルを自由に読み取れます。
初心者でも理解しやすいように、基本から実務テンプレートまで丁寧に解説します。


openpyxlでセルの値を取得する基本(最も実務向け)

最小構成:A1 の値を取得する

from openpyxl import load_workbook

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

value = ws["A1"].value
print(value)
Python

深掘りポイント

  • ws["A1"].value でセルの値を取得
  • 数字・文字列・日付・数式の結果など、Excelの値をそのまま取得できる
  • openpyxl は「セル単位の操作」に強いため、細かい読み取りが可能

行番号・列番号でセルを取得する(動的な位置指定に便利)

row と column を使って取得

value = ws.cell(row=2, column=3).value
print(value)
Python

深掘りポイント

  • row=2, column=3 は「C2」を意味する
  • ループ処理で大量のセルを扱うときに必須
  • 動的にセル位置を決めたい場合に非常に便利

数式の結果を取得する(計算済みの値を読みたい場合)

data_only=True を使う

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

print(ws["C5"].value)
Python

深掘りポイント

  • data_only=True を指定すると「数式そのもの」ではなく「計算結果」が取得できる
  • レポートの集計結果を読みたいときに必須
  • 注意点として、Excelで一度計算されていないと結果が空になることがある

セル範囲をまとめて取得する(表形式のデータに便利)

A1〜C5 の範囲を取得する

for row in ws["A1":"C5"]:
    for cell in row:
        print(cell.value)
Python

深掘りポイント

  • ws["A1":"C5"] で範囲指定
  • 行ごとにタプルで取得される
  • 表形式のデータをまとめて読みたいときに便利

行全体・列全体を取得する(Excelの表を扱う基本)

行全体を取得

for cell in ws[3]:
    print(cell.value)
Python

列全体を取得

for cell in ws["B"]:
    print(cell.value)
Python

深掘りポイント

  • ws[3] は3行目、ws["B"] はB列
  • 行・列単位で処理したいときに非常に便利
  • Excelの表をPythonで扱うときの基本テクニック

例題①:売上シートの「金額」セルを取得して合計する

シナリオ

金額が B2〜B10 に入っているとする。

from openpyxl import load_workbook

wb = load_workbook("sales.xlsx")
ws = wb["売上"]

total = 0
for cell in ws["B2":"B10"]:
    total += cell[0].value

print("合計:", total)
Python

深掘りポイント

  • openpyxl でも集計は可能
  • pandas を使わずに Excel だけで完結したい場合に便利

例題②:テンプレートの指定セルから設定値を読み取る

シナリオ

テンプレートの B2 に「レポート名」が入っている。

wb = load_workbook("template.xlsx")
ws = wb["設定"]

report_name = ws["B2"].value
print("レポート名:", report_name)
Python

深掘りポイント

  • 設定値をExcelで管理しておき、Pythonで読み取る運用は実務で非常に多い
  • Excelを「設定ファイル」として使える

例題③:セル範囲を読み取ってリスト化する

シナリオ

A列の名前一覧をPythonのリストにしたい。

names = [cell.value for cell in ws["A"] if cell.value is not None]
print(names)
Python

深掘りポイント

  • Excelの表をPythonのリストに変換できる
  • そのままループ処理や検索に使える
  • データ抽出の自動化に最適

pathlib を使った読みやすいセル取得コード

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

from pathlib import Path
from openpyxl import load_workbook

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

print(ws["A1"].value)
Python

メリット

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

セル値取得を業務で設計するときの視点

  • openpyxl は「セル単位の操作」に最適
  • 数式の結果を取得したい場合は data_only=True が必須
  • 行・列・範囲の取得を組み合わせると強力なデータ抽出ができる
  • Excelを「設定ファイル」として使うと業務自動化が柔軟になる
  • pandas と違い、Excelの書式や数式を保持したまま扱える

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