職種別AI仕事術

購買・調達のExcel作業をAIで自動化する方法

購買・調達のExcel作業をAIで自動化する方法

この記事の要点

購買・調達担当者が発注管理・見積比較・コスト集計などのExcel作業をAIで自動化する具体的な方法。マクロ生成から関数作成まで実務向けに解説。

結論

購買・調達部門のExcel業務は毎月同じ作業の繰り返しが多い。発注データの月次集計、複数シートの統合、見積書フォーマットへの転記——これらをAIに頼めば、「何が必要か」を伝えるだけでVBA マクロや関数を生成してくれる。コードが書けない担当者でも、AIと会話しながら自動化を進められる。


どのAIツールを使うか

Claude

Excelの関数・VBAマクロの生成精度が高く、「このシートでやりたいこと」を日本語で説明するだけで動くコードを返してくれる。修正のやりとりも自然言語でできる。

ChatGPT

GPT-4oもVBA・Excel関数の生成に対応している。Advanced Data Analysis(ChatGPT Plus)を使うと、Excelファイルをアップロードして直接操作させることもできる。

GitHub Copilot

VBAを自分で書く場合、Copilotがコード補完してくれる。VBAの基礎知識がある担当者には補助ツールとして効果的だが、ゼロから自動化を始める場合はClaude・ChatGPTの方が取り組みやすい。


手順:ExcelのVBAマクロをAIに作らせる

ステップ1:シートの構成を説明する

AIが正確なコードを出すためには、シートの列構成を伝えることが重要だ。実際のヘッダー行を貼り付けるのが最も確実だ。

Excelのマクロを作ってください。

シートの構成:
シート名「発注履歴」
A列:発注日(日付形式 YYYY/MM/DD)
B列:品目コード(英数字)
C列:品目名(テキスト)
D列:取引先名(テキスト)
E列:発注数量(数値)
F列:単価(数値、円)
G列:発注金額(数値、円)
H列:納品ステータス(「未」「一部」「完了」のいずれか)

やりたいこと:
ボタンを押すと、H列が「未」または「一部」の行だけを抽出し、
新しいシート「未完了発注」に貼り付けるマクロを作成してください。
既存の「未完了発注」シートがある場合は上書きしてください。

ステップ2:受け取ったコードをExcelに貼り付ける

AIが出力したVBAコードを、ExcelのALT+F11でVBAエディタを開き、「挿入」→「標準モジュール」に貼り付ける。その後ALT+F8でマクロを実行する。

ステップ3:エラーが出たらエラー文をそのままAIに渡す

マクロが動かない場合は、エラーのダイアログに表示されたメッセージをそのままコピーしてAIに渡す。

先ほど作ってもらったマクロを実行したところ、以下のエラーが表示されました。
修正してください。

エラーメッセージ:
「実行時エラー '1004': アプリケーション定義またはオブジェクト定義のエラーです。」

エラーが発生した際の状況:
- 「未完了発注」シートはすでに存在しています
- データは200行あります

ステップ4:複数シートを統合するマクロを作らせる

月別にシートが分かれている発注データを一枚に統合する作業は、繰り返し発生する典型的な作業だ。

以下の構成のExcelファイルに対するマクロを作ってください。

構成:
- ファイルには「2025年4月」「2025年5月」…「2026年3月」という12枚のシートがある
- 各シートの列構成は同じ(A列:発注日、B列:品目コード、C列:取引先名、D列:発注金額)
- 1行目はヘッダー行

やりたいこと:
全シートのデータをヘッダーなしで「年間集計」という新しいシートに縦方向に結合してください。
結合後、A列(発注日)で昇順ソートしてください。
「年間集計」シートが既存の場合は上書きしてください。

購買・調達での具体的な活用例

事例1:見積比較シートの自動転記マクロ

取引先から届く見積書のデータ(品目・数量・単価・合計)を比較シートに転記する作業が毎月発生していた。各社の見積データが同じ列構成で保存されているという前提で、AIにマクロを作らせることで転記ミスをゼロにしながら作業時間を5分以内に短縮した。

以下のマクロを作ってください。

シート「A社見積」「B社見積」「C社見積」のB列:品目名、C列:数量、D列:単価
をシート「比較表」のA列に品目名、B列にA社単価、C列にB社単価、D列にC社単価の形式で統合してください。
品目名で縦にマッチングしてください。
各社に同じ品目がない場合は空白にしてください。

事例2:発注残管理の自動化

発注済みで未納品のアイテムを毎週月曜日にリスト化する業務があった。AIに「発注日から30日以上経過しているが納品完了になっていない行を抽出するマクロ」を作らせ、月曜朝に実行するだけの運用に変えた。従来は目視でフィルタリングしていた作業が1クリックで完了するようになった。


よく使うExcel関数をAIに作らせる

XLOOKUP(品目コードから取引先を引く)

以下のExcel関数を作ってください。

シート「品目マスタ」のA列に品目コード、B列に取引先名があります。
シート「発注データ」のB列の品目コードを検索キーとして、
「品目マスタ」からC列に取引先名を自動表示するXLOOKUP関数を作成してください。
品目コードが見つからない場合は「コード未登録」と表示してください。

SUMIFS(条件付き集計)

以下の集計関数を作ってください。

発注データシートのG列(発注金額)を、
D列(取引先名)が「AA商会」かつ
A列(発注日)が2025年4月1日から2025年6月30日の範囲内
の条件で合計するSUMIFS関数を書いてください。

うまくいかない場合の対処法

マクロがセキュリティでブロックされる

Excelのマクロはセキュリティ設定によって無効化されていることがある。「ファイル」→「オプション」→「トラストセンター」→「マクロの設定」で「すべてのマクロを有効にする」に変更する(社内のセキュリティポリシーを確認してから行う)。

シート名や列番号がAIの想定と違う

コードを実行してもうまく動かない場合、AIが想定したシート名や列の番号が実際と異なることが多い。「Sheet1」「A列」などの具体的な名称をコードに反映しているか確認し、ずれがあれば「シート名が『発注履歴2025』です、修正してください」と再依頼する。

マクロが遅い・フリーズする

数万行のデータを処理するマクロは処理速度が問題になることがある。「画面更新を停止して高速化するオプションを追加してください(Application.ScreenUpdating = False)」とAIに追記依頼すると改善することが多い。

関数がエラー値を返す

#VALUE! #N/A などのエラーが出た場合、エラーのセルと関数の内容をAIに貼り付けて「この関数のエラーの原因を教えてください」と確認する。データ型の不一致(数値と文字列の混在)が原因のことが多い。


Excelマクロ活用の注意点

AIが生成したVBAコードは動作確認してから本番データに適用する。テスト用にバックアップコピーを作ってからマクロを実行する習慣をつけておくと安心だ。また、業務で使い続けるマクロは担当者以外でも理解できるようにコード内にコメントを入れておくとよい。「このマクロに日本語のコメントを追加してください」とAIに依頼すれば対応してくれる。


関連記事

よくある質問

ExcelのVBAマクロをAIに作ってもらうとき、どの程度説明すればよいですか?

シートの列構成、何をしたいか、どんな形式で出力したいかを説明すれば十分です。実際のシートのヘッダー行をコピーして貼り付けると、AIが列名を正確に参照したコードを生成してくれます。

AIが作ったマクロが動かない場合はどうしますか?

エラーメッセージをそのままAIに貼り付けて「修正してください」と依頼してください。エラーの原因を説明しながら修正したコードを返してくれます。

Excel関数とVBAマクロはどちらをAIに作らせるべきですか?

定期的に繰り返す定型作業(データ転記、書式統一など)はVBAマクロが向いています。集計や検索など数値処理はSUMIFS・XLOOKUP等の関数で対応できます。どちらが適切かもAIに相談できます。

Google スプレッドシートでも使えますか?

Google スプレッドシートにはGASというスクリプト言語があります。AIにGAS対応で作成するよう指示すれば、スプレッドシート向けのコードを生成してくれます。