この記事の監修者
リスキルAIキャリア編集部
リスキルAIキャリアは、AI時代の学び直し・キャリア形成・副業・転職に役立つ情報を発信するWebメディアです。編集部では、生成AIスキルの身につけ方、AI関連スクール・講座の選び方、キャリアアップにつながる学習方法などを、実務目線でわかりやすくお届けしています。
ChatGPTはVBAの文法を知らなくてもマクロの下書きを数十秒で出します。ただし、出てきたコードをそのまま本番データに流すと事故につながります。ChatGPTのVBAは下書き役であり、動作検証と検算は人の責任で残ります。
この記事は、VBAが書けない事務・経理担当が失敗せずに自動化し、職場の評価につなげるための手順書です。まず動くコード例を示し、任せていい作業と人のレビューが必須な作業を判定表で線引きし、提出前の検算まで具体的に示します。検証はExcel for Microsoft 365(Windows版、2026年10月時点)で確認しました。
まずは完成例:G列が「対象」の行を別シートへ転記するVBA

最初に動くコードを示します。検索意図の中心は「ChatGPTでVBAをどう作るのか」だからです。次はSheet1のA〜G列から、G列が「対象」の行だけをSheet2へ転記する処理です。
入力条件は、Sheet1の1行目が見出し、データは2行目以降、G列に「対象」「対象外」が入ります。出力条件は、Sheet2を一度クリアし、見出し行もコピーし、原本Sheet1は変更せず、処理件数をMsgBoxで表示します。
Sub CopyTargetRows()
Dim wsSrc As Worksheet
Dim wsDst As Worksheet
Dim lastRow As Long
Dim dstRow As Long
Dim i As Long
Dim countCopied As Long
Set wsSrc = ThisWorkbook.Worksheets("Sheet1")
Set wsDst = ThisWorkbook.Worksheets("Sheet2")
wsDst.Cells.Clear
lastRow = wsSrc.Cells(wsSrc.Rows.Count, "A").End(xlUp).Row
dstRow = 1
countCopied = 0
wsSrc.Range("A1:G1").Copy Destination:=wsDst.Range("A1")
dstRow = 2
For i = 2 To lastRow
If wsSrc.Cells(i, "G").Value = "対象" Then
wsSrc.Range("A" & i & ":G" & i).Copy Destination:=wsDst.Range("A" & dstRow)
dstRow = dstRow + 1
countCopied = countCopied + 1
End If
Next i
MsgBox countCopied & "件を転記しました。"
End Sub
このコードは、A列の最終行を調べ、2行目から順にG列を見ます。「対象」の行だけSheet2へコピーし、件数を数えます。原本は読むだけで書き換えません。最後に転記件数を表示します。
コードはExcelの「開発」タブからVisual Basic Editor(VBE)を開き、挿入した標準モジュールに貼り付けます。マクロ有効ブック(.xlsm)で保存しないとコードは消えます。実行後はMsgBoxに表示された件数と、手作業で数えた対象行数を突き合わせます。
ChatGPT VBAで何ができて、誰に向くか(結論)

ChatGPTは転記・集計・書式整形・ファイル分割などの定型マクロ生成に向きます。逆に、金額確定や社外提出物の最終判断を伴う処理は向きません。判断の責任までは肩代わりできないからです。
向くのは、毎週・毎月くり返す手順固定の作業を抱える人です。合格基準を言葉で説明できる業務ほど、ChatGPTへの指示が具体的になり、出力が安定します。
| 向いている人 | 向いていない人 |
|---|---|
| 毎月同じ集計・転記を手作業している | 一度きりの非定型作業しかない |
| 合格基準(件数・合計)を言語化できる | 何が正解か自分でも説明できない |
| テストデータで検証する時間を取れる | 検証せず本番に直行したい |
| 社内の定型Excel業務を効率化したい | 社外提出物を無検証で自動確定したい |
関数レベルの自動化で足りる場合もあります。マクロの前に数式で解けないかはChatGPT×Excelの使い方|関数プロンプト、SUMIFS・XLOOKUP、Copilotとの違いで確認してください。
任せていい自動化と危険な自動化の業務別判定表

自動化は「任せる」か「人がレビューする」かの二択で仕分けます。基準は、間違えたときの被害の大きさと、やり直しが効くかどうかです。原本を上書き・削除する処理と、金額や社外提出物の確定は、常に人のレビューを挟みます。
| 業務 | ChatGPT VBA向きか | 理由 | 安全な設計 |
|---|---|---|---|
| 月次売上データの部署別集計 | 向く | 条件と合計値で検算できる | 元データは変更せず集計表だけ作成 |
| 請求書PDFの金額確定 | 危険 | 誤請求が社外に出る | マクロは一覧作成まで。確定は人が確認 |
| 重複顧客の削除 | 危険 | 同姓同名や表記ゆれで誤削除する | 削除せず「重複候補」列に印を付ける |
| 交通費精算の対象外チェック | 条件付き | 規程判断が必要 | 条件違反候補だけ抽出し、人が承認 |
| メール添付ファイルの一括送信 | 危険 | 誤送信の被害が大きい | 下書き作成まで。送信ボタンは人が押す |
| シートの書式統一・列幅調整 | 向く | 失敗しても原本が壊れない | 加工用コピーで実行 |
危険側の処理は、人がボタンを押す前に目視確認する設計にします。削除する代わりに削除対象へ印を付けて止める。保存も別名保存にする。この2点で事故の多くを防げます。
ChatGPTでExcelマクロを作る手順とVBA作成プロンプト

作成は6ステップで進めます。最初の指示では、入力シート・処理条件・出力先を分けて書きます。ここが曖昧だと、ChatGPTは存在しない列名やシート名でコードを書きます。
- 作業フォルダをA=入力原本(編集禁止)/B=加工/C=出力の3つに分ける
- やりたい処理を「入力・処理・出力」の順で日本語で書く
- ChatGPTにVBA作成プロンプトを投げる
- テストデータ(10〜20行)で動かす
- 件数と合計を検算する
- 原本のバックアップを取ってから本番で実行する
フォルダ分離は再現性に効きます。原本と加工物と成果物を混ぜると、どれを更新してよいか曖昧になり検証ができません。原本は参照専用にし、加工はコピー側で行います。
コピペで使えるVBA作成プロンプト
次のプロンプトをそのままChatGPTに貼り、自分の条件に書き換えてください。入力・処理・出力・制約を分けると、生成コードが安定します。
あなたはExcel VBAの実装者です。
以下の条件でVBAコードを作成してください。
【入力】
- ブック内の「Sheet1」を対象にする
- 1行目は見出し
- データは2行目以降
- A〜G列まで使用
- G列に「対象」と入っている行だけを抽出する
【処理】
- Sheet1の原本データは変更しない
- G列が「対象」の行だけを「Sheet2」へ転記する
- Sheet2は実行前にクリアする
- 見出し行もSheet2へコピーする
【出力】
- Sheet2に抽出結果を出力する
- 最後に転記件数をMsgBoxで表示する
【制約】
- 行の削除、原本の上書き保存はしない
- 変数宣言を入れる
- 初心者が読めるようにコメントを入れる
逆に、次のような指示は失敗します。生成されるコードが毎回ぶれ、意図しないシートを触る原因になります。
Excelで対象行を抽出するマクロを作って
この指示が悪い理由は3点です。
- シート名がない
- どの列を見るか不明
- 原本を変更してよいか不明
閾値が将来変わる場合は「判定の閾値はセルB1を参照して」と加えます。ChatGPTは値をハードコードせず参照セルを使う設計に変え、値が変わってもセルの書き換えだけで済みます。
提出前の動作検証と検算の具体手順
検証は「小さいテストデータ→件数と合計の突合→本番」の順で行います。いきなり全件で回さないのが鉄則です。実行前の原本バックアップと、処理後の件数・合計の突合が事故を防ぎます。
再現用に、次の検証データをSheet1へ貼り付けてください。1行目は見出し、2行目以降がデータです。
| 行 | 伝票番号 | 部署 | 担当 | 金額 | 日付 | 備考 | 判定 |
|---|---|---|---|---|---|---|---|
| 2 | A001 | 営業 | 佐藤 | 12000 | 2025/1/5 | 通常 | 対象 |
| 3 | A002 | 経理 | 鈴木 | 8000 | 2025/1/6 | 通常 | 対象外 |
| 4 | A003 | 営業 | 田中 | 15000 | 2025/1/7 | 通常 | 対象 |
| 5 | A004 | 総務 | 高橋 | 5000 | 2025/1/8 | 空白確認 | |
| 6 | A005 | 営業 | 伊藤 | 22000 | 2025/1/9 | 通常 | 対象 |
このデータで先ほどのコードを実行したときの期待結果は次のとおりです。自分の環境でこの数値と一致すれば、コードは正しく動いています。
- 抽出件数:3件
- 抽出後の金額合計:49,000円
- 空白の判定行(5行目)は抽出しない
- 見出しを含めたSheet2の行数:4行
検算で必ず見る3点
- 件数: 処理前後の行数が想定どおりか(COUNTAで数える)
- 合計: 金額や数量の総和が一致するか(SUMで突合)
- 端: 先頭行・最終行・空白行が正しく扱われたか目視
合計がズレたら、見出し行を数えている、空白セルを0と誤認しているなどが典型です。原因を特定したら、次章のデバッグ依頼に進みます。テストデータで一致してから本番へ移します。
「知っている」で止めない生成AIスキルの証明|PEP検定
PEP検定が問うのは基礎的な知識はもちろん、実務においてどのように生成AIを活用するか、プロンプトを設計するかなど“実際に使いこなす力”です。日本初の実務特化検定で、AIエージェントのように動きの速い領域もシラバスが追従。学び直しの成果を、転職・副業・社内評価で通用する客観的な根拠に変えられます。
- ✓知識で止めず、プロンプト設計など“手を動かして使う力”を測る
- ✓CBTで全国いつでも受験可能
- ✓個人の転職・副業から、社員のリスキリング成果の証明まで対応
監修|北海道大学大学院 情報科学研究院 川村 秀憲 教授
人工知能・マルチエージェントシステム研究の第一人者。観光情報学会理事ほか。
ChatGPT VBAの実績を資格・ポートフォリオに変える
ChatGPTでVBAを作れるだけでは、転職・副業で再現性が伝わりません。採用側は「同じ品質をもう一度出せるか」を見ます。そこで、次の3点を記録に残します。
- 作成したプロンプト
- 生成・修正したVBAコード
- 検算結果(例:抽出件数10件、合計差額0円)
生成AIを業務改善に使う力を客観的に示すなら、作例だけでなく基礎知識も確認しておきます。ChatGPT VBAで作った自動化事例を、検定の学習テーマとセットで整理すると、評価面談や面接で説明しやすくなります。生成AIを業務改善に使う基礎を体系的に確認したい人は、PEP検定の出題範囲と受検方法を確認してください。
マクロが動かない・エラーコード別デバッグ依頼プロンプト
エラーは症状とエラーメッセージをそのまま貼ると解決が速くなります。「動きません」だけでは原因を絞れません。コード全文・エラーコード・止まった行の3点をセットで渡します。
止まった行の確認方法です。マクロ実行中にエラーが出てVBEが黄色く行を反転させたら、その行を選んでコピーします。エラーダイアログの「デバッグ」を押すと、問題の行が黄色でハイライトされます。
| 症状 | よくある原因 | Excelで確認する場所 | 依頼文 |
|---|---|---|---|
| 実行時エラー1004 | シート名違い、範囲指定ミス、保護シート | シート名、結合セル、保護状態 | 「このコードで1004が出ます。シート名はSheet1/Sheet2です。原因候補を3つに分けて修正版を出してください」 |
| 型が一致しません 13 | 数値列に文字、日付形式の混在 | 金額列、日付列、空白セル | 「型不一致13が出ます。空白・文字列・日付混在に耐えるコードへ修正してください」 |
| インデックスが有効範囲にありません 9 | 指定したシート名が存在しない | タブ名の全角半角、空白 | 「実行時エラー9が出ます。シート名の存在確認を入れたコードに直してください」 |
| オブジェクトが必要です 424 | Set忘れ、Nothing参照 | 変数宣言、Set行 | 「Nothing判定を入れて、対象が見つからない場合はMsgBoxで止めるコードにしてください」 |
修正版をもらったら、必ずテストデータで再検証します。エラーが消えても結果が正しいとは限りません。件数と合計の突合を毎回やり直します。
VBA・Office Scripts・Python/Power Automateの使い分け
ツールは「どこで誰が動かすか」で選びます。VBAはデスクトップExcel、Office ScriptsはWeb版Excelとクラウド自動化が土俵です。両者の違いはMicrosoftが整理しています(Microsoft Learn: Office ScriptsとVBAの違い)。
| 手段 | 得意領域 | 向くケース |
|---|---|---|
| VBA | デスクトップExcel内の処理 | 既存の.xlsm資産が多い職場 |
| Office Scripts | Web版Excel・クラウド連携 | Microsoft 365でブラウザ中心 |
| Power Automate | アプリ間の自動連携 | メール・SharePoint横断の自動化 |
| Python | 大量データ・外部処理 | Excel外の集計や機械処理 |
迷ったら、次の順で決めます。
- 会社のExcelがデスクトップ版中心で、既存ファイルが.xlsmならVBA
- Excel for the webとOneDrive/SharePoint中心ならOffice Scripts
- メール、Teams、SharePoint、承認フローまでつなぐならPower Automate
- 10万行以上のCSV処理、API連携、Excel外のデータ加工が中心ならPython
判断時の注意点です。Office Scriptsは主にExcel on the webで使います。VBAはブラウザ版Excelでは基本的に実行できません。Power Automateは実行回数やコネクタに制限・ライセンス差があるため、会社の契約確認が必要です。Python in Excelは利用環境・ライセンス・展開状況に依存するため、誰でも同じように使える前提では書けません。
保守できる人が自分だけだと属人化します。コードにコメントを残し、処理内容を文書化してリスクを下げます。自動化を職場全体で横展開するなら、ツール選定とルール整備を部署単位で揃える必要があります。チームへの定着を進めたい場合は、生成AI活用の法人研修で業務設計から学べます。
機密データの入力可否と匿名化・マクロ有効化のリスク判断
実データをそのままChatGPTに貼るのは避けます。氏名・口座・取引先名は匿名化し、構造だけ伝えれば十分です。コード生成に実名は不要だからです。次の表で貼ってよい情報を線引きします。
| データ | ChatGPTに貼る可否 | 理由 | 代替の書き方 |
|---|---|---|---|
| 実在の氏名・住所・電話番号 | 不可 | 個人情報 | 「氏名列」「住所列」とだけ書く |
| 取引先名・請求金額一覧 | 原則不可 | 取引情報・機密情報 | 取引先A、金額はダミー値に置換 |
| シート構成・列名 | 可 | 構造情報として必要 | 「A列=日付、B列=部署、C列=金額」 |
| エラーメッセージ | 可 | 個人情報を含まなければ原因特定に有効 | メッセージ全文と止まった行を貼る |
| 社内規程の全文 | 要確認 | 社外秘の可能性 | 条件だけを要約して書く |
補足の注意です。APIや社内版AIを使っている場合でも、会社のAI利用規程が優先されます。顧客データそのものではなく、列構成とダミーデータで依頼します。コード生成に実名・実口座番号・実メールアドレスは不要です。入力してよい情報の基準は生成AIに入力してはいけない情報|匿名化で使い続ける判定表も参照してください。
配布されたマクロ付きファイルの有効化も慎重に判断します。Microsoftは、インターネット由来のファイルに含まれるマクロを既定でブロックする方針を公表しています(Microsoft Learn: 既定でブロックされるマクロ)。出所不明のマクロは有効化せず、自分で中身を読めるコードだけ実行します。社内PCでは管理者ポリシーが優先されます。
時短実績を副業・転職の実績に言語化する方法
自動化は数字で示せて初めて実績になります。「マクロを作った」ではなく「月4時間を5分に短縮」と言い換えます。Before・After・削減時間・対象件数の4点をセットで記録します。
- 対象業務: 月次の売上集計転記
- Before: 手作業で約4時間/月
- After: マクロで約5分/月
- 効果: 月あたり約3.9時間削減、年間約47時間
職務経歴書には「月次集計をVBA化」ではなく、「売上2,000行の部署別集計を月4時間から5分に短縮。検算は件数・合計差額0円で確認」と書きます。条件と数字を入れると、再現性が伝わります。
自分の業務が自動化で消えるか残るかの見極めは事務職は生成AIでなくなる?消える作業・残る仕事を判定表で仕分けが参考になります。消える作業を自動化し、残る仕事に時間を移す発想です。実績のまとめ方は生成AIスキルの証明方法|資格×ポートフォリオ×数字で示す30日手順にまとめています。
よくある質問
VBAの知識ゼロでもChatGPTでマクロは作れますか
作れます。ただし、動作検証と検算は自分で行う必要があります。コードを1行も読めないと、誤った結果を見抜けません。まずは件数と合計の突合だけでも覚えてください。
ChatGPTで作ったVBAコードはそのまま使ってよいですか
そのまま本番実行しないでください。テストデータで件数・合計・先頭行/末尾行を確認します。原本はコピーして実行します。削除・上書き・メール送信を含むコードは特に危険です。
ChatGPTにVBAコードを修正してもらうとき、何を貼ればよいですか
コード全文、エラーメッセージ、黄色く止まった行、シート名、期待する結果の5点を貼ります。個人情報や実データは貼らず、ダミーデータに置き換えます。この5点があると原因の特定が速くなります。
VBAとマクロの違いは何ですか
マクロはExcel操作の自動化全般を指します。VBAはそのマクロを書くためのプログラミング言語です。Excelの「マクロの記録」で作られるコードもVBAで書かれています。
ChatGPT VBAは副業に使えますか
使えますが、納品物には検証・説明・保守が必要です。「コードを生成できる」だけでは不足します。業務要件を聞く力、エラー対応、検算手順まで揃えて初めて仕事になります。「誰でも稼げる」という前提では考えないでください。
無料のChatGPTで足りますか
無料版でも短いコードの試作は可能です。ただし利用制限やモデル仕様は変更されるため、最新の料金・プラン情報は公式で確認してください。継続して学ぶなら有料契約のほうが履歴や処理が安定します。
生成したマクロで原本を壊さないか不安です
原本は編集禁止フォルダに置き、加工はコピー側で行えば壊れません。プロンプトで「削除・上書きはしない」と明示し、実行前にバックアップを取ります。削除系は印を付けて止める設計にします。
「知っている」で止めない生成AIスキルの証明|PEP検定
PEP検定が問うのは基礎的な知識はもちろん、実務においてどのように生成AIを活用するか、プロンプトを設計するかなど“実際に使いこなす力”です。日本初の実務特化検定で、AIエージェントのように動きの速い領域もシラバスが追従。学び直しの成果を、転職・副業・社内評価で通用する客観的な根拠に変えられます。
- ✓知識で止めず、プロンプト設計など“手を動かして使う力”を測る
- ✓CBTで全国いつでも受験可能
- ✓個人の転職・副業から、社員のリスキリング成果の証明まで対応
監修|北海道大学大学院 情報科学研究院 川村 秀憲 教授
人工知能・マルチエージェントシステム研究の第一人者。観光情報学会理事ほか。
リスキルAIキャリア 
