ChatGPT・ClaudeでExcel VBAマクロを自動生成する方法|プログラミング知識ゼロで業務を自動化する実践ガイド

Ai Programming

「毎月同じExcel作業を繰り返しているけど、マクロで自動化したい。でもVBAはプログラミングで難しそう…」と感じていませんか?

実は今、ChatGPTやClaudeなどの生成AIを使えば、VBAコードをゼロから自動生成できます。プログラミングの知識がなくても、「日本語でやりたいことを説明する」だけで動くコードが手に入る時代になりました。

この記事では、AIを使ってExcel VBAマクロを生成し、繰り返し業務を自動化する方法を準備から実行まで段階的に解説します。コピペで使えるプロンプトテンプレートも付きなので、読み終わったらすぐに試せます。

ChatGPT・ClaudeでExcel VBAマクロを自動生成する方法|プログラミング知識ゼロで業務を自動化する実践ガイド

ExcelマクロとVBAとは?AIを使うと何が変わるか

Excelの「マクロ」は、決まった操作を自動実行する機能です。その裏側で動いているのが「VBA(Visual Basic for Applications)」というプログラミング言語です。

従来のVBAを使いこなすには、プログラミングの学習が欠かせませんでした。変数の宣言、ループ処理、エラーハンドリング——一通り覚えるのに数週間から数ヶ月かかるのが普通でした。

AIが登場したことで、この構図が大きく変わりました。

Before(AI以前): VBAを自分で書くか、社内のエンジニアに依頼する必要がある
After(AI活用後): 「こういう動きをするコードを作って」と日本語で説明するだけでコードが生成される

「AIに任せた場合、どれくらい正確なコードが出てくるの?」という疑問はもっともです。実際に試してみると、シンプルなマクロ(列の整形、シート間コピー、フィルター処理など)は8〜9割の確率でそのまま動くコードが生成されます。複雑な処理でもエラーメッセージをAIに貼り付けて「このエラーを直して」と伝えれば、ほとんどのケースで修正できます。

AIでExcel VBAを生成するための準備

1. Excelのマクロ機能を有効化する

Excelを開いて、以下の手順でマクロを有効にします。

Windowsの場合(Excel 2016以降)
「ファイル」→「オプション」→「トラストセンター」→「トラストセンターの設定」→「マクロの設定」→「すべてのマクロを有効にする」を選択して「OK」をクリックします。

Macの場合(Excel for Mac)
「Excel」メニュー→「環境設定」→「セキュリティ」→「すべてのマクロを有効にする」を選択します。

2. 開発タブを表示する

VBAエディタを使うには、リボンに「開発」タブを表示する必要があります。

「ファイル」→「オプション」→「リボンのユーザー設定」→右側の一覧から「開発」にチェックを入れて「OK」をクリックします。これでリボンに「開発」タブが追加されます。「開発」→「Visual Basic」でVBAエディタが開きます。

3. AIチャットツールを準備する

ChatGPT(chatgpt.com)またはClaude(claude.ai)のアカウントを用意します。無料版でもVBAコードは生成できますが、複雑な処理や長いコードには有料版(ChatGPT Plus / Claude Pro)の方が精度が安定します。(2026年5月時点の情報です)

ChatGPT・ClaudeでVBAコードを生成する手順

1. やりたいことを日本語で説明する(プロンプトの作り方)

AIへの指示で大切なのは「何をしたいか」を具体的に伝えることです。次の3点をセットで伝えると、精度の高いコードが生成されます。

対象シート・セルの場所: 「Sheet1のA列」「B2セルから下のデータ」など
入力データの状態: 「A列に日付、B列に金額が入っている」など
やりたい処理の内容: 「B列の合計をD1セルに値として入力する」など

以下はプロンプトの具体例です。そのままコピーして【】内を書き換えて使えます。

以下の処理を行うExcel VBAコードを書いてください。 【Excelファイルの状態】 - シート名:Sheet1 - データ配置:A列に日付(例:2026/5/1)、B列に商品名、C列に金額が2行目から入っている 【やりたい処理】 - C列の金額の合計を計算する - 結果をE1セルに数式ではなくVBAで直接「値」として書き込む - 処理が完了したらメッセージボックスで「集計完了」と表示する 初心者でも理解できるよう、コードにコメントを入れてください。 エラー処理も含めてください。

2. 生成されたコードをVBAエディタに貼り付ける

AIが出力したコードをコピーして、VBAエディタに貼り付けます。手順は次のとおりです。

「開発」タブ→「Visual Basic」をクリックしてVBAエディタを開く→左側のツリーから対象ブックを展開→「標準モジュール」を右クリック→「挿入」→「標準モジュール」をクリック→右側のコードエリアにコードを貼り付ける

貼り付けが完了したら、「F5」キーを押すか「実行」メニュー→「Sub/ユーザーフォームの実行」でマクロを動かします。

3. 動作確認して必要なら修正依頼する

実行後にエラーが出た場合は、エラーメッセージをそのままコピーしてAIに貼り付けます。「このエラーが出た。コードを修正して」と伝えれば、ほとんどのケースで修正版のコードが返ってきます。

エラーなしで動いても結果が想定と違う場合は、「E1セルに合計が表示されず、E2に入ってしまう。修正して」のように具体的なセルアドレスや数値で差分を説明すると、AIが的確に修正します。

実務での活用例(Before/After)

【活用例1】複数シートを跨いだ月次集計

Before: 各部門シートを開いてC列を手動でコピー→集計シートに貼り付け→SUMを手入力→30分の繰り返し作業
After: マクロを実行するだけで全シートの集計が完了→3秒

AIへのプロンプト例:

Sheet1〜Sheet5(各シートはA列に商品名、B列に売上金額が2行目から入っている)のB列合計を 「集計」シートにまとめるVBAコードを作ってください。 集計シートのA列にシート名、B列に各シートのB列合計金額を書き込む形にしてください。 「集計」シートが存在しない場合は自動で作成してください。

【活用例2】外部データの日付フォーマット一括変換

Before: 外部システムから出力したCSVの日付が「20260501」形式→手作業で「2026/05/01」に変換→数百行で1時間
After: マクロで一括変換→10秒

【活用例3】フォルダ内の複数ファイルを一括処理

Before: 毎日届く取引先別のExcelファイル(20件)を一つずつ開いて特定の数値をコピー→集計ファイルに入力→1時間以上
After: フォルダパスを指定するだけで全ファイルを自動処理→数分

コピペで使えるプロンプトテンプレート集

以下のテンプレートをコピーして、【】内を自分の状況に書き換えて使ってください。

■ 基本テンプレート(汎用)

以下の処理を行うExcel VBAコードを書いてください。 【Excelファイルの状態】 - シート名:【シート名を記入】 - データの配置:【例:A列に日付、B列に担当者名、C列に金額が2行目から入っている】 【やりたい処理】 1. 【処理1を具体的に記入】 2. 【処理2を具体的に記入(あれば)】 【出力先】 - 【例:同じシートのE列に結果を書き込む / 「結果」シートに出力する】 条件: - 初心者でも理解できるよう各行にコメントを入れてください - エラー処理を含めてください - データが0行の場合はメッセージを表示して終了するようにしてください

■ データフィルター・抽出テンプレート

Sheet1のデータからVBAで特定の条件に合う行だけを抽出するコードを書いてください。 【データの配置】 A列:日付、B列:担当者名、C列:売上金額(2行目からデータあり) 【抽出条件】 - B列が「田中」と一致する行 - かつC列が10000以上の行 【出力先】 - 「抽出結果」シート(存在しない場合は新規作成)のA列から貼り付ける - ヘッダー行(1行目)もコピーする

プロンプトを書く際のコツ

具体的な数値・セル名で説明する: 「日付が入っている」より「A2セルに2026/5/1のような日付が入っている」の方が精度が上がります
「エラー処理を含めて」と付け足す: VBAは実行中にエラーが発生すると止まります。あらかじめ指示しておくと安定したコードになります
「コメントを入れて」と頼む: 後で見返したときに何をしているかわかりやすくなります
「データが0件の場合の処理も含めて」と付け足す: 空のシートでマクロが暴走するのを防げます

うまくいかない時の対処法

【問題1】エラーが出てマクロが止まる

エラーメッセージをそのままコピーして、以下の形式でAIに伝えます。

以下のエラーが出ました。コードを修正してください。 【エラーメッセージ】 実行時エラー '1004': アプリケーション定義またはオブジェクト定義のエラーです。 【実行したコード】 (コードをここに貼り付ける) 【Excelのバージョン・OS】 Excel 2021 / Windows 11

【問題2】動いたけど結果が想定と違う

「こう動いてほしかったのに、実際はこう動いた」という差分を具体的に伝えます。「A1に100が表示されるはずが、A2に入ってしまう」のようにセルアドレスと数値で説明すると修正が速くなります。

【問題3】複雑な処理でうまいコードが生成されない

一度に大きな処理を頼むのではなく、分割して依頼する方が成功率が上がります。たとえば「①データを整形するマクロ」と「②整形後のデータを集計するマクロ」を別々に生成してから組み合わせる方法が有効です。

【問題4】セキュリティ警告が出てマクロが実行できない

マクロを含むファイルを開く際に「セキュリティの警告」バーが表示されることがあります。自分で作成したファイルであれば「コンテンツの有効化」をクリックして進みます。インターネットからダウンロードしたファイルのマクロを安易に有効化するのは避けてください。

【問題5】AIが生成したコードが会社のPC環境で動かない

職場のExcelはセキュリティポリシーでマクロの実行が制限されている場合があります。IT部門に確認するか、マクロを有効化するためのポリシー変更が必要なケースもあります。また、ExcelのバージョンによってはVBAの一部の機能が使えないことがあるため、「Excel 2016で動くコードで」と明示してAIに依頼するのが確実です。

本記事のまとめ

AIを使ったExcel VBA自動生成のポイントをまとめます。

ステップ やること ポイント
準備 マクロ有効化・開発タブ表示 設定は一度だけでOK
プロンプト作成 対象セル・データ状態・処理内容を説明 具体的なセル名・数値を使う
コード貼り付け VBAエディタの標準モジュールに貼り付けてF5実行 テストデータで先に確認する
エラー対処 エラーメッセージをそのままAIに渡す バージョン・OS情報も添える
精度向上 複雑な処理は小さく分割して依頼 「エラー処理込み」を毎回指定

プログラミングの知識がなくても、「何をしたいか」を日本語で説明する力があればAIがVBAコードを作ってくれます。最初は「C列の合計をE1に表示する」といった1行で済むシンプルな処理から試してみて、成功体験を積んでいくのがおすすめです。

一点だけ注意してほしいのは、AIが生成したコードはあくまでも「叩き台」だという点です。本番データに適用する前に、必ずテスト用のコピーファイルで動作確認する習慣をつけておきましょう。

VBAをはじめとするノーコード・ローコードのAI活用については、姉妹サイトDXマスターズ.TOKYOでも業務自動化の事例を紹介しています。

Excel以外の業務もAIで自動化したい方へ

「VBA以外にも、日常業務をもっとAIで効率化したい」という方に、実践的なノウハウをメルマガでお届けしています。
生成AIを”使う側”から”使いこなす側”へステップアップしたい方へ、メルマガで実践的なAI活用ノウハウをお届けしています。

コメント

タイトルとURLをコピーしました