ExcelマクロをAIで自動作成する方法【初心者でもできる】
約10分で読めます
「Excelのマクロって便利そうだけど、自分でコードを書くのは無理…」と感じたことはありませんか?
プログラミング未経験のビジネスパーソンにとって、VBAのコードを一から書くのはハードルが高いものです。でも今は、AIに頼めばコードを自動で生成してもらえる時代になっています。この記事では、AIを使ってExcelマクロを作る具体的な手順と、初心者が陥りやすい落とし穴を整理します。
Excelマクロ作成で「コードが書けない」と悩んでいませんか
毎月末、同じ手順でExcelを操作して集計レポートを作っている。コピー&ペーストを繰り返して、転記ミスが怖い。そんな状況が続いているのに、「マクロを組めばいいとわかっているけど、VBAは難しそう…」と一歩が踏み出せない方は多いのではないでしょうか。
特に、IT部門に依頼しても後回しにされがちな中小規模の現場や、自分でなんとかしなければならない個人担当者にとって、この悩みは切実かもしれません。
マクロ作成の「壁」はどこにあるか
Excelマクロを作るには、通常VBA(Visual Basic for Applications)というプログラミング言語を書く必要があります。よくある壁は以下の3つです。
- 変数・ループ・条件分岐などの概念が必要
- エラーが出ても原因がわからない
- ネットで調べてもコードをどこに貼ればいいかわからない
これらの壁を「AIが代わりにコードを書いてくれる」という方法で乗り越えるのが、今回紹介するアプローチです。
AIがExcelマクロを書いてくれると何が変わるか
結論から言うと、AIを使えば「やりたいこと」を日本語で説明するだけで、VBAコードの下書きを手に入れられる可能性があります。
たとえば「A列の空白行を削除して、B列を昇順に並び替えたい」と伝えるだけで、動作するコードの候補を提示してもらえます。これは、プログラミング知識がゼロでも試せる入口として、多くのビジネスパーソンに注目されています。
AIマクロ生成でできること・できないこと
できること(期待できること)
– 繰り返し作業の自動化コード生成
– 書式の一括変更・データ整形
– 特定条件でのフィルタリングや集計
– エラーコードの原因説明
できないこと(注意が必要なこと)
– 複雑な業務ルールを自動で読み取ること
– 生成されたコードが必ず正しく動くという保証
– 社内固有のファイル構造への対応(追加の説明が必要)
意外な落とし穴だったのが、「コードは生成されるけど、自分のファイルの構造と合っていなくてエラーになる」というパターンです。AIは指示された内容しか知らないため、シート名やセルの範囲を正確に伝えることが重要になります。
ChatGPTでExcelマクロを作る3ステップ
ステップ1:やりたいことを具体的に書き出す
まず、AIに伝える前に「何を自動化したいか」を整理します。曖昧な指示だと、的外れなコードが返ってくることがあります。
整理するポイントは以下の3つです。
- 対象シート名・セル範囲(例:Sheet1のA1〜D100)
- 何をしたいか(例:B列の重複を削除して、C列を合計する)
- 結果をどこに出力したいか(例:Sheet2のA1から出力)
ステップ2:AIへのプロンプトを入力する
以下は、ChatGPTなどのAIに入力するプロンプトの基本形です。
【基本プロンプト例】
以下の条件でExcel VBAマクロを作成してください。
- 対象ファイル:Sheet1のA列〜D列(1行目はヘッダー、データは2行目から)
- やりたいこと:B列に重複する値がある行を削除する
- 結果の出力先:同じシートのデータを上書き更新
- エラー処理も含めてください
このように「対象・操作・出力先・条件」を明示すると、より実用的なコードが返ってくる可能性があります。
なお、業務別のプロンプトテンプレート(集計・転記・レポート自動生成など)は、noteで公開しています。
ステップ3:コードをExcelに貼り付けて動作確認する
- Excelを開き、
Alt + F11でVBAエディタを起動 - 左側のプロジェクトツリーから対象ブックを選択
- 「挿入」→「標準モジュール」をクリック
- 生成されたコードを貼り付ける
F5キーで実行、またはAlt + F8からマクロを選択して実行
最初にうまくいかなかったのが、「シート名が日本語の場合にエラーになる」というケースです。AIが生成するコードは英語シート名を想定していることがあるため、シート名を正確に伝えるか、コード内のシート名を手動で修正する必要があります。
AIマクロ生成の強みと、見落としがちな注意点
強み:コードゼロで自動化の入口に立てる
最大の強みは、プログラミング知識がなくても「試せる」点です。生成されたコードを見ながら少しずつ理解していくことで、VBAの学習コストを下げながら実務に活かせる可能性があります。
また、エラーが出たときにそのエラーメッセージをそのままAIに貼り付けると、原因と修正方法を説明してもらえることが多く、デバッグの補助としても活用できます。
注意点:生成コードをそのまま本番で使わない
導入前に気になるのが、「生成されたコードが本当に安全かどうか」だと思います。正直なところ、AIが生成するコードは必ずしも完璧ではありません。
特に注意すべき点は以下です。
- 必ずバックアップを取ってから実行する(上書き削除は元に戻せない)
- 大量データへの適用前に、小さなサンプルデータで動作確認する
- セキュリティ設定によってはマクロが実行できない場合がある
- 生成コードに個人情報・機密情報が含まれないよう、プロンプトに実データを貼らない
この方法が向いていないのは、ファイル構造が複雑で複数シートをまたぐような高度な処理や、毎回条件が変わる柔軟な業務です。そういったケースでは、AIの出力を叩き台にしながらIT担当者と連携するのが現実的かもしれません。
AIマクロ作成が特に役立つシーン・向かないシーン
役立つシーン
- 毎月同じ手順でデータを整形・集計している
- 複数ファイルから特定の列だけ抽出してまとめたい
- 書式(色・フォント・罫線)を一括で統一したい
- 条件に合う行だけ別シートに転記したい
これらは「繰り返し性が高く・手順が明確」な作業であるため、AIへの指示も書きやすく、生成コードの精度も上がりやすい傾向があります。
向かないシーン
- 「なんとなくいい感じにして」のような曖昧な要件
- 担当者によって判断が変わる例外処理が多い業務
- 外部システムとのリアルタイム連携が必要な処理
- 法的・コンプライアンス上の判断が含まれる処理
一方でこういう懸念もあります。AIに頼りすぎると、コードの中身がわからないまま運用が続き、担当者が異動したときに誰も修正できないという状況が生まれる可能性があります。最低限「このコードが何をしているか」を把握しておくことが、長期的には重要かもしれません。
よくある質問と回答
Q1. 無料のAIでもExcelマクロを作れますか?
ChatGPTの無料版やMicrosoft Copilotの無料プランでも、VBAコードの生成は可能です。ただし、有料版のほうが長いコードや複雑な条件への対応精度が高い傾向があります。最新の料金・機能については各サービスの公式サイトをご確認ください。
Q2. 生成されたコードを修正するにはどうすればいいですか?
エラーが出た場合は、エラーメッセージをそのままAIに貼り付けて「このエラーの原因と修正方法を教えてください」と追加で質問するのが効率的です。多くの場合、修正済みのコードを再提案してもらえます。
Q3. MicrosoftのCopilotとChatGPTはどちらが向いていますか?
Microsoft 365 Copilotは、Excelに直接統合されているため操作の連携がスムーズな可能性があります。一方、ChatGPTはより詳細な条件指定や対話的な修正がしやすい傾向があります。どちらが向いているかは業務内容や既存ツールの環境によって異なるため、両方を試してみるのが良いかもしれません。
まとめ:まず1つの繰り返し作業をAIに任せてみる
Excelマクロの作成にAIを活用する流れを整理すると、以下のようになります。
- やりたいことを「対象・操作・出力先」で具体化する
- AIに日本語で指示してVBAコードを生成してもらう
- バックアップを取ってから、サンプルデータで動作確認する
- エラーが出たらエラーメッセージをAIに貼って修正してもらう
最初の一歩として、「毎月繰り返している作業を1つ選んで、AIにコードを作らせてみる」ことをお勧めします。完璧なコードでなくても、叩き台があるだけで作業の見通しが大きく変わる可能性があります。
Excel・データ分析プロンプト集をnoteで公開中
本記事では基本的なプロンプト例を紹介しましたが、
noteでは関数・マクロ・分析プロンプトの実践テンプレート集を公開しています。
コピペしてすぐ使える完全版です。
