Excel VBAをAIに作ってもらうとき、最初に必要なのはコードの知識ではありません。
もちろん、VBAの意味をある程度読めたほうが安心ではあります。 でも、私のような非エンジニアがAIに相談しながら作る場合、もっと手前に大事なことがあります。
何を実現したいのかを、言葉にすることです。
「VBA作って」
「いい感じに自動化して」
「この作業を楽にして」
これでもAIは何かしら作ってくれます。 でも、現場で本当に使えるものになるかは、別の話です。
AIにうまく作ってもらえるかどうかは、コード力ではなく、こちらがどれだけ正確に伝えられるかで決まります。
この記事では、現場出身の非エンジニア会社員である私が、ChatGPTやClaudeにExcel VBAを組んでもらう前に整理していることを記録します。
AIにVBAを頼む前に整理すること
悪い頼み方と良い頼み方の違い
会社情報や実データを守りながら相談する考え方
AIとすり合わせながら作る流れ
VBAそのものの書き方ではなく、AIに頼む前の考え方の話です。
AIに頼む前に必要なのは、コード力より伝える力
私はエンジニアではありません。 VBAのコードも読みません。
その代わり、やりたいことをAIに伝えて、出てきた結果を見て判断する。 おかしければ「ここが違う」と伝えて直してもらう。 この使い方で、現場の集計作業をいくつも楽にしてきました。
だからこそ言えるのですが、勝負はAIに頼む前に半分決まっています。
AIにVBAを組んでもらう作業は、コードを書く作業というより、AIと一緒に要件をすり合わせる作業です。
つまり、AIに投げる前に、
- 何を実現したいのか
- 今どこで困っているのか
- 何を入力するのか
- どんな結果がほしいのか
- 例外や注意点は何か
を言葉にしておく必要があります。
AIに頼む前に整理する5つのこと
整理するのは5つです。
ただの相談メモではありません。 AIがVBAの処理を設計するための材料です。

1. 何を実現したいか
最初に決めるのは、作りたいコードではありません。 VBAを動かしたあと、どんな状態になれば成功なのかです。
- 複数のExcelファイルを1つにまとめたい
- 指定した列だけを抜き出したい
- 日付ごとに数量を集計したい
- 条件に合う行だけを別シートに出したい
- 入力ミスがありそうな行を色で分かるようにしたい
こういう「完成状態」があると、AIは処理の方向を決められます。
「とりあえず自動化したい」では、コードとして何を作ればいいかが決まりません。 VBAは結局、「何を受け取って、どう処理して、何を返すのか」の世界だからです。
2. 今どこで困っているか
次に、現状の困りごとです。
これはAIに気持ちを分かってもらうためではなく、どの処理をVBAに任せるかを決めるための情報です。
- 毎回同じ列をコピーしている
- ファイル数が多くて確認に時間がかかる
- 人によって入力の仕方が違う
- 集計結果を手で転記している
- どこでミスが起きたか分かりにくい
困りごとが具体的だと、AIは「繰り返し処理」「ファイルの読み込み」「集計」「チェック」と、必要な処理に翻訳してくれます。
3. 入力は何か
VBAの自動化では、入力がかなり大事です。
- どのブックを対象にするのか
- どのシートを読むのか
- 見出し行は何行目か
- 日付は何列目か
- 集計したい数値はどの列か
ここが分からないと、AIはコードの骨組みを作れません。
ただし、ひとつ注意があります。
注意:実社名、顧客名、品番、個人名、実ファイル、画面キャプチャなどは、そのままAIに渡さない方針です。
必要な場合は、ダミー化した表や架空データに置き換えて相談します。
4. 出力はどうしたいか
入力と同じくらい大事なのが、出力です。
出力は、VBAの処理結果そのものです。
「A列の日付ごとに集計して、結果を新しいシートに出したい」
と書けば、AIは「日付でグループ化」「数量を合計」「新しいシートに書き出し」と処理を組み立てられます。
「まとめてほしい」だけだと、どんな形で出せばいいのかが宙に浮いたままです。
5. 例外や注意点は何か
最後に、例外です。 そして現場のデータは、きれいだったためしがありません。
- 空欄がある
- 日付の形式が混ざっている
- 同じ名前のファイルがある
- 列の位置が変わることがある
- シート名が毎回違う
- 処理したくない行がある
こういう条件は、VBAの分岐処理やエラー対策に直結します。
空欄を無視するのか、エラーとして知らせるのか。 日付の形式が違ったら止めるのか、変換するのか。 列の位置が変わる可能性があるなら、列番号ではなく見出し名で探すのか。
ここを先に出しておくと、AIが作るコードの精度が目に見えて上がります。
完璧に整理できなくても大丈夫です。 分かっている範囲で書くだけでも違います。
悪い頼み方と良い頼み方

悪い頼み方は、目的があいまいです。
「VBA作って」
「いい感じにして」
「自動化して」
これでもAIは答えてくれます。 でも、こちらの現場の事情までは知りようがありません。
AIは便利ですが、こちらが何をしたいのかを伝えなければ、現場に合ったものにはなりにくいです。
良い頼み方は、目的と条件を共有します。
Excelで毎回手作業で集計している作業があります。
A列に日付、B列に担当者、C列に数量が入っています。
日付ごとに数量を合計して、新しいシートに一覧で出したいです。
空欄の行は無視してください。
まずこの内容を理解しているか確認してください。
違いは一目瞭然だと思います。 丸投げより、目的と条件の共有です。
AIに渡してよい情報と、渡さない情報
情報の出し方にも、線を引いています。

渡してよい情報:
- ダミー化した表
- 架空データ
- 一般化した業務説明
- サンプルの列名
- テンプレート
渡さない情報:
- 実社名
- 顧客名
- 品番
- 個人名
- 実ファイル
- 画面キャプチャ
- 社内システム名
会社情報はそのまま出さず、一般化して相談する。 これを前提にしています。
「品番001」「顧客A」「担当者A」に置き換えても、処理の考え方は何の問題もなく相談できます。 実名や実データを入れたくなったら、「それは本当に必要か?」と一度疑ってみてください。だいたい、必要ありません。
AIとすり合わせながら作る
AIに頼む前の流れ
いきなり細かいコードを書かせるより、大きなテーマからすり合わせます。

私の流れはこうです。
- 大きなテーマを決める
- 何を実現したいか整理する
- 要件を言葉にする
- 仕様を確認する
- 小さく作って試す
- 理解しているか確認しながら直す
特に効くのが、途中でAIに確認することです。
「ここまでの内容を理解していますか?」
「あなたの理解を整理してください」
「作る前に、処理の流れを説明してください」
こう聞くと、AIの頭の中が見えます。 そして、けっこうな確率でズレています。作る前に見つかれば、それは事故ではなく確認です。
AI開発で大事なのは、丸投げではなく、すり合わせです。
小さく作って、動かして、直す
AIに頼むと、最初から全部入りを作りたくなります。 私もやりました。そして、どこで間違ったのか分からなくなりました。
まずは小さく作る。これに尽きます。
- まず1つのシートだけ処理する
- まず指定した列だけ抜き出す
- まず10行だけで試す
- 保存や印刷は後回しにする
「全部入りで作って、あとから直そう」より、「小さく作って、動かして、直す」。 非エンジニアには、こちらのほうが圧倒的に進めやすいです。
コードは見なくても、AIは使える
私はVBAのコードを読みません。 読めないというより、そこは私の役割ではないと割り切っています。
私がやるのは、何を実現したいかを言葉にして、AIに伝えること。 動かしてみて、期待通りの結果が出るか確認すること。 おかしければ「ここが違う」と伝えて直してもらうこと。
コードを読む力ではなく、結果を見て判断する力と、やりたいことを伝える力で十分AIは使えます。
ただし、これだけは守っています。
AIが組んだVBAをそのまま本番データに使うのは避けた方がいいです。まずはテスト用のデータで試して、期待通りの結果が出るか確認してから使います。
現場で使うものは、「動けばOK」ではありません。 結果がおかしいまま進めると、あとから戻すほうがよほど大変です。
まとめ:AIに頼む前に、言葉で整理する
ChatGPTやClaudeにExcel VBAを組んでもらうのは、もう特別なことではありません。
でも、うまく使えるかどうかを分けるのはコード力ではなく、
- 何を実現したいのか
- 今どこで困っているのか
- 入力は何か
- 出力はどうしたいのか
- 例外や注意点は何か
を言葉にする力です。
- AIにVBAを頼む前に、目的と条件を整理する
- 「VBA作って」ではなく、現状・入力・出力・例外を伝える
- 会社情報や実データはそのまま渡さない
- AIとは丸投げではなく、すり合わせながら進める
- 小さく作って、動かして、直す
AIをうまく使うのに必要なのは、プログラミング力より国語力。
最初にこれに気づいたとき、正直ちょっと拍子抜けしました。 でも、現場出身の非エンジニアにとって、これほど都合のいい話もないと思っています。