「AIで作ったVBAがなぜか動かない」
ExcelのVBAをAIに作ったとき、こんな経験はありませんか。
同じAIを使ってうまく動かせている人もいる。それなのに自分のときだけ動かない。
エラーをチャットに投げて直してもらっても、またエラーが出て終わらない。
こうなると直すことより原因を探すほうに時間が溶けて、何が悪いのか分からなくなってきますよね。
なんで動かないんだろう?コードが原因?
そこを疑いたくなりますよね。でも相談を受けてるとコードが悪いのではなく、AIの想定と手元のExcelが少しズレていることが多いんです。
しかもこのズレは並べて見れば一目で分かるものばかりですが、自分ひとりだと気づきにくく修正を何度も頼むループから抜けられなくなります。
今回はAIにVBAを書いてもらったときに確認したい「3つのズレ」と、ズレにくくするための頼み方について紹介します。
- AIが想定したExcelと自分のExcelでズレやすい3つのポイント
- 見比べれば分かる違いなのに気づけない理由
- 何度も直してもらう前に変えたいAIへの頼み方
- 仕事のExcelをAIに相談するとき、渡していい情報の線引き
AIのVBAが動かないとき、最初に見たい3つのズレ


AIでVBAを作るとき必要な前提条件を伝えきれていないと、足りない部分はAIが推測で埋めます。
足りない部分を埋めてくれるので一見ありがたく思いますが、その推測で埋めた部分が手元のExcelとズレているとエラーの要因になってしまいがちです。
こうしたズレは特に次の3つで起こりやすいので注意が必要です。
- シート名などVBA内の名前が一致しているか
- AIが想定したセルと実際に使うセルが合っているか
- 使っているExcelのバージョンをAIに伝えているか
シート名などVBA内の名前が一致しているか
VBAではシートやボタンを指定するとき対象の名前を使いますが、この名前が自分のExcelファイルにある名前と違っていると動きません。
たとえば次のようにAIの想定と自分のExcelファイルでシート名やボタン名などが異なった状態で実行すると、対象が見つからずにVBAが止まります。
| AIの想定 | 自分のExcelファイル | |
|---|---|---|
| シート名 | Sheet1 | 売上データ |
| ボタン名 | (AIが付けた名前) | 実際に配置しているボタン名 |
指定している名前が違っているってことかぁ。
初歩的な事ですがこういった名前の違いは、よく見られるので注意が必要です。
AIが想定したセルと実際に使うセルが合っているか
シートやボタン以外にもう一つ名前で気を付けたいのがセルの行や列の位置の指定です。
実際に見るセルを伝えていない場合もAI側が推測で見に行くセルを決めていきますが、実際のセルと異なっていればエラーが出たり、動いても正確な結果が得られない処理になってしまいます。
| AIの想定 | 自分のExcelファイル | |
|---|---|---|
| データの開始行 | 1行目 | 3行目(1〜2行目は見出し) |
| 参照先の列 | B列 | C列 |
エラーが出なければ大丈夫、というわけでもないんだね。
そうなんです。止まらないからこそ、見つけにくい場合もあります。
使っているExcelのバージョンをAIに伝えているか
使っているExcelのバージョンを伝えずに作ると、AIは新しいバージョンのExcelを前提にしたVBAで返してきます。
自分のバージョンでは使えない機能や関数が入っていれば、VBAのコード自体は正しくても動きません。
実際にVBAの相談を受けてると、これが原因で動いていないケースが意外と多いです。
VBAが動かないとき「コードがおかしいのかな?」と原因を探しがちですが、おかしいのはコードではなく「AIと自分で見ているExcelが違っていただけ」ということがあります。
少し古いバージョンのExcelを使っているならAIに頼むときに一緒に伝えておく、それだけで前提のズレを一つ減らせます。
見れば分かるズレも意外と気づきにくい
ここまでの3つのズレを見て、「そんなことなら簡単に気づけそう」と思ったかもしれません。
実際これらのズレは指摘されれば気づける内容ですが、それでも見落としてしまうことが多いのは自分で確認する機会がないからです。
- AIとのチャットにVBAが表示される
- VBAをコピーする
- 自分のExcelファイルへVBAを反映し、実行する
この流れのようにAIの出力したVBAをただ反映させていると、自分のExcelを開いて見比べる場面がなく名前やセルが違っていても気づかずに実行することになります。
VBAが動かないときはすぐにAIに聞く前に「自分はAIへ前提条件を伝えきれているか?」と一度確認する事が大切です。
「AIへの伝え方以前に、ExcelやVBAの基本から怪しいかも」
ここまで読んで、そう思った人もいるかもしれません。
見る場所は分かっても、そもそもExcelの扱いに自信がないと確認そのものが気が重いはずです。
裏を返せばこのあたりが分かってくると、AIが返してきたVBAを見たときにどこを見ればいいか見当がつくようになり、今回の3つのズレももっと探しやすくなります。
こうした基礎から学び直したいときは、オンスク.JPが使えます。
Excelの基本からVBA、生成AIの基礎など各講座が一通りあるので、「AIに頼む側」と「Excelを動かす側」の両方を同じ学習サービスで学ぶことが出来ます。
コードを見たときに「ここか!」と分かるようになりたいなら、学ぶ選択肢の一つになります。
最初からAIにVBAを全て任せない


ここまではVBAが動かなくなってからの対処を中心に話しましたが、自分の工夫次第で最初からズレが起きにくい頼み方もあります。
骨組みだけ作ってもらい自分のExcelに合わせていく
VBAの完成形を一度で頼むと伝えきれなかった条件はAIの想定で埋まった状態で返ってくるため、後で見直す場所も増えます。
なので私は完成したVBAを一度で作らずに、次の流れでAIに頼んでいます。
- 「こういう処理をしたいので、まず骨組みだけ作ってほしい」と頼む
- 出力されたVBAを見ながら、シート名や使う列を自分のファイルに合わせていく
この形だと、VBAを完成させる作業そのものが確認になります。
全部書いてもらってそのまま使うより手間はかかりますが、どこを自分で変更したか分かっているので動かなかったときに見る場所がすぐ絞れます。
全部やってもらったほうが楽じゃないの?
最初はそう感じますよね。でも動かなかったときに何も分からなくなるより、自分で合わせる部分を残しておいたほうが戻りやすいんです。
自分で決める部分を残せばズレにも気づきやすい
処理の骨組みはAIに作ってもらう。
シート名や列など、自分のExcelに関わる部分は自分で確認する。
任せる部分と、自分で持つ部分を分けておく。
これはVBAだけの話ではありません。
どこまでが自分の担当か曖昧なままだと、AIに何を頼んでも同じことが起きます。
「何をAIに任せて、何を自分で確認するのか。」
この線引きがあるだけで、使いやすさはかなり変わります。
「AIに何を伝えるか」「どこまで任せるか」は、VBA以外の仕事でも同じように迷います。
同じところで毎回止まるなら、一度まとめてAIへの頼み方を学んでしまったほうが早いかもしれません。
DMM 生成AI CAMP 学び放題には基礎マスターコースのほか、営業や人事など職種別のコースもあり自分の仕事に近いところから学び始められます。
どの仕事で、どのAIを、どう使うのか。
そこまで見えてくると、AIの使い方は変わります。
【補足】仕事のExcelをAIに相談するとき、データはどこまで渡していい?
仕事で使うExcelをAIに相談するなら、次の3つは先に確認しておきたいところです。
- 個人情報や社外に出せない内容は入力しない
- 勤務先にルールがあるなら先に確認しておく
- 使っているAIが入力内容を学習させない設定になっているか確認する
ただVBAを作ってもらうのに実際のデータは要りません。伝えるのは次のような形でも足ります。
AIに詳しく伝えることと、実データを渡すことは別です。
構造だけ伝えれば、AIは必要な情報を受け取れます。
AIに全部任せず、書かせたあとに一度見比べる
AIでVBAを頼んでも動かないときは、シートやボタンの名前、セルの位置、Excelのバージョン。この3つがズレていないかを先に確認してください。
特に名前とセルはそのままAIの出力したVBAをコピーして貼ると違いに気づく機会がなくなるので、実行する前に
「AIが想定しているExcelと、自分のExcelは同じだろうか?」
と見比べてみることが大切です。
また毎回同じところで止まるなら、骨組みだけ頼んで自分で仕上げていくのも手です。
その作業自体が確認になり、VBAが何をしているのかも見えてきます。
確認できるところだけ、まずは自分で見る。
このひと手間が、VBAの「何度直しても動かない」を減らしてくれます。
- ExcelやVBAの基礎にも不安が残るなら|オンスク.JP
Excelと生成AIを、まず手軽に学び直したい人向け。
⇒【オンスク.JP】

- 生成AIを仕事でもっと活用したいなら|DMM 生成AI CAMP 学び放題
VBAだけでなく、仕事全体でのAI活用まで広げたい人向け。
⇒ DMM 生成AI CAMP 学び放題


