Excel VBAをAIに作ってもらうとき、最初に必要なのはコードの知識ではありません。

もちろん、VBAの意味をある程度読めたほうが安心ではあります。 でも、私のような非エンジニアがAIに相談しながら作る場合、もっと手前に大事なことがあります。

何を実現したいのかを、言葉にすることです。

「VBA作って」

「いい感じに自動化して」

「この作業を楽にして」

これでもAIは何かしら作ってくれます。 でも、現場で本当に使えるものになるかは、別の話です。

AIにうまく作ってもらえるかどうかは、コード力ではなく、こちらがどれだけ正確に伝えられるかで決まります。

この記事では、現場出身の非エンジニア会社員である私が、ChatGPTやClaudeにExcel VBAを組んでもらう前に整理していることを記録します。

この記事で分かること
1

AIにVBAを頼む前に整理すること

2

悪い頼み方と良い頼み方の違い

3

会社情報や実データを守りながら相談する考え方

4

AIとすり合わせながら作る流れ

VBAそのものの書き方ではなく、AIに頼む前の考え方の話です。

AIに頼む前に必要なのは、コード力より伝える力

私はエンジニアではありません。 VBAのコードも読みません。

その代わり、やりたいことをAIに伝えて、出てきた結果を見て判断する。 おかしければ「ここが違う」と伝えて直してもらう。 この使い方で、現場の集計作業をいくつも楽にしてきました。

だからこそ言えるのですが、勝負はAIに頼む前に半分決まっています。

AIにVBAを組んでもらう作業は、コードを書く作業というより、AIと一緒に要件をすり合わせる作業です。

要件とは「何ができればよいのか」という条件のこと。仕様とは「どういう動きにするのか」という作り方の決めごとです。

つまり、AIに投げる前に、

  • 何を実現したいのか
  • 今どこで困っているのか
  • 何を入力するのか
  • どんな結果がほしいのか
  • 例外や注意点は何か

を言葉にしておく必要があります。

AIに頼む前に整理する5つのこと

整理するのは5つです。

ただの相談メモではありません。 AIがVBAの処理を設計するための材料です。

AIに頼む前に整理する5つのことを示した図解

1. 何を実現したいか

最初に決めるのは、作りたいコードではありません。 VBAを動かしたあと、どんな状態になれば成功なのかです。

  • 複数のExcelファイルを1つにまとめたい
  • 指定した列だけを抜き出したい
  • 日付ごとに数量を集計したい
  • 条件に合う行だけを別シートに出したい
  • 入力ミスがありそうな行を色で分かるようにしたい

こういう「完成状態」があると、AIは処理の方向を決められます。

「とりあえず自動化したい」では、コードとして何を作ればいいかが決まりません。 VBAは結局、「何を受け取って、どう処理して、何を返すのか」の世界だからです。

2. 今どこで困っているか

次に、現状の困りごとです。

これはAIに気持ちを分かってもらうためではなく、どの処理をVBAに任せるかを決めるための情報です。

  • 毎回同じ列をコピーしている
  • ファイル数が多くて確認に時間がかかる
  • 人によって入力の仕方が違う
  • 集計結果を手で転記している
  • どこでミスが起きたか分かりにくい

困りごとが具体的だと、AIは「繰り返し処理」「ファイルの読み込み」「集計」「チェック」と、必要な処理に翻訳してくれます。

困りごとは、VBAでいうと「どの処理をコードに置き換えるか」を決める材料になります。ただ「便利にして」ではなく、「この作業を毎回手でやっている」と伝える方が、処理設計に直結します。

3. 入力は何か

VBAの自動化では、入力がかなり大事です。

入力とは、処理の元になる情報のこと。Excelファイル、シート名、列名、日付、数量などが該当します。
  • どのブックを対象にするのか
  • どのシートを読むのか
  • 見出し行は何行目か
  • 日付は何列目か
  • 集計したい数値はどの列か

ここが分からないと、AIはコードの骨組みを作れません。

ただし、ひとつ注意があります。

注意:実社名、顧客名、品番、個人名、実ファイル、画面キャプチャなどは、そのままAIに渡さない方針です。

必要な場合は、ダミー化した表や架空データに置き換えて相談します。

4. 出力はどうしたいか

入力と同じくらい大事なのが、出力です。

出力とは、最終的にどういう形になってほしいかということ。新しいシートへの一覧化、CSV保存、条件付き色分けなどが例です。

出力は、VBAの処理結果そのものです。

「A列の日付ごとに集計して、結果を新しいシートに出したい」

と書けば、AIは「日付でグループ化」「数量を合計」「新しいシートに書き出し」と処理を組み立てられます。

「まとめてほしい」だけだと、どんな形で出せばいいのかが宙に浮いたままです。

5. 例外や注意点は何か

最後に、例外です。 そして現場のデータは、きれいだったためしがありません。

  • 空欄がある
  • 日付の形式が混ざっている
  • 同じ名前のファイルがある
  • 列の位置が変わることがある
  • シート名が毎回違う
  • 処理したくない行がある

こういう条件は、VBAの分岐処理やエラー対策に直結します。

空欄を無視するのか、エラーとして知らせるのか。 日付の形式が違ったら止めるのか、変換するのか。 列の位置が変わる可能性があるなら、列番号ではなく見出し名で探すのか。

ここを先に出しておくと、AIが作るコードの精度が目に見えて上がります。

完璧に整理できなくても大丈夫です。 分かっている範囲で書くだけでも違います

悪い頼み方と良い頼み方

悪い頼み方と良い頼み方の違いを比較した図解

悪い頼み方は、目的があいまいです。

「VBA作って」

「いい感じにして」

「自動化して」

これでもAIは答えてくれます。 でも、こちらの現場の事情までは知りようがありません。

AIは便利ですが、こちらが何をしたいのかを伝えなければ、現場に合ったものにはなりにくいです。

良い頼み方は、目的と条件を共有します。

Excelで毎回手作業で集計している作業があります。

A列に日付、B列に担当者、C列に数量が入っています。

日付ごとに数量を合計して、新しいシートに一覧で出したいです。

空欄の行は無視してください。

まずこの内容を理解しているか確認してください。

違いは一目瞭然だと思います。 丸投げより、目的と条件の共有です。

AIに渡してよい情報と、渡さない情報

情報の出し方にも、線を引いています。

AIに渡してよい情報と渡さない情報を比較した図解

渡してよい情報:

  • ダミー化した表
  • 架空データ
  • 一般化した業務説明
  • サンプルの列名
  • テンプレート

渡さない情報:

  • 実社名
  • 顧客名
  • 品番
  • 個人名
  • 実ファイル
  • 画面キャプチャ
  • 社内システム名

会社情報はそのまま出さず、一般化して相談する。 これを前提にしています。

「品番001」「顧客A」「担当者A」に置き換えても、処理の考え方は何の問題もなく相談できます。 実名や実データを入れたくなったら、「それは本当に必要か?」と一度疑ってみてください。だいたい、必要ありません。

AIとすり合わせながら作る

AIに頼む前の流れ

いきなり細かいコードを書かせるより、大きなテーマからすり合わせます。

AIに頼む前の流れを示した図解

私の流れはこうです。

  1. 大きなテーマを決める
  2. 何を実現したいか整理する
  3. 要件を言葉にする
  4. 仕様を確認する
  5. 小さく作って試す
  6. 理解しているか確認しながら直す

特に効くのが、途中でAIに確認することです。

「ここまでの内容を理解していますか?」

「あなたの理解を整理してください」

「作る前に、処理の流れを説明してください」

こう聞くと、AIの頭の中が見えます。 そして、けっこうな確率でズレています。作る前に見つかれば、それは事故ではなく確認です。

AI開発で大事なのは、丸投げではなく、すり合わせです。

小さく作って、動かして、直す

AIに頼むと、最初から全部入りを作りたくなります。 私もやりました。そして、どこで間違ったのか分からなくなりました。

まずは小さく作る。これに尽きます。

  • まず1つのシートだけ処理する
  • まず指定した列だけ抜き出す
  • まず10行だけで試す
  • 保存や印刷は後回しにする

「全部入りで作って、あとから直そう」より、「小さく作って、動かして、直す」。 非エンジニアには、こちらのほうが圧倒的に進めやすいです。

コードは見なくても、AIは使える

私はVBAのコードを読みません。 読めないというより、そこは私の役割ではないと割り切っています。

私がやるのは、何を実現したいかを言葉にして、AIに伝えること。 動かしてみて、期待通りの結果が出るか確認すること。 おかしければ「ここが違う」と伝えて直してもらうこと。

コードを読む力ではなく、結果を見て判断する力と、やりたいことを伝える力で十分AIは使えます。

ただし、これだけは守っています。

AIが組んだVBAをそのまま本番データに使うのは避けた方がいいです。まずはテスト用のデータで試して、期待通りの結果が出るか確認してから使います。

現場で使うものは、「動けばOK」ではありません。 結果がおかしいまま進めると、あとから戻すほうがよほど大変です。

まとめ:AIに頼む前に、言葉で整理する

ChatGPTやClaudeにExcel VBAを組んでもらうのは、もう特別なことではありません。

でも、うまく使えるかどうかを分けるのはコード力ではなく、

  • 何を実現したいのか
  • 今どこで困っているのか
  • 入力は何か
  • 出力はどうしたいのか
  • 例外や注意点は何か

を言葉にする力です。

  • AIにVBAを頼む前に、目的と条件を整理する
  • 「VBA作って」ではなく、現状・入力・出力・例外を伝える
  • 会社情報や実データはそのまま渡さない
  • AIとは丸投げではなく、すり合わせながら進める
  • 小さく作って、動かして、直す

AIをうまく使うのに必要なのは、プログラミング力より国語力。

最初にこれに気づいたとき、正直ちょっと拍子抜けしました。 でも、現場出身の非エンジニアにとって、これほど都合のいい話もないと思っています。

よくある質問

非エンジニアでもAIにVBAを組んでもらえますか?
コードが読めなくても、AIに相談しながら組んでもらえます。大事なのは、何をしたいのかを整理して伝えること、そして結果をテスト用データで確認してから使うことです。
AIにVBAを頼むとき、最初に何を伝えるべきですか?
まずは目的です。何を実現したいのか、今どこで困っているのか、入力と出力は何かを伝えると、AIが理解しやすくなります。
会社のExcelファイルをそのままAIに渡してもいいですか?
基本的には避けた方が安全です。実社名、顧客名、品番、個人名、実ファイル、画面キャプチャなどは出さず、ダミー化した情報で相談する方がよいです。
AIに組んでもらったVBAはそのまま使っていいですか?
まずはテスト用のデータで試して、期待通りの結果が出るか確認してから使う方が安全です。コードを読めなくても、結果を見て判断すれば大丈夫です。
AIにうまく頼むコツは何ですか?
丸投げせず、すり合わせることです。作る前にAIの理解を確認し、処理の流れを説明してもらい、小さく作って試しながら進めるとズレが少なくなります。