Excelの定型業務をもっと楽にできないか?と感じたことがある人も多いでしょう。
毎日繰り返すデータの入力や集計作業は、時間がかかるだけでなく、ミスも起こりがちです。
そんな悩みを解決できるのが、Pythonを使ったExcel操作の自動化です。
この記事では、「なぜExcel自動化にPythonが最適なのか」についてや、具体的な自動化の方法などを、サンプルコード付きで初心者にもわかりやすく解説します。

本気で未経験からエンジニア転職を目指すなら、
日本最大級の比較サイト「マイベスト」で【4年連続人気NO.1】となった
RUNTEQ(ランテック)一択!

✅受講生からの評判が驚くほど良い
✅学習はハードだが未経験とは思えないほど高いスキルが身に付く
✅挫折させない万全なサポート体制が用意されている
✅採用面接で担当者に刺さるレベルの高い「ポートフォリオ」を作成できる
✅給付金を使えば実質約13万円という格安料金で受講できる
\ もちろん勧誘行為は一切なし! 相談だけでもOK! /
なぜVBAのマクロではなくPythonで自動化すべきなのか?
Excelの自動化といえば、VBAのマクロを思い浮かべる方も多いかもしれません。
しかし、近年ではPythonを選ぶ人が増えています。
その理由は、VBAにはない、以下のようなメリットがあるからです。
汎用性が高く用途が広い
PythonはExcel操作だけでなく、Webサイトからの情報収集(スクレイピング)や、データ分析、機械学習、AI開発など、非常に幅広い分野で活躍する言語です。
Excel業務を自動化するために学んだ知識を、他の様々な業務にも応用できます。
豊富なライブラリで高度な処理も簡単
Pythonには「ライブラリ」と呼ばれる、便利な機能がまとまった部品が世界中の開発者によって作られ、豊富に提供されています。
データ分析に特化したPandasや、Excelファイルを直接操作できるOpenPyXLなどを使えば、VBAでは複雑になりがちな処理も、驚くほど短いコードで実現可能です。
OSに依存しない
VBAは基本的にWindows上のExcelでしか動作しません。
一方、PythonはWindows、Mac、Linuxなど、様々なOSで動作します。
そのため、異なる環境のチームメンバーとも協力しやすいメリットがあります。
PythonでExcelを自動化するための準備
PythonでExcelを自動化するためには、まず自分のパソコンでPythonを使えるようにし、Excel操作に必要な「ライブラリ」をインストールする必要があります。
Pythonのインストール
まだPythonをインストールしていない場合は、公式サイトからインストーラーをダウンロードしましょう。
-
Python公式サイトにアクセスします。
-
「Downloads」メニューから、OS(Windows, macOSなど)に合った最新版のインストーラーをダウンロードしてください。
-
ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを進めます。
その際、「Add Python to PATH」というチェックボックスがあれば、必ずチェックを入れてください。
これにチェックを入れると、コマンドプロンプトやターミナルからPythonを簡単に実行できるようになります。
ライブラリのインストール
PythonでExcelを操作するためには、専用のライブラリをインストールする必要があります。
特に、最も代表的な以下の2つのライブラリは必ずインストールしておきましょう。
- OpenPyXL: Excelファイル(.xlsx)の読み書きを直接行うためのライブラリ。セルの書式設定など、細かい操作も可能。
- Pandas: データ分析や操作に非常に強いライブラリ。Excelファイルを表形式のデータとして読み込み、集計や加工を簡単に行うことができる。
これらのライブラリは、コマンドプロンプト(Windows)やターミナル(Mac)で、以下のコマンドを実行するだけで簡単にインストールできます。
pip install openpyxl pandas
pipはPythonのパッケージ管理ツールで、Pythonをインストールすると一緒に使えるようになります。
上記のコマンドを1行実行するだけで、2つのライブラリがまとめてインストールされます。
PythonでExcel操作を自動化する具体的な方法
準備が整ったところで、早速Pythonを使ってExcelを操作する方法を見ていきましょう。
ここでは、代表的なライブラリOpenPyXLとPandasを使った基本的な操作を紹介します。
OpenPyXLを使った基本的な操作
OpenPyXLは、セル単位での細かい操作が得意なライブラリです。
1. Excelファイルの新規作成と保存
まずは、新しいExcelファイルを作成し、簡単なテキストを書き込んで保存してみましょう。
import openpyxl
# 1. 新しいワークブック(Excelファイル)を作成
wb = openpyxl.Workbook()
# 2. アクティブなワークシートを選択
sheet = wb.active
sheet.title = "請求書"
# 3. セルA1に値を書き込む
sheet['A1'] = "株式会社ABC"
# 4. ファイルを保存
wb.save("sample.xlsx")
まず、import openpyxlで、OpenPyXLライブラリを使えるようにします。
次に、openpyxl.Workbook()で、新しいExcelファイル(ワークブック)を作成しています。
wb.activeで、最初に表示されているシート(ワークシート)を選択し、.titleでシート名を「請求書」に変更しました。
sheet['A1'] = "株式会社ABC"のように、シート['セル番地']という形で簡単にセルに値を書き込めます。
最後にwb.save("ファイル名.xlsx")で、ここまでの作業内容をファイルとして保存します。
このコードを実行すると、コードが保存されたフォルダにsample.xlsxというExcelファイルが作成され、A1セルに「株式会社ABC」と入力されているはずです。
2. 既存のExcelファイルを読み込む
次に、既存のExcelファイルを読み込んで、その内容を取得する方法です。
import openpyxl
# 既存のワークブックを読み込む
wb = openpyxl.load_workbook("sample.xlsx")
# シート名でワークシートを選択
sheet = wb["請求書"]
# セルB2の値を読み込んで表示
cell_value = sheet['B2'].value
print(f"B2セルの値: {cell_value}")
openpyxl.load_workbook("ファイル名.xlsx")を使うことで、既存のExcelファイルを読み込むことができます。
シートの選択は、wb["シート名"]のようにシート名を指定する方法が便利でしょう。
セルの値を取得するには、シート['セル番地'].valueと記述します。
'B2'のセルに何も入力されていなければ、None(何もない)という結果が返ってきます。
【応用】Pandasライブラリでデータを一括操作する
Pandasを使うと、Excelの表データをまるごと効率的に扱うことができます。
複数のデータを一気に処理したい場合に非常に強力です。
1. データを作成してExcelファイルに書き込む
Pandasを使ってデータを作成し、それを一括でExcelファイルに出力してみましょう。
import pandas as pd
# 辞書形式でデータを作成
data = {
'商品名': ['りんご', 'みかん', 'ばなな'],
'価格': [120, 80, 100],
'個数': [15, 20, 30]
}
# データフレームを作成
df = pd.DataFrame(data)
# Excelファイルとして出力(インデックスは不要なためFalseに設定)
df.to_excel("sales_data.xlsx", sheet_name="売上", index=False)
import pandas as pdは、「pandasライブラリを今後pdという名前で使います」というお決まりの宣言です。
その後、Pythonの辞書({})を使って、表形式のデータを作成しました。
pd.DataFrame(data)で、そのデータをPandasが扱えるDataFrame(データフレーム)という形式に変換しています。
データフレームは、高機能なExcelの表のようなものだと考えてください。
最後にdf.to_excel("ファイル名", ...)とするだけで、データフレームの内容がまるごとExcelファイルに出力されます。
index=Falseは、Excelに出力する際に行番号(0, 1, 2…)を入れないための設定です。
2. Excelファイルを読み込んでデータを操作する
次に、Excelファイルからデータを読み込み、簡単な集計を行ってみましょう。
import pandas as pd
# Excelファイルを読み込んでデータフレームに変換
df = pd.read_excel("sales_data.xlsx", sheet_name="売上")
# 「売上金額」の列を計算して追加
df['売上金額'] = df['価格'] * df['個数']
# 合計金額を計算して表示
total_sales = df['売上金額'].sum()
print(f"合計売上金額: {total_sales}円")
# 結果を表示
print(df)
pd.read_excel("ファイル名")で、Excelファイルのデータを一瞬でデータフレームとして読み込めます。
df['売上金額'] = df['価格'] * df['個数']のように、列同士の計算も簡単に行え、新しい列として追加できます。
df['列名'].sum()で、指定した列の合計値を簡単に計算できます。
平均値(mean())や最大値(max())なども同様に計算可能です。
実行結果は以下の通りです。
合計売上金額: 6400円
商品名 価格 個数 売上金額
0 りんご 120 15 1800
1 みかん 80 20 1600
2 ばなな 100 30 3000
このように、Pandasを使えば、データの読み込みから集計、加工までを数行のコードで実現できてしまいます。
Pythonによって自動化できるExcel操作の例
Pythonを使えば、日常の様々なExcel業務を自動化できます。
ここでは具体的な例をいくつか紹介します。
例1:請求書の自動作成
毎月発生する請求書作成業務は、自動化に最適です。
請求書のテンプレートとなるExcelファイルを用意しておき、別のファイルやデータベースにある顧客情報や請求金額をPythonで読み込み、テンプレートに自動で書き込んで毎月分の請求書を大量に生成することができます。
例2:複数ファイルからのデータ集計
各支店から送られてくる売上報告書(すべて同じフォーマットのExcelファイル)を一つにまとめる作業も自動化できます。
特定のフォルダ内にあるすべてのExcelファイルをPythonで順番に読み込み、データをPandasのデータフレームにどんどん追加していきます。
最後に、集計したデータフレームを一つの新しいExcelファイルに出力すれば、手作業でのコピー&ペーストはもう必要ありません。
例3:Webサイトの情報をExcelにまとめる
PythonはWebスクレイピングも得意です。
例えば、ECサイトから特定商品の価格情報を定期的に収集し、その結果を日付ごとにExcelファイルに記録していく、といったことが可能です。
これにより、価格の変動を自動で追いかける市場調査ツールなども作成できるでしょう。
PythonでExcelの自動化を行う際の注意点
非常に便利なPythonによるExcel自動化ですが、いくつか注意すべき点もあります。
ファイルパスの指定に注意する
プログラムからExcelファイルを読み書きする際には、そのファイルがどこにあるのかを正確に指定する「パス」の記述が重要です。
特に、プログラムの実行場所とExcelファイルの場所が違う場合は、「絶対パス」で指定するか、パスの指定方法を正しく理解しておく必要があります。
ファイルが見つからないというエラーの多くは、このパスの指定ミスが原因です。
エラー処理を組み込む
「処理対象のファイルが存在しなかった」「シート名が間違っていた」など、自動化の途中で予期せぬエラーが発生することがあります。
Pythonのtry-except構文を使ってエラー処理をあらかじめ組み込んでおけば、エラーが発生してもプログラムが突然停止するのを防ぎ、原因を記録して次の処理へ進むといった柔軟な対応が可能です。
大量データを扱う場合はPandasを検討する
数十万行といった大量のデータを扱う場合、OpenPyXLでセルを一つずつ操作すると、処理に非常に時間がかかってしまうかもしれません。
一方、Pandasは大量のデータを高速に処理できるように最適化されています。
データ量が多い場合は、Pandasを使って一括で処理する方法を検討しましょう。
初心者がPythonでのExcel自動化を効率的に学ぶには
Excelでの自動化をはじめとするPythonのスキルを効率的に習得するには、プログラミングスクールの活用が最も近道です。
スクールでスキルを高めることにより、今の仕事に活かしたり、副業として高単価な案件を受注できたりするだけでなく、Pythonエンジニアとして転職することも可能になります。
Pythonエンジニアは需要が非常に高いため、それに比例して年収も高くなる傾向にあります。
「今よりも年収を上げたい」「将来性の高い職種であるエンジニアへ転職したい」といった気持ちが強い場合は、プログラミングスクールでPythonの専門スキルを習得しつつ、ポートフォリオ支援や転職支援を受けてエンジニアへ転職する、という道を目指すのもよいでしょう。
なお、「Pythonに強く、受講生からの評判も良いプログラミングスクール」には、以下のようなところがあります。
- デイトラ
(※格安)
- キカガク
(※専門的)
- Aidemy Premium
(※受講コースが豊富)
その他、以下の記事でもPythonのおすすめスクールをまとめていますので、興味のある方は是非参考にしてください。

\ 登録・利用はすべて完全無料! /
実務未経験エンジニアでも希望の転職先を見つけやすい!!
週1~3日からできる副業案件多数!!
フリーランス案件の単価の高さは圧倒的!!




