毎日同じようなExcelファイルを開いて、コピペや集計、フィルタ設定を繰り返していないでしょうか。
「そろそろ何とかしたいけれど、VBAはちょっとハードルが高そうだし……」と感じている方も多いと思います。
この記事では、そんな方に向けて、PythonとExcelを組み合わせて定型業務を自動化する「最初の一歩」を丁寧に解説していきます。
いわゆる「Python エクセル 自動化」に興味があるけれど、まだ一度もコードを書いて動かしたことがない、という完全な入門者の方を想定しています。
PythonでExcelを扱う方法はいくつかありますが、本記事では「openpyxl」というライブラリを使って、実務でよくあるパターンをイメージしながら解説していきます。
難しい理論や用語は最小限にして、「まずは動かしてみる」「仕事での使い道がイメージできる」をゴールにしています。
なお、記事の終盤では、より体系的にPython×Excel連携による業務自動化を学びたい方向けに、段階的に学べるガイドも紹介します。
まずはこの記事で「PythonでExcelがこんなふうに自動化できるんだ」という雰囲気をつかんでいただければうれしいです。
第1章 なぜExcel業務をPythonで自動化するのか?
まずは、「そもそも、なぜExcelの定型業務をPythonで自動化すると良いのか?」というところから整理してみましょう。
メリットが腑に落ちていると、学習のモチベーションもぐっと上がります。
手作業のExcel業務が抱える問題とは?
日々のExcel作業は、一見すると「たいしたことがない」ように感じられますが、積み重なると意外なほど大きなムダになってしまいます。
特に、次のような状況に心当たりがある場合は、Pythonによる自動化の恩恵を受けやすい状態です。
- 毎日・毎週・毎月、同じフォーマットのExcelにデータを貼り付けている
- 複数のExcelファイルを手作業でコピペして1つにまとめている
- 集計用のピボットテーブルやグラフを毎回作り直している
- 人によって操作手順が違い、引き継ぎのたびに説明が大変
- 単純作業なのに、ミスが発生すると大きな影響が出てしまう
こういった作業は、人間が手でやるよりも、コンピュータに任せてしまったほうが、速く・正確に・安定して行うことができます。
PythonでExcelを扱えるようになると、まさにこういった「繰り返しの定型作業」を自動化しやすくなります。
VBAとPythonの違いをざっくり比較
Excelの自動化と聞くと、まず最初に思い浮かぶのはVBAかもしれません。
VBAも素晴らしい選択肢ですが、PythonにはPythonならではの強みがあります。
VBAはExcelに組み込まれているため、Excelとの相性は抜群です。一方で、基本的には「Excelの中だけ」で完結する自動化が中心になります。
それに対してPythonは、Excelだけでなく、ファイル操作、Webスクレイピング、API連携など、さまざまな処理を一つのスクリプトの中で組み合わせられる汎用プログラミング言語です。
そのため、次のようなイメージで使い分けを考えることができます。
- 既存のExcelマクロ資産をちょっと直したい → VBAが手っ取り早い
- Excelに閉じた処理だけを少し自動化したい → VBAでもPythonでもOK
- ファイル操作やWebからの取得など「Excel以外」と組み合わせたい → Pythonのほうが柔軟で拡張しやすい
特に「将来的には、Excel以外の業務もまとめて自動化したい」と考えている場合、最初からPythonに慣れておくと応用が効きやすくなります。
Pythonで自動化しやすいExcel業務の例
続いて、具体的にどのようなExcel業務がPythonによる自動化に向いているのか、イメージをつかんでみましょう。
ここでは、現場でよく見かけるパターンを挙げてみます。
- 日次/週次/月次の売上データを、決められたテンプレートに転記する作業
- 複数の店舗・担当者・案件ごとのExcelファイルを1つの集計ファイルにまとめる作業
- 担当者別・部署別など、条件ごとにシートを分けて出力する作業
- ある条件(ステータスや金額など)に合致する行だけを抽出して別ファイルに保存する作業
- 毎回同じ書式のレポート(セルの色付け、罫線、簡単な計算など)を作り直している作業
これらはいずれも、「処理の手順が決まっている」「人間がやるとミスしやすい」「回数が多い」という特徴があります。
まさにプログラムに任せるのに向いている仕事であり、PythonとExcelの組み合わせが力を発揮しやすい領域です。
体系的に学びたい場合のガイドのご紹介
この記事では、PythonとExcelを組み合わせた自動化の「入口」をコンパクトに紹介していきますが、実際の業務で使えるレベルまで身につけるには、もう少し体系的に学んだほうが効率的です。
そのためのステップを、チャプター形式で整理したガイドも用意しています。
Python×Excelでどんな自動化ができるのか、どのようなステップでスキルを身につけていけばよいかをまとめたガイドはこちらです↓↓
Python×Excel連携による業務自動化|openpyxl入門ガイド
「Excel業務のどこから自動化に着手すべきか」「Pythonで何ができるのか」を、より具体的なユースケースとともに知りたい方は、あわせてチェックしてみてください。
この第1章で「PythonでExcel業務を自動化する意味」が何となくイメージできたと思います。
次の章からは、実際にPythonとopenpyxlを使ってExcelファイルを操作するための準備や、簡単なサンプルコードを紹介していきます。
第2章 Pythonとopenpyxlでできることをざっくり把握しよう
この章では、PythonでExcelを扱うときによく使われるライブラリ「openpyxl」を中心に、どんな自動化ができるのかを見ていきます。
最初に全体像をつかんでおくと、「自分の業務のどこにPythonを使えそうか」がイメージしやすくなります。
openpyxlとは?
まずは「openpyxlってそもそも何?」というところから押さえておきましょう。
openpyxlは、PythonからExcelファイル(.xlsx形式)を読み書きするためのライブラリです。Excelアプリを起動しなくても、Pythonのコードだけでファイルの中身を操作できます。
たとえば、次のようなことができます。
- 既存のExcelファイルを開いて、セルの値を読み取る
- セルの値を書き換えたり、新しい行を追加したりする
- 新しいExcelファイルを作成し、シートやセルを自由に作る
- セルの書式(フォント、色、罫線など)を設定する
- 数式をセルに設定する
- シートの追加・削除・コピーなどを行う
「人間がExcelを操作するときにやっていること」の多くは、Python+openpyxlでも再現できると思っていただいて大丈夫です。
もちろん、Excelアプリのすべての機能を完全に操作できるわけではありませんが、定型業務の自動化には十分すぎる機能がそろっています。
Python+openpyxlでの処理の基本イメージ
「具体的なコードは後の章で」として、ここでは処理の流れのイメージだけを軽く押さえておきましょう。
PythonでExcelを自動化するときの基本的な流れは、だいたい次のようなものです。
- Excelファイルを開く(または新規作成する)
- 操作したいシートを選ぶ
- セルの値を読み取る or 書き込む
- 必要に応じて、行や列を追加・削除する
- 最後にファイルを保存する
この「流れ」さえ頭に入っていれば、あとは「どこでどんな計算や条件分岐を入れるか」を考えるだけです。
次章以降で、実際のサンプルコードを使いながら、この流れを一歩ずつ具体化していきます。
実務寄りのユースケースをイメージしてみる
ここまでの話を、少し実務寄りのイメージでまとめてみましょう。
実際の現場で「Python エクセル 自動化」が活躍しやすいシーンとしては、たとえば次のようなものがあります。
- 営業日報や売上実績ファイルが、担当者ごとに別々のExcelとして保存されているが、毎月1回、集計ファイルにまとめ直している
- 社内システムのCSV出力を、毎回手作業でExcelに読み込んで整形(不要列の削除、列の並び替えなど)している
- 定例会議用の資料(売上推移、件数、ステータスなど)が、毎回ほぼ同じ構成なのに、人手で作り直している
こういったケースでは、Python+openpyxlを使って「入力ファイル → 加工処理 → 出力ファイル」の流れを一度組んでしまえば、あとは元データだけ差し替えてスクリプトを実行するだけで済むようになります。
このあと何を学んでいくか
第2章では、「openpyxlとは何か」「どんなExcel業務がPythonによる自動化に向いているか」を、ざっくりとしたレベルで整理しました。
次の章からは、実際に開発環境を整え、簡単なサンプルコードを動かしてみるステップに進んでいきます。
次章では、Pythonとopenpyxlのインストール方法や、サンプル用のExcelファイルの前提など、「準備編」を丁寧に解説していきます。
第3章 Python×Excel自動化の準備をしよう(開発環境づくり)
ここからはいよいよ、PythonでExcelを自動化するための「開発環境」を整えていきます。
といっても、いきなり難しいことをする必要はありません。最低限そろっていればOKなので、1つずつ確認しながら進めていきましょう。
この章では、
- Python本体と「pip」が使える状態かどうかの確認
- Excel操作用ライブラリ「openpyxl」のインストール
- 試しに動かしてみるためのサンプルExcelファイルの準備
といったステップを一緒にやっていきます。
Pythonとpipが使えるか確認しよう
まずは、Python本体と、ライブラリをインストールするための「pip」が使える状態かどうかを確認します。
すでにPythonを使ったことがある方は、ここはさらっと流し読みでも大丈夫です。
確認方法としては、ターミナル(またはコマンドプロンプト)を開いて、Pythonのバージョンが表示されるかどうかをチェックします。
以下のようなコマンドを打ってみてください。
python --version
もしくは、環境によっては次のようなコマンドになっている場合もあります。
python3 --version
どちらかを実行したときに、例えば Python 3.10.5 のようにバージョン番号が表示されれば、Pythonはすでにインストールされています。
続いて、pipが使えるかどうかも確認してみましょう。Pythonとセットで入っていることがほとんどですが、念のためチェックしておくと安心です。
pip --version
あるいは、こちらも環境によっては次のようになっている場合があります。
pip3 --version
ここでも同じように、バージョン情報が表示されれば問題ありません。
もしエラーが出る場合は、Pythonのインストール手順がまだ完了していない可能性があります。
その場合は、Pythonの開発環境構築方法の記事を確認し、インストールを済ませておきましょう。
Excel自動化の主役「openpyxl」をインストールする
Pythonが使える状態になったら、いよいよExcel自動化の主役である「openpyxl」をインストールします。
openpyxlは、PythonからExcel(.xlsxファイル)を読み書きするためのライブラリで、このあと紹介するサンプルコードでもフル活用していきます。
インストールは、とてもシンプルなコマンドで行えます。ターミナル(またはコマンドプロンプト)で次のように入力してください。
pip install openpyxl
先ほど pip3 のほうでバージョン確認ができた場合は、次のように打つ必要があるかもしれません。
pip3 install openpyxl
このコマンドを実行して、エラーが出ずに処理が完了すればOKです。
念のため、Pythonからopenpyxlを呼び出せるかどうかも簡単にテストしておきましょう。
次のような内容のファイルを test_openpyxl.py という名前で作成し、実行してみてください。
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = "Hello, openpyxl!"
wb.save("test_openpyxl.xlsx")
上のコードを実行した後、カレントディレクトリ(スクリプトを実行したフォルダ)に test_openpyxl.xlsx というファイルができていれば、openpyxlは正常に動いています。
Excelでファイルを開いて、「A1セル」に文字が入っていればバッチリです。
サンプル用のExcelファイルを準備しよう
環境の準備ができたら、次は「試しに自動化してみるためのExcelファイル」を用意します。
ここでは、Python エクセル 自動化の入門として扱いやすいよう、シンプルな売上リストのようなものを想定しておきます。
イメージしやすいように、次のような構成のExcelファイルを1つ用意してみてください。
- ファイル名:売上リスト.xlsx
- シート名:Sheet1(デフォルトのままでもOK)
- 1行目にヘッダー行として項目名を入れる
- 2行目以降にデータをいくつか入れておく
例えば、次のような項目構成にしておくと、このあと紹介するサンプルコードがそのまま使いやすくなります。
- A列:日付(例:2024/01/01)
- B列:担当者名(例:山田)
- C列:売上金額(例:100000)
行数は、最初は5行〜10行程度で構いません。
あくまで「PythonからExcelのセルを読み書きする感覚をつかむ」ことが目的なので、データの中身はテキトウでもOKです。
この章のまとめと次のステップ
ここまでで、
- Pythonとpipが使える状態かどうかの確認
- Excel自動化用ライブラリ「openpyxl」のインストール
- サンプル用Excelファイル(売上リスト)の準備
といった、Python×Excel自動化のスタートラインに立つための準備が整いました。
次の章からは、いよいよこのサンプルファイルを使いながら、Pythonコードで実際にExcelを読み込んだり、セルに値を書き込んだりしていきます。
「PythonでExcelを開くってどういう感じなんだろう?」というところを、実際のコードと一緒に体験していきましょう。
第4章 サンプル①:ExcelファイルをPythonで読み込んでみよう
ここからはいよいよ、実際にPythonコードを書いて「Excelファイルを読み込む」処理を体験していきます。
Python エクセル 自動化の世界への最初の一歩として、まずは「中身を読んでみる」ことから始めてみましょう。
この章では、先ほど用意した 売上リスト.xlsx をPython+openpyxlで開き、シートの中身を1行ずつ表示するところまでを目標に進めていきます。
Excelファイルを開いてシートを取得する基本コード
まずは、「Excelファイルを開く」「シートを選ぶ」という、PythonでExcelを扱うときの基本中の基本からです。
ここでは、売上リスト.xlsx の中にある Sheet1 を開いてみるシンプルなコードを紹介します。
from openpyxl import load_workbook
# ① Excelファイルを読み込み(同じフォルダにある想定)
wb = load_workbook("売上リスト.xlsx")
# ② アクティブなシートを取得(または名前で指定)
ws = wb.active
# ws = wb["Sheet1"] # シート名で指定したい場合はこちら
print(ws.title)
このコードを実行すると、最後の print(ws.title) の部分で、現在選択されているシート名(たとえば Sheet1)が表示されます。
ここまで動けば、「PythonからExcelファイルにちゃんとアクセスできている」ことが確認できます。
なお、シートの指定は wb.active で「現在アクティブなシート」を取る方法と、wb["Sheet1"] のようにシート名で指定する方法の2種類があります。
実務でPython エクセル 自動化を行う場合は、「シート名が決まっている前提」でコードを書くことが多いので、後者の書き方に慣れておくと安心です。
行ごとにデータを読み込んで表示してみる
シートを取得できたら、次は実際にセルの中身を読み込んでみましょう。
ここでは、「1行目はヘッダー行」「2行目以降がデータ」という前提で、売上データを行単位で表示するサンプルを作ってみます。
from openpyxl import load_workbook
wb = load_workbook("売上リスト.xlsx")
ws = wb["Sheet1"]
# 1行目はヘッダーとして、2行目以降のデータを読み込む
for row in ws.iter_rows(min_row=2, values_only=True):
# row は (日付, 担当者, 売上金額) のタプルになる想定
print(row)
このコードを実行すると、ターミナル(またはコンソール)に、次のような感じで行ごとのデータが表示されるはずです。
(datetime.datetime(2024, 1, 1, 0, 0), '山田', 100000)
(datetime.datetime(2024, 1, 2, 0, 0), '佐藤', 80000)
...
ここでのポイントは、iter_rows メソッドに values_only=True を指定している点です。
これを付けておくと、「セルのオブジェクト」ではなく、「セルに入っている値」だけをタプルとして受け取ることができます。
もし、値ではなくセルそのものを触りたいときは、values_only=False(省略時のデフォルト)にして、cell.value のように取り出す書き方になります。
まずは「中身を確認したいだけ」の段階ですので、values_only=True を使うスタイルで慣れておくと分かりやすいと思います。
特定の列だけを取り出して使ってみる
行ごとにデータを表示できるようになったら、次は「特定の列だけを取り出す」処理も試してみましょう。
実務でPython エクセル 自動化をする際には、「日付と金額だけ欲しい」「担当者名だけ集計に使いたい」といったケースがよくあります。
ここでは、売上リストから「担当者名」と「売上金額」だけを取り出して表示する例を紹介します。
from openpyxl import load_workbook
wb = load_workbook("売上リスト.xlsx")
ws = wb["Sheet1"]
for row in ws.iter_rows(min_row=2, values_only=True):
date, person, amount = row # 行を3つの変数に展開
print(f"{person} さんの売上は {amount} 円です。")
このように、1行分のデータをタプルとして受け取り、変数に展開することで、「どの列が何のデータなのか」をコード上でも明確にできます。
このあと紹介する「新しい列を追加する」「抽出した行だけ別シートに書き出す」といった処理でも、同じような考え方で扱うことができます。
ファイルパスやシート名のよくあるハマりポイント
ここまでのサンプルコードはシンプルですが、実際に手元の環境で動かしてみると、最初のうちは次のようなところでハマりがちです。
- PythonでExcelを自動化する際にありがちなつまずきポイントなので、あらかじめ意識しておくとトラブルシューティングが少し楽になります。
- スクリプトとExcelファイルの場所(フォルダ)が違っていて、FileNotFoundError が出る
- 拡張子が .xls(古い形式)になっていて、openpyxlで読み込めない
- シート名を Sheet1 と書いているが、実際のシート名が日本語(「売上」など)になっている
- Excelファイルを開きっぱなしの状態でPythonからアクセスして、保存時にエラーになる
特に、ファイルパスの問題はよく起こります。
最初のうちは、「Pythonのスクリプトと同じフォルダにExcelファイルを置く」「ファイル名と拡張子をしっかり確認する」といったシンプルなルールを徹底するのがおすすめです。
業務レベルの活用に向けたステップも意識しておこう
この第4章では、「PythonでExcelファイルを読み込む」という、Python エクセル 自動化の入り口となる部分を体験しました。
実務での活用を考えると、ここから先は次のようなステップでレベルアップしていくイメージになります。
- 読み込んだデータに対して、条件分岐(if)や計算処理を行う
- 抽出した結果や計算結果を、別シートや別ファイルに書き出す
- 複数ファイルをループで処理し、「フォルダごと一括処理」できるようにする
- 最終的に、ワンクリックで動かせるツール(.exe化など)に仕上げる
この章のまとめと次のステップ
第4章では、次のような内容を扱いました。
- load_workbook を使ってExcelファイルを開く方法
- シートを取得して、行ごとにデータを読み込む方法
- values_only=True を使ってセルの値だけを扱う方法
- 特定の列だけ取り出して使う例
- ファイルパスやシート名など、よくあるハマりポイント
次の章では、読み込んだExcelに対して「新しい列を追加して保存する」など、Pythonから実際に書き込む処理に挑戦していきます。
これができるようになると、「見て終わり」から一歩進んで、「Excelを自動で加工してくれるPythonスクリプト」を作れるようになっていきます。
第5章 サンプル②:PythonからExcelに書き込んでみよう
前の章では、Pythonとopenpyxlを使ってExcelファイルからデータを「読み込む」方法を見てきました。
ここからは一歩進んで、「Excelに新しい情報を書き込む」処理を体験していきましょう。
Python エクセル 自動化でよくあるパターンの一つに、「既存のExcelに計算結果の列を追加する」というものがあります。
この章では、売上リストに「税込金額」の列を追加するサンプルコードを中心に解説していきます。
既存のExcelに新しい列を追加する流れ
まずは、「既存のExcelファイルに新しい列を追加して保存する」という処理の全体の流れを整理しておきます。
前の章でも少し触れましたが、PythonでExcelを操作するときの基本は、次のようなステップになります。
- Excelファイルを読み込む
- 操作したいシートを取得する
- 必要なセルに値を書き込む(今回であれば新しい列)
- 別名で保存する(元ファイルを残したい場合)
これを実際のコードに落とし込むと、どのような書き方になるのかを、具体的な例で見ていきましょう。
「税込金額」列を追加するサンプルコード
ここでは、第3章で作成した 売上リスト.xlsx を前提に、「C列の売上金額に対して消費税(仮に10%)をかけた金額をD列に書き込む」という処理を行います。
元ファイルは念のため残しておきたいので、ここでは新しいファイル名で保存するようにしておきます。
from openpyxl import load_workbook
# 元のExcelファイルを読み込む
wb = load_workbook("売上リスト.xlsx")
ws = wb["Sheet1"]
# D列の1行目にヘッダーを設定
ws["D1"] = "税込金額"
# 2行目以降のデータに対して、税込金額を計算して書き込む
for row in range(2, ws.max_row + 1):
price_cell = f"C{row}" # 売上金額が入っているセル(C列)
tax_included_cell = f"D{row}" # 書き込み先のセル(D列)
price = ws[price_cell].value
if price is not None:
ws[tax_included_cell] = int(price * 1.1)
# 新しいファイル名で保存する
wb.save("売上リスト_税込追加.xlsx")
このコードを実行すると、元の 売上リスト.xlsx をもとに、D列に「税込金額」が追加された 売上リスト_税込追加.xlsx が作成されます。
Excelで開いてみて、D列に数値が入っていれば成功です。
ここでやっていることをシンプルに言い換えると、「C列の値を読んで、1.1倍してD列に書き戻しているだけ」です。
ただし、人手でやると地味に面倒な作業も、Pythonにやらせることで一瞬で終わらせることができます。
なぜ「別名で保存」するのか?
先ほどのコードでは、wb.save("売上リスト_税込追加.xlsx") のように、新しい名前でファイルを保存しました。
これは、初めてPython エクセル 自動化に取り組む際には特におすすめのやり方です。
理由としては、次のようなものがあります。
- もしスクリプトにバグがあっても、元のファイルを上書きしてしまわない
- 比較のために、「加工前」と「加工後」のファイルを並べて確認できる
- 業務で使う場合でも、「元データ」と「加工結果」を分けて運用しやすい
慣れてくれば、あえて上書き保存したい場面も出てきますが、最初のうちは「出力用のファイル名」を意識して書いておくと安心です。
f文字列でセル番地を組み立てる書き方に慣れよう
コードの中で、f"C{row}" や f"D{row}" という書き方が出てきました。
これは「f文字列(f-string)」と呼ばれる書き方で、文字列の中に変数を埋め込むことができます。
たとえば、row = 5 のときに f"C{row}" と書くと、実際には "C5" という文字列になります。
openpyxlでは、ws["C5"] のように「列名+行番号」でセルを指定できるので、このf文字列と相性がとても良いです。
実務でPython エクセル 自動化をしていると、「行番号だけループで変えたい」という場面がよく出てきます。
そのたびに "C" + str(row) のように書くよりも、f"C{row}" と書いたほうがスッキリして読みやすくなるので、この機会に慣れておくと後々楽になります。
数値以外のセルが混ざる場合の注意点
サンプルコードでは、売上金額がすべて数値で入っていることを前提にして、price * 1.1 という計算を行っています。
しかし、実際の現場のExcelだと、次のようなケースもよくあります。
- 金額のセルに空白(未入力)が混ざっている
- 「未入力」や「調整中」といった文字列が入っている
- 通貨記号やカンマ付きの文字(例:¥100,000)になっている
こういった場合、そのまま計算しようとするとエラーになってしまいます。
そこで、最低限の安全策として、「値が None でないときだけ計算する」といったチェックを入れておくとよいです。
すでに先ほどのコードでも、次のように簡易チェックを入れていました。
price = ws[price_cell].value
if price is not None:
ws[tax_included_cell] = int(price * 1.1)
もう少し丁寧にやるのであれば、「数値に変換できなかった場合はスキップする」といった例外処理を加えることもできます。
こうした「現場の汚いデータ」にどう対応するかは、実務レベルのPython×Excel自動化では非常に大事なポイントになってきます。
新しいExcelファイルを一から作ることもできる
ここまでの例では、「既存のExcelファイルに対して列を追加する」ケースを扱ってきました。
openpyxlは、既存ファイルの編集だけでなく、「まっさらな新規Excelファイルを一から作る」ことも得意です。
例えば、次のようなコードで、新しいExcelファイルに簡単な表を作ることができます。
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "レポート"
# ヘッダー行
ws["A1"] = "項目"
ws["B1"] = "値"
# データ行
ws["A2"] = "合計売上"
ws["B2"] = 300000
wb.save("レポート.xlsx")
このように、Pythonからセルに値を書き込んでいくだけで、レポート用のExcelファイルを自動生成することもできます。
読み込みだけでなく、「ファイル生成」「加工」「出力」まで一連の流れをPythonで完結できるのが、Python エクセル 自動化の大きな魅力の一つです。
この章のまとめと次のステップ
第5章では、次のような内容を扱いました。
- 既存のExcelファイルに「税込金額」列を追加するサンプルコード
- なぜ別名で保存しておくと安心なのかという理由
- f文字列を使ったセル番地の組み立て方
- 実務では数値以外の値が混ざるため、簡単なチェックを入れておく重要性
- 新しいExcelファイルを一から作成する基本的なコード例
ここまでで、「Excelからデータを読む」「Excelにデータを書き込む」という基本的な両輪がそろいました。
次の章では、これらを応用して、「よくある定型業務を丸ごと自動化する」もう一歩実務寄りのサンプルに挑戦していきます。
第6章 よくある定型Excel業務を丸ごと自動化してみよう
ここまでで、「ExcelをPythonで読み込む」「Excelに書き込む」という基本操作はひと通り体験できました。
この章では、その2つを組み合わせて、もう少し“実務寄り”の Python エクセル 自動化 に挑戦してみたいと思います。
具体的には、次のようなよくある定型業務をPythonで自動化してみます。
- 特定の担当者の行だけを別シートに抜き出す
- フォルダ内の複数Excelファイルを1つのシートにまとめる(入門版)
どちらも現場で本当によく見かけるパターンなので、自分の業務に置き換えながら読んでみてください。
例①:特定の担当者だけを別シートに分ける
まずは、売上リストの中から「特定の担当者の行だけ」を抜き出して、別シートにまとめてみましょう。
これは、担当者別・店舗別・部署別など、さまざまな条件での“抽出作業”に応用できる基本パターンです。
やりたいことのイメージ
最初に、どんな処理をしたいのかを簡単に整理しておきます。
コードを書く前に、ゴールのイメージを言葉でまとめておくと、迷子になりにくくなります。
ここでは、次のような処理を目標にします。
- 元のシート:Sheet1 には全担当者分の売上データが入っている
- この中から、例えば「山田」さんの行だけを抜き出したい
- 新しいシートを作り、ヘッダー行も含めてコピーする
- 元のファイルとは別名で保存する(練習なので安全運転)
この流れを、Python+openpyxlでそのままコードにしていきます。
特定担当者のデータを別シートにコピーするコード
では、実際のサンプルコードを見ていきましょう。
ここでは「担当者名はB列に入っている」という前提で進めます。
from openpyxl import load_workbook
# 元のExcelファイルを読み込む
wb = load_workbook("売上リスト.xlsx")
ws = wb["Sheet1"]
# 抽出したデータを書き込む新しいシートを作成
target_person = "山田"
new_sheet_name = f"{target_person}さん売上"
# すでに同名シートがある場合に備えて、存在チェックをしておく
if new_sheet_name in wb.sheetnames:
del wb[new_sheet_name]
new_ws = wb.create_sheet(title=new_sheet_name)
# まずはヘッダー行(1行目)をそのままコピー
for col in range(1, ws.max_column + 1):
new_ws.cell(row=1, column=col).value = ws.cell(row=1, column=col).value
# 2行目以降から、担当者が一致する行だけを新シートに書き込む
new_row_index = 2 # 新シート側の書き込み行を管理
for row in range(2, ws.max_row + 1):
person = ws.cell(row=row, column=2).value # B列(担当者名)を取得
if person == target_person:
for col in range(1, ws.max_column + 1):
new_ws.cell(row=new_row_index, column=col).value = ws.cell(row=row, column=col).value
new_row_index += 1
# 新しいファイル名で保存
wb.save("売上リスト_山田さん売上.xlsx")
このコードを実行すると、元の 売上リスト.xlsx をもとに、「山田さんの行だけを抜き出したシート」を含むExcelファイルが出力されます。
このような「条件に合う行だけを抜き出して別シートに書き出す」という処理は、さまざまな業務に応用できる便利なパターンです。
応用のアイデア
このサンプルコードの「条件部分」を変えることで、いろいろな抽出処理に応用できます。
例えば、次のような使い方が考えられます。
- 担当者名ではなく、「部署名」「店舗名」「ステータス」などで絞り込む
- 金額が一定以上の行だけを別シートに集める(高額案件リストなど)
- 「エラー」「要確認」などのフラグが立っている行だけを抜き出す
条件の書き方さえ工夫すれば、「目視でフィルタをかけてコピペしていた作業」を、丸ごとPythonに任せることができるようになります。
例②:フォルダ内のExcelファイルを1つにまとめる(入門編)
次は、少しだけレベルを上げて、「フォルダ内にある複数のExcelファイルを1つのシートにまとめる」という処理に挑戦してみましょう。
これは、店舗ごと・担当者ごと・日付ごとにExcelファイルが分かれているような現場で、非常によく出てくるニーズです。
ここでは、あくまで“入門編”として、シンプルな構成のファイルを対象にしたコード例を紹介します。
前提とするファイル構成
まずは、どのような前提で処理を組むのかを整理しておきます。
現場ではファイルの形式やシート名がバラバラなことも多いですが、まずは練習として規則正しいパターンを想定します。
ここでは、次のようなルールでフォルダを用意しておきます。
- data フォルダの中に、複数のExcelファイルが入っている
- 各ファイルのシート名は Sheet1 とする
- 列構成(ヘッダー行)はどのファイルも同じ
- 1行目がヘッダー、2行目以降にデータが入っている
この前提をもとに、「すべてのファイルのデータを1つのシートに縦に連結する」処理を書いてみます。
フォルダ内のExcelを結合するサンプルコード
それでは、Pythonで複数ファイルを読み込み、1つの集計用ブックにまとめるコードを見ていきましょう。
標準ライブラリの glob を使って、フォルダ内のファイルを一括で取得します。
import glob
from openpyxl import Workbook, load_workbook
# データファイルが入っているフォルダのパス
data_folder = "data" # スクリプトと同じ階層に data フォルダがある想定
# 集計用の新しいブックを作成
summary_wb = Workbook()
summary_ws = summary_wb.active
summary_ws.title = "集計"
# ヘッダーを書き込んだかどうかを管理するフラグ
header_written = False
# data フォルダ内の xlsx ファイルをすべて処理
for file_path in glob.glob(f"{data_folder}/*.xlsx"):
print(f"読み込み中: {file_path}")
wb = load_workbook(file_path, data_only=True)
ws = wb["Sheet1"]
# ヘッダー行の書き込み(最初のファイルのときだけ)
if not header_written:
for col in range(1, ws.max_column + 1):
summary_ws.cell(row=1, column=col).value = ws.cell(row=1, column=col).value
header_written = True
# データ行(2行目以降)を集計シートに追加
for row in range(2, ws.max_row + 1):
summary_row = summary_ws.max_row + 1 # 末尾に追加
for col in range(1, ws.max_column + 1):
summary_ws.cell(row=summary_row, column=col).value = ws.cell(row=row, column=col).value
# 集計結果を保存
summary_wb.save("売上集計_フォルダ内一括.xlsx")
print("集計が完了しました。")
このスクリプトを実行すると、data フォルダ内の各Excelファイルの内容が、1つの「集計」シートに縦に連結された 売上集計_フォルダ内一括.xlsx が作成されます。
これだけでも、「毎月、各店舗から送られてくるExcelを1つの集計表にまとめる」といった作業をかなり楽にすることができます。
実務で使うときに意識したいポイント
実務で「フォルダ内一括結合」を行う場合は、次のような点も意識しておくと安定して運用しやすくなります。
- 想定通りのシート名が存在しないファイルが混ざっているかもしれない
- 空ファイルや、ヘッダーだけでデータが入っていないファイルがある場合
- 列構成が微妙に違うファイルが紛れ込んでいるケース
- 同じファイルを何度も読み込んでしまう重複処理
こういったケースに対応するには、try/exceptでエラーを捕まえたり、列名をチェックしてから連結したりといった“防御的なコード”が必要になってきます。
このあたりをきちんと作り込んでいくと、「現場で本当に使えるExcel自動化ツール」に近づいていきます。
この章のまとめと次のステップ
第6章では、より実務に近い2つのサンプルを通して、Python エクセル 自動化 のイメージを具体化してきました。
この章で扱った内容を振り返ると、次のようになります。
- 特定の担当者(B列の値)に一致する行だけを抜き出し、別シートにまとめる方法
- 新しいシートを作成してヘッダー行をコピーし、抽出したデータを書き込む手順
- glob を使ってフォルダ内の複数Excelファイルを一括で読み込み、1つのシートに縦に連結する方法
- 実務で使うときには、シート名の違い・空ファイル・列構成の違いなどに注意が必要になること
ここまでで、「単にExcelを読んで書くだけ」から一歩進んで、「人がやっていた定型業務を丸ごとプログラムに置き換える」という感覚がつかめてきたのではないでしょうか。
次の章では、こうしたスクリプトを「業務で運用しやすい形にする」ために、簡単なエラー処理や、ちょっとしたツール化の考え方について解説していきます。
実際に人に配布したり、自分以外のメンバーにも使ってもらうことを意識した一歩先の内容を見ていきましょう。
第7章 実務で運用するための一歩先(エラー対策とツール化)
ここまでで、Pythonとopenpyxlを使って「Excelを読み書きする」「定型業務を自動化する」ための基本的なコードはひと通り体験してきました。
この章では、いよいよ「実際の業務で使っていく」ことを意識して、エラー対策やツール化の考え方を少しだけ深掘りしていきます。
Python エクセル 自動化は、サンプルが動くだけなら比較的簡単ですが、実務で安定して使えるようにするには「エラーが起きたときにどう振る舞うか」「人が触りやすい形にどう仕上げるか」がとても大切です。
エラー対策の第一歩:try / except の基本
まずは、Pythonでエラーに対処するための基本テクニックである try / except から見ていきましょう。
「とりあえずスクリプトが止まらないようにする」というだけでも、業務での使い勝手はかなり変わってきます。
次のような処理は、実務の中で特によくエラーが出やすいポイントです。
- 指定したExcelファイルが見つからない
- 想定していたシート名が存在しない
- 金額などの数値が文字列のままになっていて計算できない
このようなケースでは、何も対策をしていないと「エラーが出てプログラムが落ちるだけ」で終わってしまいます。
そこで、最低限の守りとして try / except を使ってみましょう。
from openpyxl import load_workbook
file_name = "売上リスト.xlsx"
try:
wb = load_workbook(file_name)
ws = wb["Sheet1"]
except FileNotFoundError:
print(f"ファイルが見つかりませんでした: {file_name}")
except KeyError:
print("指定したシート名が存在しません。(例:Sheet1)")
else:
print("ファイルとシートの読み込みに成功しました。")
このように書いておくと、「ファイルがない」「シートがない」といった典型的なエラーが起きたときに、ユーザーに分かりやすいメッセージを表示して処理を中断することができます。
数値変換まわりのエラーに備える
Excelの金額や数量の列には、実際の業務データでは想定外の値が紛れ込んでいることがよくあります。
たとえば、空白や「調整中」「確認中」といった文字列、あるいは通貨記号やカンマ付きの文字などです。
このような列をそのまま int() や float() に渡すと、ValueError が発生してスクリプトが止まってしまいます。
そのため、「数値に変換できなければスキップする」というような処理を書いておくと、現場向きのコードになります。
次のコードは、「金額を税込にする処理」に、簡単なエラー対策を加えた例です。
from openpyxl import load_workbook
wb = load_workbook("売上リスト.xlsx")
ws = wb["Sheet1"]
ws["D1"] = "税込金額"
for row in range(2, ws.max_row + 1):
price = ws[f"C{row}"].value
try:
# 数値に変換を試みる(None や文字列が来る可能性を考慮)
if price is None:
continue
price = float(price)
except ValueError:
print(f"{row}行目の金額が数値に変換できませんでした: {price}")
continue
ws[f"D{row}"] = int(price * 1.1)
wb.save("売上リスト_税込追加_安全版.xlsx")
このように、「変換できなければスキップする」「何行目で問題があったかだけ表示する」といった工夫をすることで、途中で処理が止まってしまうのを防ぎつつ、あとから問題箇所を確認できるようになります。
ちょっとしたメッセージを入れるだけでも“ツール感”が出る
次に、「動けばOK」なスクリプトから、「人が使いやすいツール」へ一歩近づけるための簡単な工夫を見ていきましょう。
特別なGUI(画面)を作らなくても、print や input をうまく使うだけで、かなり使い勝手が変わります。
例えば、次のようなポイントを意識すると、スクリプトがグッと親切になります。
- 処理の開始・終了をメッセージで知らせる
- どのファイルを処理しているのかを表示する
- エラーが出たときに「何をすれば良いのか」を一言添えておく
簡単な例として、ファイル名をユーザーに入力してもらう形にしてみましょう。
from openpyxl import load_workbook
file_name = input("処理したいExcelファイル名を入力してください(例:売上リスト.xlsx): ")
try:
wb = load_workbook(file_name)
except FileNotFoundError:
print(f"ファイルが見つかりませんでした: {file_name}")
print("ファイル名や拡張子(.xlsx)をもう一度確認してください。")
else:
print(f"{file_name} の読み込みに成功しました。")
# ここに処理本体を書く
この程度の工夫でも、「スクリプトの使い方を毎回説明しなくても、なんとなく使える」状態に近づいていきます。
社内で共有することを考えると、こうした小さな気配りが意外と効いてきます。
実務で扱いやすくするための「設定の切り出し」
もう一つ、業務でPython エクセル 自動化を使う際に便利なのが、「設定値をコード本体から分離する」という考え方です。
担当者名やフォルダパスなどをコードの中にベタ書きしてしまうと、変更のたびにPythonファイルを開いて編集しなければなりません。
そこで、次のような工夫をすると、変更に強いコードになります。
- ファイル名やフォルダパス、担当者名などを、スクリプトの冒頭にまとめる
- 将来的には、設定ファイル(JSONやYAML)に切り出すこともできる
簡単な例として、スクリプトの冒頭に「設定エリア」を作っておくパターンを紹介します。
# ===== 設定ここから =====
INPUT_FILE = "売上リスト.xlsx"
TARGET_PERSON = "山田"
OUTPUT_FILE = "売上リスト_山田さん売上.xlsx"
# ===== 設定ここまで =====
from openpyxl import load_workbook
wb = load_workbook(INPUT_FILE)
ws = wb["Sheet1"]
# ここから先は、設定値を使って処理を書く
このようにしておくと、
「今回は山田さんではなく佐藤さんで集計したい」「出力ファイル名だけ変えたい」
といった場合でも、スクリプト上部の設定だけを変更すれば済むようになります。
exe化(実行ファイル化)という選択肢について
もう一歩進んで、PythonがインストールされていないPCでも動かしたい場合は、「exe化(実行ファイル化)」という手段もあります。
これは、PythonスクリプトをWindows向けの .exe ファイルに変換し、ダブルクリックだけで起動できるようにするやり方です。
代表的なツールとしては、PyInstaller などがあります。
コマンドラインから簡単なコマンドを打つだけでexeファイルを作成できるため、「自分のPCで作った自動化ツールを、他のメンバーにも配布したい」といったケースで役に立ちます。
ただし、exe化には次のようなポイントもあるため、この章では詳細な手順までは踏み込みません。
- セキュリティソフトに誤検知される場合がある
- ファイルサイズが大きくなりがち
- ライブラリ構成やパス設定でつまずきやすい
この章のまとめと、次に進むためのヒント
第7章では、「実務でPython×Excel自動化を使う」ことを意識した、少しだけ一歩先の内容を扱いました。
ポイントを改めて整理すると、次のようになります。
- try / except を使って、ファイルやシートが見つからない場合のエラーに備える
- 数値変換(int / float)の前後でチェックを行い、“汚いデータ”に対してスクリプトが落ちないようにする
- print や input をうまく使うことで、ちょっとした「ツール感」を出せる
- ファイル名や担当者名などの設定値を冒頭にまとめることで、変更に強いコードになる
- 将来的には、PyInstallerなどを使ったexe化で、Pythonが入っていないPCでも動かせるようにできる
ここまで来ると、「自分のExcel業務をPythonで自動化してみる」ための最低限の土台は、かなり整ってきたはずです。
次の章では、これまでの内容を踏まえつつ、「どのようなステップでスキルアップしていけば、業務で使えるレベルまで到達できるか」という学習ロードマップ的な話をしていきます。
第8章 Excel自動化を体系的に身につける学習ロードマップ
ここまでで、「PythonでExcelを読み書きできる」「簡単な定型業務を自動化できる」というところまではイメージしていただけたと思います。
ただ、「この先、どんな順番で学んでいけば、実務でガッツリ使えるレベルまで行けるのか?」というところは、少しイメージしづらいかもしれません。
この章では、Python エクセル 自動化のスキルを段階的に高めていくための学習ロードマップを、できるだけ具体的に整理してみます。
あわせて、そのステップに沿って学べるガイド(外部サイト)も紹介します。
段階①:Excel操作の「型」を身につける
最初のステップは、これまでの記事でも扱ってきたような「Excel操作の基本パターン」をしっかり身につけることです。
ここでのゴールは、「調べながらでも、自分の業務用のスクリプトをなんとか書ける」状態です。
この段階で押さえておきたいポイントは次のとおりです。
- load_workbook / Workbook でファイルを開く・新規作成する
- シートの取得・追加・削除・名前変更
- 行・列のループ処理と、セルの読み書き(iter_rows / cell)
- 簡単な条件分岐(if)と計算処理を組み合わせる
- 別名保存で「元ファイルを壊さない」運用を身につける
このあたりをひと通り触ることで、「Excelでよくやる操作をPythonでどう表現するか」が見えてきます。
段階②:業務フロー単位で自動化してみる
次のステップでは、「操作の1つ1つ」ではなく、「業務フロー全体」を1本のスクリプトに落とし込んでみることを目指します。
ここを乗り越えると、「単なるサンプルコード」から「ちゃんと仕事を減らしてくれるツール」に変わっていきます。
イメージしやすい題材としては、例えば次のようなものがあります。
- 毎月の売上集計ファイルを自動生成するフロー
- CSV → 整形 → Excelテンプレートに貼り付け → 書式調整 までを1本にまとめる
- フォルダ内のファイルを一括読み込み → 条件付きで抽出 → 別ファイルに出力する
この段階では、次のようなテクニックも少しずつ取り入れていきます。
- 関数として処理を分割し、「読みやすく変更しやすいコード」にする
- 設定値(ファイルパス、担当者名、しきい値など)をまとめて管理する
- エラー時の挙動をある程度コントロールする(第7章の内容)
段階③:他の人も使える「社内ツール」に育てる
もう一歩進めて、「自分だけが使えるスクリプト」から、「チームメンバーも使えるツール」に育てていくステップです。
このあたりから、Python エクセル 自動化が本格的に業務改善ツールとして機能し始めます。
例えば、次のような工夫を加えていきます。
- 起動時に「どのファイルを処理するか」「どの期間を集計するか」などを入力させる
- 処理開始・進行状況・完了をメッセージで丁寧に表示する
- ログ(処理した件数やエラー内容など)を残しておく
- 必要に応じて、PyInstallerなどでexe化し、ダブルクリックで起動できるようにする
ここまでできるようになると、社内で「この自動化スクリプト便利だね」「他の業務にも流用できない?」という声が出てくる段階に入っていきます。
段階④:Excelの外側も含めて自動化する
さらに中級〜上級に進むと、「Excelの中だけ」ではなく、業務全体を見渡して自動化の範囲を広げていくことになります。
Pythonは汎用プログラミング言語なので、Excel以外とも組み合わせて初めて真価を発揮します。
例えば、次のような連携が考えられます。
- Webスクレイピングでサイトからデータを取得 → Excelに自動でまとめる
- API(クラウドサービスや社内システム)からデータを取得 → Excelレポートを生成
- フォルダ構成の変更やファイル整理など、「ファイルシステムの操作」と組み合わせる
- 定期実行(タスクスケジューラなど)と組み合わせて、完全自動化に近づける
ここまで来ると、「Excelの定型作業を自動化する人」から、「業務プロセス全体の自動化を設計できる人」になっていきます。
ロードマップに沿って学べるガイドのご紹介
ここまで紹介してきたステップを、チャプター形式で体系的に学べるガイドとしてまとめたものが、以下のページです。
Python×Excel連携による業務自動化|openpyxl入門ガイド
ざっくりとした構成イメージは、次のようになっています。
- Chapter0:Excel業務のどこから自動化すべきか、内製と外注の考え方
- Chapter1:openpyxlを使ったExcel操作の基本(読み込み/書き込み)
- Chapter2:実務を意識したエラー処理・設定の分離・exe化の基礎
- Chapter3:売上集計・一括結合ツールなど、業務フロー単位の自動化例
- Chapter4:Webスクレイピングや外部サービスとの連携 → Excelレポート出力
- Chapter5:自動化スキルを活かしたキャリア・副業・社内展開のヒント
この記事で触れたサンプルコードは、あくまで「入口」として動くようにシンプルにしていますが、
ガイドのほうでは「業務でそのまま使えるレベル」に近づけるためのテクニックを、もう一歩詳しく掘り下げています。
この章のまとめと、記事全体の位置づけ
第8章では、Python エクセル 自動化をどのようなステップで身につけていくか、学習ロードマップとして整理しました。
- まずはExcel操作の基本パターン(読み書き・ループ・条件分岐)を押さえる
- 次に、業務フロー単位で「仕事を1本のスクリプトに落とし込む」
- さらに、他の人も使えるようにエラー処理や設定分離、簡単なUIを整える
- 最終的には、Excelの外側も含めて業務全体の自動化を設計する
この記事全体が、みなさんにとって「PythonでExcel業務を自動化するのって、こういう感じなんだ」と雰囲気をつかむための入門編になっていればうれしいです。
もし「自分の業務でこんなExcel作業があるけど、自動化できるかな?」といった相談があれば、Qiitaのコメントでぜひ教えてください。
次の章では、これまでの内容を軽く振り返りながら、この入門記事のまとめをしていきます。
第9章 まとめ:Python×Excel自動化の最初の一歩を踏み出そう
ここまでお読みいただき、ありがとうございました。
最後の章では、これまでの記事全体を軽く振り返りながら、「このあと具体的に何をすればよいか」というところを整理して締めくくりたいと思います。
Python エクセル 自動化に興味はあるけれど、「自分にもできるのかな?」と不安に感じていた方も、ここまで読み進めていただいた時点で、すでにかなりイメージはつかめているはずです。
記事全体でできるようになったことを振り返る
まずは、この入門記事で触れてきた内容を、ざっくりと振り返ってみましょう。
「できることリスト」を意識しておくと、自分の業務にどう当てはめられそうか考えやすくなります。
この記事を通して、次のようなポイントは一通り経験してきました。
- Pythonとopenpyxlを使って、Excelファイル(.xlsx)を読み込む方法
- 行や列をループしながら、セルの値を取得したり、加工したりする基本的なコード
- 新しい列(例:税込金額)を追加して、別名のExcelファイルとして保存する流れ
- 特定の担当者だけを別シートに抜き出すなど、条件付きの抽出処理
- フォルダ内の複数ファイルを1つの集計シートにまとめる入門的なサンプル
- エラーが出やすいポイントに対して、最低限のtry/exceptや数値変換チェックを入れる考え方
- ちょっとしたメッセージや設定の分離で、「人が使いやすいスクリプト」に近づける工夫
「完璧に覚えた」という状態でなくても大丈夫です。
まずは、「こういうことならPythonでできそうだな」「この手作業は、あの記事のサンプルを応用すれば自動化できそうだな」と思えるようになっていれば十分です。
このあとにやると良い“最初の一歩”
ここから先、「よし、実際に自分の仕事で試してみよう」と思ったときに、いきなり難しいことに挑戦する必要はありません。
最初は、できるだけ小さく・安全に試すのがおすすめです。
例えば、次のようなステップで進めてみてください。
- すでにあるExcel業務の中から、「毎回ほぼ同じ手順でやっている作業」を1つだけ選ぶ
- その作業を、細かいステップに分解して紙やメモに書き出してみる
- 記事のサンプルコードのうち、一番近そうなものをベースにして真似してみる
- いきなり本番データで試さず、コピーしたテスト用ファイルで動かしてみる
この「小さく分ける」「サンプルを真似する」「テスト用ファイルで安全に試す」という流れを繰り返していくと、自然とコードにも慣れていきます。
もっと踏み込んで学びたくなったときに
この記事はあくまで「入門編」として、できるだけコンパクトにPython×Excel自動化の雰囲気をつかんでいただくことを目的にしていました。
実際の業務でガッツリ使えるレベルまで引き上げていくには、もう少し体系的にステップアップしていくのが近道です。
そこで、Python エクセル 自動化を段階的に学べるガイドとして用意しているのが、こちらのページです。
Python×Excel連携による業務自動化|openpyxl入門ガイド
このガイドでは、この記事で触れた内容をベースにしつつ、
- もう少し実務寄りのサンプルコードやユースケース
- エラー処理やログ出力、exe化など、実際の現場で使うことを前提にした工夫
- Webスクレイピングや外部サービス連携も含めた「業務全体の自動化」の視点
といったところまで、チャプター形式で掘り下げて解説しています。
「この記事で雰囲気はつかめたので、次は具体的に仕事で使える形にしたい」と思ったタイミングで、ぜひ覗いてみてください。
おわりに:少しずつ“手を動かしてみる”ところから
最後に、大事なことを一つだけお伝えするとすれば、「完璧に理解してから始めようとしなくて大丈夫」ということです。
Python エクセル 自動化は、実際に手を動かしてみることで、「あ、こういう動きになるのか」「ここはこう直せばいいのか」と、少しずつ感覚がつかめてきます。
この記事で紹介したサンプルコードは、そのままコピペして試せる形にしていますので、まずはぜひ一つでも動かしてみてください。
そして、「ここを自分の業務に合わせて変えてみたい」「こういうパターンも試したい」と思ったら、少しずつアレンジしてみましょう。
あなたの毎日のExcel作業が、Pythonの力で少しでも楽になっていけばうれしいです。