Claude CodeでExcelレポートを自動生成する方法|openpyxlで集計・グラフ・書式設定まで一括処理
Excelレポートの作成が属人化している現場は多いです。毎週・毎月のレポート作成で、書式のコピペ、グラフの再作成、シート構成の手直しが繰り返され、担当者が変わるとフォーマットが崩れます。集計ロジック自体は単純でも、見た目の再現に時間を取られるのが実態です。
Claude Code は、openpyxl のコードを自然言語で指示して生成できるため、CSV の取り込みからセル書式、グラフ挿入、シート構成まで一括で処理できます。週次マーケレポートの自動化で Markdown 出力に触れましたが、社内共有や経営報告では Excel 形式が求められる場面も多く、その場合は openpyxl でのファイル生成が実務に合います。
本記事のポイント
- Claude Codeはopenpyxlのコードを自然言語で指示して生成できるため、セル書式、条件付き書式、グラフ挿入まで手作業なしで設定できる。
- Excel自動化の実務的な起点は、入力CSVの列定義とシート構成を先に固定することであり、集計ロジックはその後に組む方が手戻りが少ない。
- 週次レポートや月次報告書のように定型フォーマットがある業務は、テンプレートExcelへの書き込みパターンで回すとチーム展開しやすい。
導入を検討すべき判断ポイント
- 週次・月次のExcelレポートを毎回コピペとグラフ再作成で仕上げており、担当者が変わると書式が崩れる
- CSVデータはあるが、Excel上での集計・グラフ・書式設定を手動で繰り返しており、作成に1時間以上かかっている
- 経営報告や営業会議向けに「見た目の整ったExcel」が必要だが、スクリプトを書ける人がチームにいない
集計ロジックより書式・グラフ・シート構成の再現に時間がかかっているチームほど、Claude Code + openpyxl の効果が出ます。
Claude CodeでExcel操作ができる仕組み
Claude Code は Python コードを生成・実行できるため、openpyxl や xlsxwriter といった Excel 操作ライブラリを自然言語の指示で扱えます。「このCSVを読み込んで、A列にヘッダーを太字で入れ、B2:B10に棒グラフを挿入して」と伝えれば、対応する Python スクリプトが出力されます。
openpyxl は読み書き両対応で、既存 Excel の編集にも使えます。xlsxwriter は書き込み専用ですが、グラフや書式の表現力が高いのが特徴です。実務では、テンプレート Excel に書き込む場合は openpyxl、ゼロから新規生成する場合は xlsxwriter が向いています。
| 比較軸 | Claude Code + openpyxl | 手作業(Excel GUI) | Google Sheets AI |
|---|---|---|---|
| 書式設定 | コードで完全再現。毎回同じ出力 | 手動。担当者ごとにばらつく | セル単位の補助。全体制御は弱い |
| グラフ挿入 | 種類・位置・データ範囲を指定可能 | 毎回手動で範囲選択 | 自動提案あるが配置制御が限定的 |
| 複数シート処理 | ループで一括生成 | 1シートずつ手作業 | Apps Script併用が必要 |
| 再現性 | 高い。スクリプトをそのまま再実行 | 低い。属人的 | 中。シート構成変更の影響を受ける |
| 共有形式 | .xlsx で社内外に配布しやすい | .xlsx だが手作業コスト大 | リンク共有。オフラインに弱い |
Google Sheets の AI 機能はセル単位の補助には向きますが、複数シートを横断してグラフ付き Excel を毎週出すなら Claude Code の方が制御しやすくなります。
基本:CSVからExcelへの変換と書式設定
最初のステップは、入力 CSV の列定義と出力 Excel のシート構成を固定することです。集計ロジックはその後に組む方が手戻りが少なくなります。
excel-report-project/
input/
sales-data.csv # 営業実績CSV
pipeline.csv # パイプラインCSV
templates/
report-template.xlsx # 書式付きテンプレート(任意)
rules/
report-rules.md # 列マッピング、書式ルール
output/
weekly-sales-report.xlsx
Claude Code への指示例は次のとおりです。
# Claude Code への指示例
input/sales-data.csv を読み込み、output/weekly-sales-report.xlsx へ出力して。
- シート名は「営業実績」
- 1行目はヘッダー。太字、背景色 #4472C4、文字色 白
- A列〜F列の幅を自動調整
- 金額列(D列)は3桁カンマ区切り
- 合計行を最終行の下に追加し、SUM関数を入れる
このレベルの指示で、openpyxl のコードが生成されます。セル幅の自動調整、条件付き書式(たとえば達成率80%未満を赤にする)、罫線の設定まで自然言語で追加指示できます。
応用:複数シート集計とグラフ挿入
実務では、月別や担当者別に複数シートを持つ Excel が求められます。Claude Code なら、CSV のカテゴリ列でグループ化し、シートを自動分割できます。
# 複数シート + グラフの指示例
input/sales-data.csv を担当者別にシート分割して output/monthly-report.xlsx へ出力。
- 各シートに担当者名をシート名として設定
- 各シートの最終行に合計を追加
- 「サマリー」シートを先頭に作り、担当者別の合計を一覧化
- サマリーシートに棒グラフを挿入(担当者 × 売上合計)
- グラフの位置は H2 セル、サイズは幅15cm × 高さ10cm
openpyxl の BarChart、LineChart、PieChart などを使い分けることで、棒グラフ、折れ線グラフ、円グラフのいずれも挿入できます。グラフのタイトル、軸ラベル、凡例の位置もコードで制御できるため、毎回同じ見た目で出力されます。
ポイントは、グラフのデータ範囲をシート上のセル参照で渡すことです。Claude Code に「B2:B10 を系列データ、A2:A10 をカテゴリに使って」と伝えれば、Reference オブジェクトの生成まで含めてコードが出ます。
実務例:週次営業レポートの自動生成
週次マーケレポートでは Markdown 出力を扱いましたが、営業チームや経営層への共有では Excel 形式が求められるケースが多いです。以下は週次営業レポートの実務フローです。
| ステップ | 作業内容 | Claude Codeの役割 |
|---|---|---|
| 1. データ取得 | SFA / CRM から CSV エクスポート | 対象外(人が実行) |
| 2. 前処理 | 列名の統一、欠損値の補完 | CSV読み込み時に自動処理 |
| 3. 集計 | 担当者別、ステージ別の件数・金額 | pandas + openpyxl で集計 |
| 4. 書式設定 | ヘッダー、罫線、条件付き書式 | openpyxl で一括設定 |
| 5. グラフ挿入 | パイプライン推移、達成率 | BarChart / LineChart を挿入 |
| 6. 出力 | .xlsx として保存 | output/ へ保存 |
毎週同じスクリプトを実行するだけで、同じフォーマットの Excel が出力されます。担当者が変わっても書式が崩れず、前週との比較も同じ粒度で残ります。テンプレート Excel に書き込むパターンにしておけば、会社のロゴやフッターもそのまま維持できます。
Google Sheetsとの使い分け
Excel と Google Sheets のどちらで出すかは、配布先と編集権限で決まります。
| 判断軸 | Excel(openpyxl) | Google Sheets |
|---|---|---|
| 配布形式 | .xlsx ファイル。メール添付、社外共有に強い | URL共有。社内リアルタイム編集に強い |
| 書式制御 | 細かい制御が可能。印刷レイアウトも対応 | 制限あり。印刷向きではない |
| グラフ | openpyxl で種類・配置を完全制御 | 自動提案あり。細かい制御はApps Script |
| マクロ | VBAマクロ対応(.xlsm) | Apps Script(別言語) |
| オフライン | 対応 | 制限あり |
Google Sheets でのデータ整備は Claude Code でリード情報を Google Sheets 上でクリーニングする方法、Sheets の AI 機能については Google Sheets AI(Gemini)の活用を参照してください。経営報告書や社外向け資料など「見た目の固定」が必要な場面では Excel、チーム内のリアルタイム共有が優先なら Google Sheets という使い分けが実務的です。
導入後に見るべきKPI
| 段階 | 先に見る数字 | 見落としやすい論点 |
|---|---|---|
| 初期導入 | レポート作成時間、手戻り回数 | 書式だけ整って中身の集計定義が曖昧 |
| 運用定着 | 週次提出率、フォーマット逸脱率 | スクリプトが動いていても誰も中身を見ていない |
| 改善フェーズ | レポート起点の意思決定数、会議時間の変化 | レポートの見た目が目的化し、アクションにつながっていない |
KPI 設計の基本は マーケティングKPI の記事で整理しています。レポート自動化の目的は「作る時間を減らす」だけでなく、「毎回同じ粒度で判断材料を出す」ことです。
よくある質問
xlsxwriterとの違いは?
openpyxl は既存 Excel の読み込み・編集ができますが、xlsxwriter は新規作成専用です。テンプレート Excel に書き込む運用なら openpyxl 一択です。ゼロから高品質なグラフを生成する場合は xlsxwriter の方が表現力が高い場面もあります。Claude Code はどちらのコードも生成できるので、用途に合わせて使い分けられます。
マクロ付きExcelも扱える?
openpyxl は .xlsm(マクロ有効ブック)の読み書きに対応しています。ただし、VBA マクロのコード自体を Claude Code で生成・編集するのは openpyxl の範囲外です。マクロを保持したままデータやシートを更新する用途であれば問題なく動きます。
グラフの種類はどこまで対応?
openpyxl は棒グラフ(BarChart)、折れ線(LineChart)、円グラフ(PieChart)、散布図(ScatterChart)、面グラフ(AreaChart)などに対応しています。複合グラフ(棒 + 折れ線)も作成可能です。Claude Code に「売上を棒グラフ、達成率を折れ線で重ねて」と指示すれば、対応するコードが出力されます。
既存Excelの読み込みもできる?
openpyxl の最大の強みが既存ファイルの読み書きです。テンプレート Excel を読み込み、特定のセル範囲にデータを流し込み、保存するパターンが実務では最も多いです。会社のロゴ、ヘッダー・フッター、印刷設定を維持したまま中身だけ更新できます。
公開情報と責任主体
本記事は 2026年2月6日時点の運用前提で、ファネルAi編集部が執筆し、ファネルAi監修チームがレビューしています。更新方針は レビュー方針 に沿います。ここで示すファイル構成やコード指示例は運用設計を理解するための例であり、実際の導入では自社のCSV列定義、シート構成、配布先に合わせて調整してください。
関連ページと関連記事
Excelレポートの自動化は、データの前処理、レポート設計、営業・経営への接続まで並べて見ると全体像が掴みやすくなります。
- Claude Codeで週次マーケレポートを自動化する方法:Markdown出力での週次レポート自動化を整理しています。Excel出力と使い分ける判断材料になります。
- Claude CodeでGoogle Sheetsのリード情報をクリーニングする方法:Sheets上でのデータ整備フローを確認できます。
- Google SheetsのAI機能(Gemini)でできること・できないこと:Sheets側のAI機能との使い分けを整理できます。
- Claude Codeでパワポ資料を自動生成する方法:Excel同様、python-pptxを使ったOffice自動化の設計パターンを確認できます。
- Claude Codeで提案書・見積書を一括生成する方法:テンプレートへの差し込み生成パターンを整理しています。
- マーケティングKPIとは?見るべき指標と運用設計を整理する:レポートで追う指標の前提を揃えられます。
Excelレポート自動化をPoCから固めたい場合
記事で見えてきた自動化の論点を、PoCの進め方や実装範囲まで含めて具体化したい場合は、超速AI PoC も確認しておくと判断しやすくなります。
相談前に整理しておくと早い3項目
- 自動化したいExcelレポートの現物と、入力元CSV・データソースの一覧を用意する
- 出力Excelのシート構成、グラフの種類・配置、書式ルールを現行レポートから洗い出す
- 配布先(社内チーム、経営層、社外)と更新頻度(週次・月次)を決めておく
この前提があると、PoCで作るべきスクリプトの範囲とテンプレート設計を短時間で固められます。