はじめに
「前任者が作ったExcelマクロを修正できる人がいない」
「エラーが表示されるようになったが、VBAコードを見ても原因が分からない」
職場で長く使われているExcelファイルには、作成者の異動や退職によって、誰も修正できなくなったマクロが残っていることがあります。
私の職場でも、業務用データを処理するExcelマクロの変更が必要になりましたが、部署内にVBAを扱える職員がおらず、コードの場所や処理内容を確認するところから始めました。
そこでAIにコードの役割を説明してもらい、修正案を作成し、元のファイルとは別のコピーで動作を確認しました。
AIを利用すると、VBAコードの意味やエラーの原因を整理し、修正案を作成できます。ただし、AIが出したコードが正しいとは限りません。業務用ファイルへ反映する前に、バックアップを作成し、少量のダミーデータで結果を確認する必要があります。
この記事では、VBAコードを安全にAIへ渡す方法、エラー別の相談例、修正後の確認手順を紹介します。
この記事でわかること
- VBAコードの場所と処理内容を確認する方法
- コードを安全にAIへ渡すための確認項目
- エラー別にAIへ相談する方法
- AIが作った修正コードを確認する手順
当ブログは現役大学職員の私が、AIツール(Gemini, ChatGPTなど)を活用し、事務業務改善をするためのAI活用ブログです。私自身、文系大学卒の非エンジニアの事務職員なので、専門用語は避けて読者の皆さんが分かりやすく、すぐ使える情報をお届けできるよう心がけています。
プロフィールの詳細は、以下をご覧ください。
ExcelのVBAマクロとは?AIで修正できる理由(1分でわかる基礎知識)
Excelマクロとは、繰り返し行う操作をボタン一つで自動実行できる機能です。
データの整理・集計・出力など、毎回手作業でやっている処理を自動化できます。
このマクロを動かす「命令書」がVBA(Visual Basic for Applications)と呼ばれるコードです。
プログラミング言語の一種ですが、私たちがゼロから書く必要はありません。
既存コードを一から書き直す前に、AIへ処理内容の整理や修正案の作成を依頼できます。
VBAマクロのAI修正が必要な状況とは
- 作成者が退職・異動して、マクロの仕様を誰も知らない
- 引き継ぎメモや仕様書が残っていない
- コードを見ても何が書いてあるかわからない
- 業務フローが変わったが、マクロを修正できる人がいない
- 入試制度変更・システム移行などで既存マクロの改修が必要になった
こうした「ブラックボックス化したExcelマクロ」は、放置するほどリスクが高まります。
手作業に戻せば時間もミスも増える。かといって外注すれば費用もかかる。
AIを使うことで、原因を整理し、修正方法を検討しやすくなります。
AIでExcelマクロを解読・修正する3ステップ
VBAに詳しくない場合でも、以下の3ステップで修正箇所を整理できます。
⚠️ 作業前の注意
VBAマクロを修正する前に、必ず元のExcelファイルをコピーしてバックアップを作ってください。いきなり本番ファイルのコードを書き換えると、元に戻せなくなる可能性があります。また、AIにコードやデータを貼り付ける場合は、学生番号・氏名・口座情報・個人情報・未公開情報などを含めないようにしましょう。実際の業務データではなく、列名や処理内容が分かる範囲に置き換えて相談するのがおすすめです。
| ステップ | やること |
|---|---|
| ① 現状把握 | コードの場所を探し、AIに意味を解説してもらう |
| ② 対話形式で修正 | 変えたい内容をAIに伝え、修正コードを出力してもらう |
| ③ テスト・エラー対応 | 実際に動かし、エラーが出たらAIに解決してもらう |
VBEの開き方など、Excelの基本操作はこちらの記事で詳しく解説しています。

AIにVBAコードを貼り付ける前に確認すること
該当するVBAコード全体をAIへ貼り付けてください。その際、コード内に次のような情報が直接書かれていないか確認してください。
- 大学名や部署名
- 実際のファイル名や保存場所
- メールアドレス
- システムへの接続情報やパスワード
- 業務内容が分かるコメント
このような情報が含まれている場合は、削除するか、「A大学」「サンプル.xlsx」などの仮の名前へ置き換えます。どこを変更してよいか判断できない場合は、コードをAIへ入力せず、勤務先のルールや担当部署へ確認しましょう。
プロンプト例
以下はExcel VBAコードです。
このコードについて、次の内容を説明してください。
・この処理の目的
・参照しているシートとセル
・ファイルやデータを書き換える処理
・削除処理の有無
・エラーになりそうな箇所
コード内の名称や保存先は、仮の内容へ置き換えています。
不足している情報がある場合は、推測せず質問してください。
【ここにコードを貼る】
ステップ1:VBAコードの場所を特定してAIに解読させる方法
動かなくなったマクロの復旧や、仕様変更による改修作業も、このステップから始めましょう。まず「コードがどこにあるか」「何をしているコードなのか」をAIに確認します。
Gemini、ChatGPT、Copilot Chat、Claudeなどのうち、所属組織で利用が認められているAIを使います。
VBAコードの場所を特定する
コードの場所が分からない場合は、次のプロンプトで開き方を確認できます。
▼ プロンプト例(コピーして使えます)
Excelマクロについて、VBAコードはどこにありますか?
開き方を初心者向けに簡潔に教えてください。
Excelの[開発]タブから[Visual Basic]を選ぶと、VBAコードを編集する画面が開きます。Windows版Excelでは、Altキーを押しながらF11キーを押して開くこともできます。
画面左側の「プロジェクトエクスプローラー」で「標準モジュール」などを開くと、VBAコードを確認できます。
VBAコードの意味をAIに解説してもらう
VBEを開いてコードを確認したら、該当するVBAコード全体をAIへ貼り付けて、意味を解説してもらいます。
▼ プロンプト例
このVBAコードの意味と役割を、初心者向けにわかりやすく解説してください。
(ここにコードを貼り付ける)
AIの回答では、コードの説明をすべて理解しようとするのではなく、まず次の点を確認します。
- コード全体の目的
- 参照しているファイル、シート、セル
- データを削除・上書きする処理の有無
- エラーの原因になりそうな箇所
分からない用語や処理があれば、その部分をコピーして、さらに簡単な言葉で説明するようAIへ依頼します。
ステップ2:AIを使ったVBAマクロの修正手順【コピペでOK】
コードの全体像が見えたら、次は修正です。
分からない部分や変えたい箇所を一つずつAIに伝えましょう。
💡 コツ:一度にたくさん変えようとしない
変更点が複数ある場合は、内容を分けて依頼すると、変更箇所と動作を確認しやすくなります。
▼ プロンプト例
現在のVBAコードでは「対象区分A」のデータを抽出しています。
「対象区分B」のデータを抽出するように変更してください。
変更箇所と修正理由を説明したうえで、修正後のコード全体を出力してください。
指定していない処理は変更しないでください。
【ここにVBAコード全体を貼る】修正案はコード全体で出力してもらい、変更前のコードと比較します。AIが出したコードへそのまま置き換えるのではなく、変更した行と、削除された処理がないかを確認してください。
ステップ3:VBAのエラーメッセージをAIで直す方法
修正後のコードをVBEに貼り付け、コピーしたファイルとダミーデータで実行します。エラーが出た場合は、エラー番号だけでなく、メッセージ全文、黄色く表示された行、関連するコードをAIへ伝えます。
エラーの種類によって、AIへ伝える内容を変えると原因を絞り込みやすくなります。
コンパイルエラー・構文エラー
関数名の入力間違い、記号の不足、コードの書き方に問題がある場合などに表示されます。Microsoft Learnの構文エラー解説も確認できます。
Excel VBAで次のコンパイルエラーが表示されました。
エラーメッセージ:
【表示されたメッセージをそのまま入力】
エラー箇所として選択された行:
【該当する行を入力】
関連するコード:
【前後を含めたコードを貼る】
原因の候補を説明し、修正箇所だけでなく、修正後のコード全体を出力してください。
変更した行にはコメントを付けてください。
実行時エラー9「インデックスが有効範囲にありません」
存在しないシート名、ブック名、配列の要素などを参照している場合に発生します。Microsoft Learnのエラー9解説も参考になります。
Excel VBAで「実行時エラー9:インデックスが有効範囲にありません」と表示されました。
エラー発生時に黄色く表示された行:
【該当する行】
実際のシート名:
【シート名の一覧】
関連するコード:
【コードを貼る】
シート名、ブック名、配列の参照範囲を中心に原因を確認してください。
修正案と、私がExcel上で確認する項目を分けて説明してください。
実行時エラー13「型が一致しません」
数値を入れる変数へ文字列を渡すなど、処理するデータの種類が合わない場合に発生します。Microsoft Learnのエラー13解説も確認できます。
Excel VBAで「実行時エラー13:型が一致しません」と表示されました。
エラーが発生した行:
【該当する行】
セルに入っている値の例:
【匿名のサンプル値】
関連するコード:
【コードを貼る】
どの値とデータ型が一致していないのか説明してください。
空白、文字列、日付が含まれる場合にも停止しない修正案を提示してください。
実行時エラー91「オブジェクト変数が設定されていません」
ワークシートやセルなどを扱う変数に、参照先が正しく設定されていない場合に発生します。Microsoft Learnのエラー91解説も参考になります。
Excel VBAで「実行時エラー91:オブジェクト変数またはWithブロック変数が設定されていません」と表示されました。
エラーが発生した行:
【該当する行】
関連するコード:
【コードを貼る】
Setによる代入、シートやブックの取得、Withブロックの開始位置を確認してください。
修正理由と、修正後のコードを提示してください。
実行時エラー1004
セル範囲、ワークシート、保存先、Excelのオブジェクトなど、さまざまな原因で表示される可能性があります。エラー番号だけではなく、メッセージ全文と黄色く表示された行をAIへ渡します。
Excel VBAで実行時エラー1004が表示されました。
エラーメッセージ全文:
【省略せず入力】
エラーが発生した行:
【該当する行】
実行前に開いていたブックとシート:
【仮の名称で入力】
関連するコード:
【コードを貼る】
原因を一つに決めつけず、考えられる原因と確認する順番を示してください。
確認結果によって修正方法が変わる場合は、場合分けして説明してください。
AIが作ったVBAコードを確認する手順
エラーが表示されなくても、処理結果が正しいとは限りません。業務用ファイルへ反映する前に、次の順番で確認します。
- 元のExcelファイルを複製する
- 複製したファイルへ修正コードを貼り付ける
- VBEの「デバッグ」からコンパイルし、構文上のエラーを確認する
- 少量のダミーデータで実行する
- 入力データと出力結果を手作業で比較する
- 空白、0件、重複、想定外の文字なども試す
- 元データや別のシートが削除・上書きされていないか確認する
- ファイルを閉じて開き直し、再度実行する
- 問題がなければ、変更内容と確認結果を記録する
VBEではF8キーの「ステップイン」を使うと、コードを1行ずつ実行しながら、どの行で問題が起きるか確認できます。詳しい操作はMicrosoft Learnのコード実行のトレースで確認できます。
マクロによる操作は元に戻せない場合があります。Microsoftも初回実行前にブックを保存するか、コピーを使用するよう案内しています。Microsoft公式のマクロ解説
まとめ:AIの修正案は確認してから業務へ反映する
AIを利用すると、VBAコードの意味を整理し、エラーの原因や修正案を確認できます。
ただし、AIへコードを貼り付ける前の匿名化と、修正後の動作確認は必要です。特に、ファイルの削除、データの上書き、外部ファイルへの出力を行うマクロは、必ずコピーしたファイルとダミーデータで試してください。
VBAをすべて理解していなくても、エラーメッセージ、該当する行、期待する結果を具体的に伝えることで、AIと一緒に原因を絞り込めます。
AIが作ったコードを完成品として扱うのではなく、確認が必要な修正案として使うことが、安全に業務へ取り入れるポイントです。
あわせて読みたい|Excel作業をAIで効率化したい方へ
VBAマクロの修正方法が分かったら、次はExcel作業全体をAIで効率化する方法も押さえておくと便利です。
まず、AIに書かせたVBAコードをExcelで使う基本操作を確認したい方は、以下の記事をご覧ください。VBEの開き方や、コードの貼り付け方を初心者向けに解説しています。

一方で、「VBAまでは必要ないけれど、Excel関数をAIに作ってもらいたい」という方は、以下の記事が参考になります。複雑な数式を自分で考えるのが苦手な方でも、AIにやりたいことを日本語で伝えるだけで、関数のたたき台を作れます。

また、PDF資料やマニュアルを読み込ませて、内容を要約・検索したい場合はNotebookLMも便利です。VBAコードの仕様書や過去資料を整理したいときにも活用できます。


コメント