「VBA?プログラミングでしょ?無理っしょ…」
少し前まで、私もそう思っていました。
ところが最近生成AIにお願いしてみたところ、VBAコードを考えてくれて、それを貼り付けただけで動いたんです。今回は私が実際にやってみた「部品リストからのデータ自動集計」を例に、AIを使ったVBAマクロ活用法を紹介します。
📋 この記事でわかること
- VBA、マクロとは
- 生成AIにVBAコードを書いてもらう方法
- コードをExcelに貼り付けて動かす手順
- 部品リストのデータ集計例
VBAとかマクロって何?
まずはそれぞれの大まかな説明をします。
- マクロ:Excelの操作を自動で実行する「機能」のこと
- VBA:そのマクロに命令を伝える「プログラム言語」のこと
家電で例えると、Excelが「マッサージ器」、マクロが「マッサージコース」、VBAが「マッサージコース用のプログラム」のイメージです。
VBAで何種類かのマッサージコースをプログラミングしてインストールし、インストールされたマッサージコースを選択してスタートすると、マッサージ器が動作するということです。
この「プログラミング」はソフトウェア設計者の仕事でしたが、現在は生成AIがプログラムを書いてくれるという、とんでもない時代になりました。
この話をExcelに戻すと、VBAを自分で書けなくても、AIに書いてもらえばいいという話です。
「でもマクロとかVBAなんて知らないけどExcel使ってるよ」って人も沢山いますよね。私もマクロの存在は知ってましたが、必要性すら考えたことがありませんでしたが、会社の「生成AI活用講座」に参加して業務に活用することを考え始めた結果、まず最初に活用できるのがExcelだという結論に至りました。

マグロ?

マグロなの?
部品リストからの見積りデータ自動集計
私の部署では購入実績が記載された部品リストを使って見積りをする作業が多くあります。部品リストはcsv形式で保存することが出来るので、そのデータから必要なデータを毎回手作業で加工して見積り依頼をしていました。
見積り案件が多いときは相当な時間が掛かりますし、手動で行うのでミスも起こります。どこでミスをしたのかを探るのも時間が掛かります。そこで見積もり作業をVBAで自動化出来ないかと考え、AI(Gemini)に頼んでみました。
AIへの頼み方
Geminiへの頼み方は「やりたいことを具体的に日本語で説明する」だけです。プログラミングの知識は一切不要です。私が実際に使ったプロンプトのイメージはこんな感じです。
Excelにcsvファイルを読み込むことでファイル内のデータを整理してメーカー別のExcelファイルとして出力することは出来ますか?
Geminiからは「メーカーがどの列にあって、どの列を使用するかを指定してもらえれば、ExcelのVBA(マクロ)で出来ます(実際には色々と丁寧な提案がありましたが、大分省略してます)」と回答がありました。
メーカーはD列にあります。使用する列はA列~E列です。A列の中で同じ品番があった場合は一行にまとめ、まとめた行同士のE列は合計数にして欲しいです。
Geminiからは「分かりました。」と返答があり、条件やロジックを提示した上でVBAコードが出力されました。
このあと、実際には下記の質問も追加して、全てを把握した感じです💦
VBAコードはどこに貼り付けるんですか?
操作方法を説明してください
いつもお話している「プロンプト5要素」とはかけ離れたプロンプトですが、全く知識がない状況からはこの頼み方でも結果的に回答が出てきます。ただこの依頼だと回り道をする可能性があるので、本来はきちんとプロンプトを考えた方が良いですが。
コードをExcelに貼り付けて動かす手順
Geminiが出してくれたコードをExcelで動かすには「VBAエディタ」を使います。難しそうに思われますが、操作はとても簡単です。
STEP 1 開発タブを表示する(初回のみ)
- Excelのリボンで右クリック
- 「リボンのユーザー設定」をクリック
- 右側の一覧から「開発」にチェックを入れて「OK」
これで上部に「開発」タブが表示されます。次回からこの操作は不要です。
STEP 2 VBAエディタを開く
「開発」タブ→「Visual Basic」をクリック。(Alt+F11でも開けます。)
STEP 3 コードを貼り付ける
- 左側のツリーから対象のブックを右クリック
- 「挿入」→「標準モジュール」を選択
- 右側の白いエリアにAIが出したコードをペースト
- 「名前を付けて保存」から「Excelマクロ有効ブック(.xlsm)」を選択して保存。
- VBAエディタを閉じ、上書き保存。
STEP 4 実行する
「開発」タブ→「マクロ」をクリックし、「実行」をくりっく。
これで動きます。簡単ですよね!
※ファイルを開く際に「マクロを有効にする」メッセージが表示された場合は必ずチェックを入れてマクロを有効にした状態で実行して下さい。
⚠️ 保存はマクロ有効ブック形式で
「名前を付けて保存」→ファイルの種類で通常の「.xlsx」で保存するとマクロが有効にならず、コードが消えてしまいますのでご注意ください。
うまく動かないときもAIに聞く
最初の一発で完璧に動くことばかりではありません。エラーが出ることもよくあります。でもそのときもエラーメッセージをそのままAIに貼り付ければ修正してくれます。
💡 エラーが出たときの対処法
さっきのコードを実行したら以下のエラーが出ました。
「実行時エラー ‘9’: インデックスが有効範囲にありません」
このようにエラー文をそのまま貼る(スクショでも可)と、原因と修正版コードを返してくれます。
「VBAがわからないと詰む」ではなく、「わからなければAIに聞けばいい」というスタンスでOKです。
ぱぴすけ魔法のプロンプト
VBAコード出力を依頼する際は「出力するコードはコードブロックで出してください」とお願いすると、VBAコードに説明が入って見やすくなり、エラーも少なくなりますので是非試してみて下さい!
エラーをいちいち解析してもらうのも手間にはなりますので💦

すごいやん✨

まーな
まとめ
- ✅ VBAはAIに書いてもらえる。自分はコピペして動かすだけでいい
- ✅ やりたいことを日本語で具体的に説明して依頼する
- ✅ VBAエディタへの貼り付けはAlt+F11→挿入-標準モジュール→ペースト
- ✅ファイルを開く際はマクロを有効にする
- ✅ 保存は「.xlsm(マクロ有効ブック)」で行う
- ✅ エラーが出たらエラー文をそのままAIに貼って修正してもらう
「プログラミングができないとAIを使いこなせない」という思い込みは、もう不要です。日本語で説明さえ出来れば、AIがコードを書いてくれる時代になりました!
次回は、PCを使わずにiPhoneのショートカットアプリでスマホ上の作業を自動化する方法を紹介します。こちらはコード不要で試せる内容ですので自動化の入門として、PCが苦手な方にも試しやすい内容です。お楽しみに!
