はじめに
ChatGPTにマクロを書いてもらったのに、貼って動かすとエラーで止まり、何を直せばよいか分からず諦めた経験はないでしょうか。動いたマクロも、翌月に様式が変わった途端に使えなくなることがあります。
本記事では、ChatGPTでExcelのマクロを作るコツを、頼む文の書き方、動かない時の直させ方、マクロに任せる範囲の3つに分けて解説します。顧客ごとに様式が違う請求書づくりを、通しの例にしています。
結論として、いちばん効くのは頼む文の工夫より、マクロに任せる範囲を先に決めることです。結果が毎回同じであるべき処理はマクロに固定し、書類ごとに読み方が揺れる所はAIに渡すと、作ったマクロが止まりにくくなります。
本記事の操作の説明は、Windows版のExcelと、2026年10月18日時点のMicrosoftの公式情報をもとにしています。
ChatGPTでマクロを作る前に|「組んだが成功体験がない」で止まる理由
スマートエイトの商談では、マクロを作ったのに成果につながっていない、という声がたびたび出ます。話を聞くと、原因はマクロの書き方より、マクロに何を任せたかにあることが分かります。

商談で聞いた「マクロでも効率化できない」声
小売の会社の担当者からは、RPAを入れたがうまくいかず、マクロを組んだものの、成功体験がまだないと伺いました。人材派遣の会社の責任者からは、顧客ごとに様式が違う請求書をExcelで出していて、マクロでも効率化できていないという話が出ています。
別の商談でも、人材派遣の会社から、請求の前の工程が複雑でマクロを使っても効率が上がらないという声がありました。どれも、マクロを書く力が足りないのではなく、マクロに向かない部分までマクロで受けようとしていた点が共通しています。
マクロは、決まった手順を同じようにくり返すのが得意
マクロは、決まったシートの決まった列を読み、決まった場所へ書く手順を、何度でも同じようにくり返します。手順が毎回同じなら、人より速く、写し間違いもありません。
反対に、顧客ごとに請求書の項目の並びが違うといった揺れがあると、その分だけ条件の分かれ道を書き足すことになります。たとえば、A社の書類は品名が2列目、B社は4列目という違いだけでも、顧客ごとの分かれ道が1つずつ増えます。様式が増えるたびに直す所が増え、作った人しか直せないマクロになっていきます。
ChatGPTのマクロ生成のコツ|頼む文に書く5つの項目
ChatGPTにマクロを頼むときは、Excelの画面を見ていない相手に作業を説明するつもりで書きます。次の5つの項目がそろっていると、1回目から動くマクロが返ってきやすくなります。

頼む文に書く5つの項目
- 目的: 何のためのマクロか。「月末に、明細のシートから顧客ごとの請求書のシートを作る」のように書きます
- 入力: どのシートの何列目に何があり、データが何行目から始まるか
- 手順: 人が手でやっている順番を、1行ずつ日本語で書きます
- 出力: どのシートのどのセルに何を書くか。シート名やファイル名の付け方も含めます
- 例外: 空欄の行や同じ顧客が2回出る行が来たとき、どうするか
なかでも抜けやすいのは例外です。例外を書かずに作ると、ふだんは動くのに、月末の特別な行が来た日だけ止まるマクロになります。
生成AIにマクロ作成を頼む文の例
Excelのマクロを書いてください。
# 目的
月末に「明細」シートから、顧客ごとの請求書のシートを作ります。
# 入力
- 「明細」シートの1行目が見出し、2行目からデータ
- A列:顧客名、B列:品名、C列:数量、D列:単価
# 手順
1. 顧客名ごとに明細を集める
2. 「請求書の型」シートをコピーし、シート名を顧客名にする
3. コピーしたシートの12行目から、品名・数量・単価・金額を書く
4. 最後の行の下に合計を書く
# 出力
顧客の数だけ請求書のシートができる
# 例外
- 顧客名が空欄の行は飛ばす
- 同じ名前のシートがすでにあれば、作らずにメッセージで知らせる
# お願い
- 1行ずつ日本語のコメントを付けてください
- コードを書く前に、どう処理するかを日本語で説明してくださいコードの前に、手順の説明を出させる
いきなりコードを出させるより、どう処理するかを日本語で説明させ、手順に合意してから書かせます。説明の段階で読み違いを直せるので、動かないコードを何度も貼り直す手間が減ります。
説明に「先に明細を顧客名の順に並べ替えます」のような、頼んでいない手順が出てきたら、ここで止めます。元の明細の並びを変えてよいかを決めてから、コードを書かせます。
マクロが動かない時の直させ方|エラーと止まった行を渡す
ChatGPTが書いたマクロが一度で動かないのは珍しいことではありません。止まったときに何を渡すかを決めておくと、直す往復が短くなります。

貼る場所と保存の形を確かめる
ChatGPTが書いたコードは、AltキーとF11キーで開く*Visual Basic Editorの標準モジュールに貼ります。保存するときは、マクロを含められる「.xlsm」の形式を選びます。
メールの添付やダウンロードで受け取ったファイルのマクロは、Windows版のExcelでは既定で実行がブロックされます。社内で配るときは、ファイルの置き場所や許可の手順を、情報システムの担当者と決めておきます。
エラーが出たら、3つの情報を渡す
止まったときは、次の3つをそのままChatGPTに貼ります。
- エラーの番号とメッセージ: 画面に出た文を、言い換えずにそのまま
- 止まった行: デバッグを押すと黄色く光る行のコード
- シートの実際の形: 見出しの行と、データの数行。顧客名などは置き換えて貼ります
よくあるのは、頼む文に書いたシート名と実際のシート名が、全角と半角の違いや後ろの空白で食い違っている場合です。シートの形をそのまま貼ると、こうした食い違いもChatGPTが見つけられます。
そのうえで「直した全文をください」と頼むと、どこを直したかを探さずに丸ごと貼り替えられます。1回に直すのは1か所にし、動いたら次の不具合に進みます。
試すのは必ずコピーで
マクロで書き換えた内容は、「元に戻す」で取り消せないことがあります。試すときは元のファイルのコピーで動かし、結果を確かめてから本番のファイルに使います。
*Visual Basic Editor:Excelのマクロのコードを書いて保存し、実行するための画面。AltキーとF11キーか、開発のタブから開く。
マクロに固定する所とAIに渡す所|様式が違う請求書の分け方
スマートエイトの社内では、AIを業務に組み込むとき、結果が毎回同じであるべき処理はアプリやRPA、マクロのような決まった仕組みに固定しています。判断や表現に幅があってよい所だけを、AIに渡します。
「揺れがあってよいか」で、工程を分ける
分けるときの問いは、「この工程に揺れがあってよいか」の1つだけです。AIは同じ頼み方でも毎回少しずつ違う答えを返すので、文面や要約なら問題になりませんが、金額の集計や転記で揺れると困ります。
マクロは揺れない代わりに、決まった形から外れた入力に弱い仕組みです。両方の得意をつなぐには、工程ごとに揺れてよいかを決め、担当を分けます。
請求書づくりで分けた例
工程 | 揺れてよいか | 担当 |
|---|---|---|
顧客ごとの様式を読み取り、明細の形をそろえる | 読み方に幅があってよい | AI |
金額の集計と、請求書の様式への書き込み | 揺れてはいけない | マクロ |
送付のメールの文面 | 表現に幅があってよい | AI |
請求額の最終の確認 | 揺れてはいけない | 人 |
顧客ごとに違う様式は、まずAIに読ませて、マクロが読める1つの形にそろえます。そろった後の集計と書き込みはマクロに固定するので、様式が増えても、直すのはAIへの指示の側だけで済みます。
AIにそろえさせる明細の形は、2章の頼む文の「入力」に書いた形と同じにしておきます。マクロはその1つの形だけを読めばよくなり、顧客ごとの分かれ道を書かずに済みます。
社内で作るか、仕組みとして頼むか
請求書の様式が数種類で、作った人が直せるうちは、ChatGPTに書かせたマクロで十分に回ります。様式が増え、AIの読み取りとマクロの書き込みをつなぐ必要が出てきたら、社内ツールとして作るほうが、担当が替わっても止まりません。
どこまでを自動化に回すかは、請求書1通あたりの時間と月の通数で決めます。測った時間を投資の判断につなぐ手順は、生成AIの費用対効果を測る4つの問いにまとめています。
請求書と入金の突合までAIに任せる場合の工程の分け方は、Claudeで請求書の突合を自動化する方法で扱いました。
よくある質問|生成AIでマクロやVBAを作るときの疑問
VBAの知識がゼロでも、ChatGPTでマクロを作れますか?
作れます。コードを読めなくても、どのシートのどの列に何があるかと、人が手でやっている順番を言葉にできれば、動くマクロは返ってきます。動かない時に渡す3つの情報を覚えておけば、直す作業もChatGPTとの往復で進められます。最初は、明細を1枚のシートに集めるような小さな作業から頼むと、5つの項目の書き方に慣れます。
ChatGPTにExcelを渡して処理させるのと、どちらがよいですか?
1回きりの集計なら、ファイルを渡して処理させるほうが早く済みます。毎月同じ処理をくり返すなら、マクロにして手元のExcelに残しておくほうが、毎回同じ結果になります。最初の月はファイルを渡して処理させ、その結果を見本にして「同じ処理をするマクロを書いて」と頼む進め方もあります。
会社のパソコンでマクロが動かないのはなぜですか?
メールやインターネットから受け取ったファイルのマクロは、既定で止められます。会社によっては、管理者の設定でマクロの実行そのものを止めていることもあるため、情報システムの担当者に確かめてください。
CopilotやGeminiでも同じコツが使えますか?
使えます。頼む文の5つの項目と、動かない時に渡す3つの情報は、どの生成AIに頼む場合でも変わりません。
さいごに
本記事では、ChatGPTでExcelのマクロを作るコツを、頼む文の5つの項目、動かない時の直させ方、マクロに任せる範囲の分け方とあわせて解説しました。揺れてはいけない集計と書き込みはマクロに固定し、様式の読み取りや文面のように揺れてよい所はAIに渡すのが要点です。
「マクロを作ったが、成果が出ていない」という場合は、今のマクロが受け持っている工程を書き出し、揺れてよいかで分け直してみてください。スマートエイトは、AIの読み取りと決まった処理をつないだ社内ツールの開発と、社員が自分でマクロを頼めるようになる生成AI研修の両方を支援しています。
どの業務から手を付けるかで迷っている場合は、AIに任せられる業務が分かる無料診断から始めてください。3分で終わり、登録もメールアドレスも要りません。 ※生成AI研修資料/導入事例も無料ダウンロードいただけます。




