ExcelマクロとVBAはAIに書かせる|コード知識ゼロの自動化

ExcelマクロとVBAをAIに書かせる方法を解説する記事のサムネイル

毎週金曜の夕方。各営業所から届いたExcelファイルを順に開き、数字をコピーして本部フォーマットへ貼り付け、日付順に並べ替え、要らない行を消し、列幅をそろえて配布する。指が手順を覚えるほど繰り返してきた作業に、今週もまた1時間が消えていく。マクロを組めば一瞬で終わることは、うすうす知っている。だがVBAと聞いた瞬間、エンジニアが操る黒い画面が頭に浮かび、手が止まる。あれは自分の世界の道具ではない、と。

結論から言う。その線引きはもう要らない。コードは1行も覚えなくていい。やりたい作業を日本語で説明できるなら、VBAを書くのはあなたではなくAIの仕事になる。あなたが担うのは、何をしたいかを言葉にすることと、出てきたものをExcelに貼り付けて実行すること。この2つだけであり、どちらにもプログラミングの知識は要らない。

この記事では、マクロで消せる定型作業の見極め方、AIにマクロを作らせて動かすまでの5ステップ、精度を左右する依頼文の書き方、そのままコピペで使えるプロンプト2本、そして安全に使うための注意点までを順に示す。読み終えるころには、毎週の「金曜の1時間」を数分に変える道筋が見えているはずだ。

目次

マクロで消せる仕事はどれか?

先に対象の見極めから入る。マクロに任せるべきは手順が毎回同じで判断の要らない作業に限られる。マクロは決められた手順を高速かつ正確に繰り返す道具であり、状況に応じた判断や例外への対応は苦手だからだ。裏を返せば、新人向けの手順書に書ける作業なら、ほぼすべてが自動化の候補になる。

営業部門で毎週・毎月発生する定型作業は、おおよそ次の4つの型に収まる。自分のチームの作業を当てはめてみてほしい。

営業現場の実例手作業(Before)マクロ化後(After)
繰り返し系(毎週の転記)各営業所の週報から数字を本部フォーマットへ転記する毎週60分約1分
整形系(体裁統一・不要行削除)SFAから落としたCSVの不要行を消し、列幅と表記をそろえる毎回20分数秒
振り分け系(担当別にシート分割)全社の案件一覧を担当者ごとのシートに分けて配布する毎月45分約1分
集計系(複数ファイル合算)各拠点の売上ファイルを1枚のシートに積み上げて合算する毎月90分約2分

時間はあくまで一例の目安だが、分単位の作業が秒単位に変わるという桁の違いは、どの型にも共通する。狙い目は、発生頻度が高く手順が固定されている作業だ。毎週の転記のような繰り返し系から着手すると、かけた手間がすぐ回収できる。

一方で、ファイルをまたがない単発の計算や表引きなら、マクロを持ち出すまでもなく関数で片づくことが多い。関数もまたAIに作らせればいい。Excelの関数をAIに作らせる方法を先に確認し、関数で足りるかを見極めてから進むと遠回りがない。また、相手に合わせて文面を変える提案書づくりや、数字の解釈が要る報告コメントは、マクロではなく生成AIに直接任せる領域である。

AIにマクロを作らせる5ステップとは?

ここからが本題だ。手順は5つ。所要時間を足しても20分弱であり、初回でも昼休み1回ぶんで最初のマクロが動く。2回目以降は10分もかからなくなる。

Step 1|やりたいことを日本語で書き出す【所要時間:5分】

最初にやるのはAIへの相談ではなく、作業の言語化だ。新人に引き継ぐつもりで、いつもの手順を箇条書きにする。押さえる要素は5つ。どのファイルの、どのシートの、どの列を、どう処理して、どうなれば完成か。

たとえばこう書く。「週報まとめ.xlsxの入力シートにあるデータを、E列の受注金額が大きい順に並べ替え、金額が空欄の行を削除して、報告シートに貼り付ける」。ここまで言葉にできれば、実は仕事の8割が終わっている。AIが出すコードの質は依頼文の質でほぼ決まるからだ。

Step 2|AIに依頼してコードを出させる【所要時間:2分】

書き出した内容を、後述のプロンプト1本目に差し込んでAIに送る。ChatGPTでもCopilotでもGeminiでも構わない。普段使っているもので十分だ。

数十秒で、英単語の並んだコードの塊が返ってくる。ここで大切なのはコードを読もうとしないことだ。読むべきは、コードの前後にAIが添える日本語の説明だけでいい。説明がやりたいことと合っていれば、コードブロックの右上に表示されるコピーボタンで全文を写し取る。

Step 3|Excelに貼り付けて実行する【所要時間:3分】

唯一の慣れない操作がここだが、やることは貼り付けだけだ。上から順に進めてほしい。

  1. 開発タブを表示する(最初の1回だけ)。ファイル → オプション → リボンのユーザー設定 と進み、右側の一覧で「開発」にチェックを入れてOKを押す。リボンに開発タブが現れる。
  2. 開発タブの左端にあるVisual Basicをクリックする。コードの置き場所になる編集画面(VBEと呼ばれる)が開く。黒い画面を想像していたなら安心してほしい。出てくるのは素っ気ない白い画面だ。
  3. 編集画面の上部メニューで 挿入 → 標準モジュール を選ぶ。白い入力欄が開く。
  4. コピーしておいたコードを、その白い欄に貼り付ける(Ctrl+V)。
  5. 貼り付けたコードのどこかをクリックしてカーソルを置き、F5キーを押す。マクロを選ぶ小さな画面が出た場合は、表示された名前を選んで実行を押す。

これだけで、Step 1で日本語にした作業がExcel上で一気に実行される。初回は拍子抜けするはずだ。なお編集画面は、慣れてきたらAlt+F11のショートカットでも開ける。

Step 4|エラーが出たらエラー文をそのままAIに貼る【所要時間:2分】

一発で動かないことは普通にある。ここで諦める人が多いが、実にもったいない。エラーは失敗の宣告ではなく、AIに渡す調整の材料だ。

対応は1つだけ。画面に表示されたエラーメッセージを、読まずにそのままコピーしてAIに貼るだけでいい。実行時エラーの番号と文言、たとえば「インデックスが有効範囲にありません」といった表示をそのまま渡せば、AIが原因を特定して修正版を返してくる。確認画面にデバッグというボタンが出た場合は、押すとコードの一部が黄色く反転するので、その行も一緒に貼ると精度が上がる。

エラー文の意味を理解する必要は、最後までない。貼って、返ってきた修正版で全文を貼り替えて、もう一度F5。たいていは2〜3往復のうちに動くところまで行き着く。

Step 5|動いたらマクロ有効ブックで保存しボタン化する【所要時間:5分】

動いたら、2つの仕上げで来週以降の資産に変える。

1つ目は保存形式だ。通常のxlsx形式では、マクロは保存されずに消えてしまう。名前を付けて保存を開き、ファイルの種類で「Excel マクロ有効ブック (*.xlsm)」を選んで保存する。次に開いたとき、画面上部に黄色い警告バーが出たらコンテンツの有効化を押す。これでマクロ入りのファイルとして使い続けられる。

2つ目はボタン化だ。開発タブ → 挿入 と進み、フォームコントロールの左上にあるボタンを選んでシート上をドラッグすると、四角いボタンが描ける。直後に出るマクロの登録画面で、いま動かしたマクロを選んでOK。ボタン上の文字は、右クリックからテキストの編集を選べば「週報作成」のような日本語に変えられる。

これで来週からはボタンを1回押すだけの作業になる。ここまで仕上げれば、マクロはあなた個人の時短術ではなく、部下にそのまま配れるチームの資産だ。同じ要領で対象を広げていけば、見積書作成をAIで自動化する方法のような隣の定型業務にも手が届く。

依頼文の書き方で何が変わるのか?

同じ作業を頼んでも、依頼文しだいでAIの出来は大きく変わる。人間の部下なら文脈を察して動いてくれるが、AIは書かれたことしか知らないと心得ておく。差がつくポイントは3つある。

第一に、固有名詞と位置で伝える。「いい感じに整えて」ではAIは動けない。シート名は入力シート、A列は日付、B列は営業所名、というレベルまで具体化する。

第二に、サンプル行を1〜2行見せる。列の並びとデータの形式が実物どおりに伝わると、コードの精度は目に見えて上がる。ただし貼るのは実データではなく、形式だけ同じダミーの行にする。この点は後述の注意点で詳しく触れる。

第三に、一度に全部を頼まない。転記も並べ替えも体裁調整も、と最初から1本に詰め込むと、エラーが出たときにどこが悪いのか切り分けにくい。まず転記だけ、動いたら並べ替えを追加、と1機能ずつ育てるほうが結果として速い。

観点伝わらない依頼伝わる依頼
対象売上のファイルをまとめて週報まとめ.xlsxの入力シートのA〜E列を
処理いい感じに整えてE列の金額が大きい順に並べ替え、金額が空欄の行は削除して
完成条件(書かない)報告シートに見出し行つきで貼り付いていれば完成

この3つを最初から織り込んだ依頼文の型が、次章のプロンプトである。

そのままコピペで使えるプロンプトはどれか?

2本用意した。1本目がマクロの生成依頼、2本目がエラーの修正依頼だ。〔 〕の中身を自分の作業に差し替えて、そのまま送ればいい。

あなたはExcel VBAの専門家だ。次の条件で、Excelのマクロ(VBA)を作成してほしい。

# 前提
- 環境: 〔例: Windows版のMicrosoft 365のExcel〕
- 対象ファイル: 〔例: 週報まとめ.xlsx の1ファイルだけで完結する〕
- シート構成: 〔例: 「入力」シートに各営業所から集めたデータがあり、「報告」シートは空〕
- 列構成: 〔例: 入力シートは A列=日付、B列=営業所名、C列=担当者、D列=商談件数、E列=受注金額。1行目は見出し〕
- サンプル行(ダミー): 〔例: 4/7 東京 山田 5 1200000〕

# やりたい処理
〔例: 入力シートのデータをE列の受注金額が大きい順に並べ替え、受注金額が空欄の行を削除して、結果を報告シートに貼り付けたい〕

# 完成条件
〔例: 報告シートに、1行目の見出しつきで並べ替え済みのデータが入っていること〕

# 出力の条件
- 初心者がそのまま貼り付けて動かせる、完成したコードを1本だけ出すこと
- コードの各処理に、何をしているかが分かる日本語のコメントを付けること
- コードの後に、貼り付けから実行までの手順を3行以内で書くこと

1本目で動けば、2本目の出番はない。だが前述のとおり、一発で動かないことは普通にあるので、エラーが出たらこちらを使う。

先ほどのマクロを実行したところ、エラーが出た。修正してほしい。

# エラー内容
〔例: 実行時エラー '9' インデックスが有効範囲にありません〕

# 状況
- エラーで止まった行: 〔例: デバッグを押して黄色くなった行をそのまま貼る。分からなければ「不明」と書く〕
- 実行したときの状態: 〔例: 報告シートを開いた状態で実行した〕

# 依頼
1. エラーの原因を、専門用語を使わずに2行以内で説明すること
2. 修正済みのコードを、全文をそのまま貼り替えられる形で出し直すこと
3. 最後に、このマクロが何をしているかを日本語の箇条書きで説明すること。コードが読めない人に、処理の中身を口頭で説明できるようにしたい

2本目の最後の項目には狙いがある。マクロの中身を日本語で説明させておけば、道具がブラックボックスにならない。上司や情報システム部門から「これは何をするものか」と聞かれたときに、自分の言葉で答えられる状態をあらかじめ作っておくわけだ。

安全に使うための注意点は何か?

AIとマクロの組み合わせは強力な分、守るべき約束が4つある。どれも数分で済む予防策だ。

第一に、実行前に必ずファイルのコピーを取る。最重要はこれだ。マクロで行った変更にはCtrl+Zが効かないという性質がある。行を消すマクロが想定外の動きをしても、コピーさえ残っていれば笑い話で済む。原本を別フォルダに退避し、コピー側で試すことを習慣にしたい。

第二に、マクロ有効ブックで保存する。前述のとおり、xlsx形式のまま保存するとマクロは消える。保存後、ファイル名の末尾がxlsmになっているかを確認しておく。

第三に、会社のルールを確認する。マクロの実行や外部AIツールの利用に社内ポリシーを設けている会社は珍しくない。とくにマクロ入りファイルを部門へ配布する場合は、情報システム部門に一言通してから展開するほうが、長い目で見て信頼を守れる。

第四に、実在の顧客情報をAIに貼らない。依頼に必要なのは列構成とデータの形式だけであり、実在の顧客名・連絡先・金額は要らない。サンプルはダミー行で伝えれば精度は十分に出る。なお、顧客データそのものの掃除、たとえば会社名の表記ゆれ統一や重複の整理まで進めたいなら、顧客データの名寄せ・整備をAIで進める方法で、安全なやり方も含めて解説している。

Next Action:今日やる3つ

  • 毎週または毎月繰り返しているExcel作業を1つ選び、新人に引き継ぐつもりで手順を箇条書きにする(5分)
  • 対象ファイルのコピーを取り、1本目のプロンプトに手順を差し込んでAIに送る(5分)
  • 返ってきたコードを標準モジュールに貼り付けてF5キー。エラーが出たら、エラー文ごとAIに貼って直す(10分)

黒い画面の向こう側は、思っているより近い。今日の20分が、来週からの金曜の1時間をチームに返してくれる。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次