ClaudeCodeでExcel自動化を実現する方法【作業時間を1/10に】
毎月の集計、コピペ作業、関数の入れ直し、フォーマット統一……Excelの「単純作業」に時間を奪われていませんか。ClaudeCodeを使えば、これらの作業の多くを「数行のプロンプト」と「Pythonスクリプト」で自動化できます。本記事では、非エンジニアの方でも実践できるExcel自動化の方法を、環境構築から実例まで丁寧に解説します。openpyxlやpandasといった定番ライブラリの使いどころ、複数ファイルを一括で処理するバッチ処理、グラフを自動生成する方法、そして実際に「作業時間が1/10になった事例」までを紹介します。読み終わるころには、あなたも「Excel作業はAIに任せる」が普通になっているはずです。
結論:ExcelはAI×Pythonで「ルーチン作業ゼロ」にできる
結論として、毎月や毎週繰り返している定型のExcel作業は、ClaudeCodeとPythonの組み合わせでほぼゼロ秒に近い速さに圧縮できます。具体的には、PythonのライブラリopenpyxlやpandasがExcelファイルを直接読み書きでき、ClaudeCodeはあなたが「やりたいこと」を日本語で伝えるだけで、それを実現するスクリプトを書いてくれます。一度作ったスクリプトはダブルクリックひとつで何度でも動かせるので、「2時間かかっていた集計が10秒」「3日かかった月次レポートが30分」といった劇的な短縮が現実に起こります。さらに重要なのは、人為的なコピペミス、関数の入れ忘れ、フォーマットのズレといった「人間の限界によるエラー」がなくなる点です。本記事の手順をなぞれば、初日から1つの作業を自動化でき、習慣化すれば月に数十時間の余裕が生まれます。ただし、機密情報を含むファイルを扱う場合は、ローカル環境で完結するように注意してください。
なぜExcel自動化にClaudeCodeとPythonなのか
Excelには「マクロ(VBA)」という標準の自動化機能があります。それでも本記事でPythonとClaudeCodeをすすめるのには理由があります。第一に、PythonはVBAより圧倒的に学習リソースが多く、ClaudeCodeも非常に正確なコードを書けます。第二に、Pythonは複数ファイルの一括処理、Webからのデータ取得、PDFや画像の処理など「Excelの外」の作業もスムーズにつなげられます。第三に、PythonはMacでもWindowsでも動くので、PCを変えても同じスクリプトが使えます。
VBAは「Excelの中でExcelを操作する」のに対し、PythonとopenpyxlやpandasはExcelを開かずに直接ファイルを読み書きします。そのため処理が高速で、何百ものファイルを順に開閉する必要もありません。月初の数十分が一瞬になる体験は、一度味わうと戻れません。
環境構築:PythonとopenpyxlとClaudeCode
まずは環境を整えます。すでにPythonがインストールされている場合は飛ばして構いません。次のようにClaudeCodeに頼みましょう。
私のMacにPythonをインストールして、Excel自動化に使うopenpyxlとpandasを入れたい。
仮想環境(venv)も作って、有効化のコマンドまで案内してほしい。
ClaudeCodeはOSを確認した上で、brew install pythonやpython -m venv venv、pip install openpyxl pandasといったコマンドを順序立てて教えてくれます。Windowsの場合も「私のWindowsにPythonをインストールしたい」と頼めば、Microsoft Storeからのインストール方法を教えてくれます。
仮想環境を有効にするのは、プロジェクトごとにライブラリを分けて管理するためです。難しく感じるかもしれませんが、ClaudeCodeに「venvってなぜ必要?」と聞けば、すぐに腹落ちする説明をしてくれます。
実例1:売上データを自動で集計する
最初の例として、「毎月の売上データを月別・商品別に集計する」スクリプトを作ってみましょう。手元にsales.xlsxというファイルがあり、A列が日付、B列が商品名、C列が金額だとします。
ClaudeCodeに次のように頼みます。
カレントディレクトリにあるsales.xlsxを読み込んで、月別・商品別の売上合計を
新しいシート「集計」に出力するPythonスクリプトを書いて。
1行目は日付・商品名・金額のヘッダー。openpyxlではなくpandasを使って、
集計結果はピボットテーブル形式(行=月、列=商品名、値=合計金額)にしたい。
スクリプト名はsales_summary.py。
ClaudeCodeは次のようなスクリプトを書いてくれます。
import pandas as pd
from openpyxl import load_workbook
INPUT = "sales.xlsx"
df = pd.read_excel(INPUT, sheet_name=0)
df["年月"] = pd.to_datetime(df["日付"]).dt.strftime("%Y-%m")
pivot = df.pivot_table(index="年月", columns="商品名",
values="金額", aggfunc="sum", fill_value=0)
with pd.ExcelWriter(INPUT, engine="openpyxl", mode="a",
if_sheet_exists="replace") as writer:
pivot.to_excel(writer, sheet_name="集計")
print("集計を書き出しました。")
python sales_summary.pyを叩けば、sales.xlsxに「集計」シートが追加されます。手作業で関数を入れていた時間がほぼゼロになります。
実例2:複数ファイルを一括で処理する
次は、毎月送られてくる支店別のExcelファイルを統合する例です。支店ごとにファイルが分かれており、フォーマットは同じだとします。
「branch_data」フォルダの中にある全てのxlsxファイルを読み込み、
1つのファイル「all_branches.xlsx」に統合して。
シート名は元のファイル名から拡張子を除いたものを使い、
最後に全支店を縦結合した「統合」シートも作って。
ClaudeCodeはpathlibとpandasを組み合わせ、次のようなスクリプトを生成します。
from pathlib import Path
import pandas as pd
folder = Path("branch_data")
files = sorted(folder.glob("*.xlsx"))
all_dfs = []
with pd.ExcelWriter("all_branches.xlsx", engine="openpyxl") as writer:
for f in files:
df = pd.read_excel(f)
df["支店"] = f.stem
df.to_excel(writer, sheet_name=f.stem[:31], index=False)
all_dfs.append(df)
pd.concat(all_dfs, ignore_index=True).to_excel(writer,
sheet_name="統合", index=False)
print(f"{len(files)}ファイルを統合しました。")
これで100支店あっても一瞬で統合完了。フォーマットの違いがあれば、その情報をClaudeCodeに伝えれば、正規化処理まで足してくれます。
実例3:グラフを自動生成する
数字だけのレポートでは伝わりにくいですよね。openpyxlにはグラフを作る機能もあります。
sales.xlsxの「集計」シートを基に、商品別の月次推移を折れ線グラフで作りたい。
グラフは新しいシート「グラフ」に貼り付け、タイトルを「商品別売上推移」に。
横軸は月、縦軸は売上金額にして。
ClaudeCodeはopenpyxl.chart.LineChartを使ったコードを書きます。一度ひな型ができれば、毎月同じスクリプトを回すだけでグラフ付きレポートが完成します。
実例4:フォーマット統一とセル装飾
人手で作ったExcelファイルは、列幅、フォント、罫線、色がバラバラになりがちです。納品物としての統一感を出すには、装飾の自動化も有効です。
report.xlsxの全シートに対して、以下の整形をしてほしい。
- 1行目を太字、背景色を薄い水色(#DCEEFB)にする
- 列幅を内容に応じて自動調整
- 全セルに薄いグレーの罫線を引く
- 数値列はカンマ区切り、円記号付き
処理後は同じファイル名で上書き保存して。
ClaudeCodeはopenpyxl.stylesを駆使して、見栄えの良いExcelに整えてくれます。手作業で1ファイル30分かかっていた整形が、数秒で終わります。
実例5:定期実行で「気づいたら終わっている」状態に
スクリプトができたら、それを定期実行する仕組みを作りましょう。Macならlaunchdやcron、Windowsなら「タスクスケジューラ」が使えます。
sales_summary.pyを毎月1日の朝9時に自動実行したい。
私のMacで動くようにcronの設定方法を教えて。実行ログをlogフォルダに残すようにもしたい。
ClaudeCodeはcrontab -eの編集方法と、ログを残す書き方を教えてくれます。これで、月初に何もしなくてもデスクトップに最新の集計ファイルがあるという状態が作れます。
実例6:メールやSlackと連携する
Excel自動化の延長として、結果をメールやSlackに自動送信する仕組みも作れます。たとえば「集計が終わったらSlackに通知」「PDF化してメール添付」など。
sales_summary.pyの最後に、集計が完了したことをSlackの指定チャンネルに
通知する処理を追加して。Webhook URLは環境変数SLACK_WEBHOOK_URLから読み込む形にして。
このとき重要なのが、WebhookやAPIキーをコードに直接書かないことです。ClaudeCodeに頼むときも「環境変数から読み込む形で」と必ず指定しましょう。これは情報漏洩を防ぐ基本中の基本です。
実例7:Excel自動化の業務効率化事例
実際の現場ではどれほどの効果が出るのでしょうか。よく聞く事例を3つ紹介します。
ある経理部門では、月次の支店別経費レポートを手作業で作っており、月末に2人が3日かけていました。これをClaudeCode+Pythonで自動化したところ、月初にスクリプトを1回実行するだけで完了し、所要時間は30秒に短縮。年間で約144時間の作業削減になりました。
ある営業部門では、毎週月曜の朝に提出する「先週の受注一覧」が、担当者ごとにフォーマットがバラバラで、課長が30分かけて整形していました。フォーマット統一スクリプトを作ったところ、月曜の朝の負担が消えました。
あるバックオフィスでは、新規顧客の登録情報を社内システムからExcelに転記する作業に1日2時間かけていました。CSV取り込みと整形を自動化することで、30秒に短縮されました。
ClaudeCode×Excel自動化のコツ:プロンプトの書き方
自動化を成功させるには、ClaudeCodeへの指示の出し方が肝心です。コツは3つ。第一に、入力ファイルの構造を具体的に伝えること(A列に日付、B列に金額……)。第二に、出力の形を明確にすること(新シートに、ピボット形式で、など)。第三に、「サンプルデータを5行分作って動作確認もして」と頼むと、ミスを早期に発見できます。
sales.xlsxは1行目がヘッダー、A列=日付(YYYY-MM-DD)、B列=商品名(文字列)、
C列=金額(数値)。10行のサンプルデータを生成し、それで動作確認した上で
本番のスクリプトを完成させて。
このように頼めば、ClaudeCodeはダミーデータでテストし、結果を見せてくれます。
FAQ:Excel自動化でよくある質問
Q1. ExcelのマクロとPythonどちらがいいですか。 A. 「Excel内で完結する単純な操作」ならVBA、「複数ファイル処理・他システム連携・正確性重視」ならPythonがおすすめです。本記事の用途ではPythonが圧勝です。
Q2. xlsx以外(xlsやxlsm)でも動きますか。
A. 古いxls形式はxlrd、xlsm(マクロ付き)はopenpyxlで読めます。ClaudeCodeに「xlsmから読み込みたい」と伝えれば適切に対応してくれます。
Q3. 機密データを含むExcelを扱っても大丈夫ですか。 A. ClaudeCodeはコード生成のためにファイルの中身を読むので、機密情報を含む場合は仮データで動作確認し、本番データは社内ローカル環境でだけ実行するのが安全です。
Q4. Excelが開いている状態でスクリプトを動かせますか。 A. ファイルロックの関係で、対象ファイルは閉じてから実行するのが基本です。
Q5. グラフのデザインはどこまで細かくできますか。 A. openpyxlでも色、軸ラベル、凡例の配置などは指定できますが、限界もあります。複雑なデザインはmatplotlibで画像を作って貼り付けるのも手です。
Q6. スクリプトをチームに配布するには? A. PyInstallerでexe化する、社内サーバーに置いて全員から呼び出す、などの方法があります。エンジニアに相談すると確実です。
Q7. 失敗したら元のファイルが壊れませんか。 A. 必ず処理の最初にバックアップを作る癖をつけましょう。「処理前にinput.xlsxをbackupフォルダにコピーして」と一言添えるだけで、ClaudeCodeがその処理を入れてくれます。
まとめ
ClaudeCodeとPythonを使ったExcel自動化は、非エンジニアでも今日から始められる実用的な業務改善です。最初は身近な「毎月やっている小さな作業」から始め、慣れてきたら複数ファイルの統合や定期実行、外部連携へとステップアップしていきましょう。一度仕組みを作ってしまえば、未来の自分の時間を毎月買い戻せるようなものです。空いた時間を使って、より付加価値の高い仕事に取り組めるはずです。機密データを扱う場合の安全対策だけは忘れずに、AIと一緒にルーチン作業から卒業しましょう。