![見出し画像](https://assets.st-note.com/production/uploads/images/105758472/rectangle_large_type_2_230e556ace7ffda61de1603ff1e616e0.png?width=1200)
VBA知識0の初心者はChatGPTでエクセルマクロをどこまで使えるのか
2022年11月にChatGPTが出てきてから、世の中のAI事情は一気に加速しました。今では検索の仕方だけでなく仕事の仕方まで変わっていくと言われています。
最近では下の日経の記事のように、多くの企業が自社のサービスにAIを導入してその質を向上させる事例も出てきました。
そしてこれは、会社員が一番よく使っているアプリケーションであろうエクセルの世界も同様です。
(1)ChatGPTは魔法のツールなのか?
ChatGPTは自然語検索に強いと言われていますが、それ以上にプログラム言語にかなり強いと言われています。ですから、今まではエクセルマクロを知っている人しかできなかったエクセル上でのプログラム構築ですが、これからの時代はプログラム知識0の初心者でもChatGPTに「業務でこういうことをしたい」と伝えたら、すぐにそのプログラムが出力されてくるんじゃないか、もうマクロの勉強をしなくてもいいじゃないかというイメージで語られることが多くなってきました。
そんなことができたら、本当に魔法のツール、夢のツールですよね。
ですが、実際のところはどうなのでしょうか?本当にまったくエクセルマクロというものを知らなくても、ChatGPTにやりたいことを伝えれば、何不自由なくプログラムを書けるものなのでしょうか?
僕はここに「本当に?」という疑問がわきました。
というのも、僕はダイヤモンド社から「4時間のエクセル仕事は20秒で終わる」という超初心者向けのエクセルマクロの本を書いている著者であり、エクセル講師もしています。
その経験から言うと、エクセルマクロをまったく知らない人がChatGPTに何かを言うだけでプログラムを書けるというのはあまりにも現実的ではないのです。
そこで、本当に知識0の初心者がChatGPTを駆使することでどこまでエクセルマクロを使いこなすことができるのかを検証してみたいと思います。
さて、本当に実現できるのでしょうか。
それではこれから、1つ事例を用いてChatGPT×エクセルマクロについて見ていきましょう。
(2)事例で検証する
マクロを使って列を挿入して、そこに数式を入れてみよう
◆演習事例
下図のように、「価格」シートのA列に商品コード、B列に値段が書かれている表があります。また、別途「商品名」シートのA列に商品コード、B列に商品名が書かれています。
この2つのシートを利用して「価格」シートの商品コードと値段の間に列を挿入し、そこに商品名を入れてほしいと、あなたは上司から頼まれました。
このプロセスをプロンプト用に分解してみてください。
![](https://assets.st-note.com/img/1684204878081-ofNhPoTSDY.png?width=1200)
(3)解答例
まずは私が経験したChatGPTでマクロを作るためのテンプレート(プロンプト)についてお話をすると、ポイントは次のとおりです。
1.エクセルマクロを教えてほしいと明記する
2.データがどう入っているのか、状況を説明する
3.やりたい内容をエクセルの処理に沿って分解して記述する
では上記の形式にそってChatGPTへの命令を記述していきましょう。
次の処理を行うエクセルマクロを教えてください。
「価格」シートのA列に商品コード、B列に値段が書かれている。また「商品名」シートのA列に商品コード、B列に商品名が書かれている。どちらの表もA1、B1には項目名が書かれており、A2、B2からデータが始まる。
1)「価格」シートを選択し、A列とB列の間に列を挿入する。
2)セルB1に「商品名」と入れる。
3)「価格」シートのセルA2にあるコードを選択する。
4)このコードと「商品名」シートのA列を参照して、「商品名」シートにそのコードに合致するものがあれば、「商品名」シートの該当コードに対応するB列の商品名を「価格」シートのセルB2に入れる。
5)もし合致するコードが存在しなかった場合は、「価格」シートのセルB2に「該当なし」と入れる。
6)次は「価格」シートのセルA3を選択する。
というように、同様の操作をリストの最後まで続ける。
(4)ChatGPTに入れてみる
このプロンプトをChatGPTに入れてみたところ、以下のコードが返ってきました。
![](https://assets.st-note.com/img/1684204896557-flMZsdJ6kj.png?width=1200)
![](https://assets.st-note.com/img/1684204902190-Thf47sIDeI.png?width=1200)
これを何も考えずにただエクセルマクロの標準モジュールに入れてプログラムを動かしてみたところ、完全に想定通り動作することが分かりました。
(5)感動するポイント
僕がChatGPTでエクセルマクロを作らせていて素晴らしいと思う点は、「繰り返し」の動作を引き出す際の簡単さです。
僕は「エクセルマクロを利用すべき一番の理由が、繰り返し処理である」と考えています。単調だけれども、人が手でやるには繰り返しの数が多すぎるといった状況において、マクロは絶大なる力を発揮するからです。
しかしマクロ初心者にとって「繰り返し構文」は、覚える構文が複雑だったり、無限ループを作りだしたりしてエラーを起こしてしまうことがあるため、できれば触れたくないところ。
こうした誰もがあまりやりたくない「繰り返し構文」を、マクロ初心者であったとしてもプロンプト内で「同様の操作をリストの最後まで続ける」という一文で導き出せてしまうことに僕は感動を覚えます。
(6)まとめ
今回は1つの事例の結果をお伝えしましたが、まったくのエクセルマクロ初心者でもChatGPTを使えばきちんと動くマクロがアウトプットできるということが分かりました。
もしマクロで楽になるような、毎月/毎週/毎日繰り返されるような定例のエクセル業務を持たれている方は、ぜひ一度チャレンジをしていただきたく思います。
なお次の書籍では、今回のような事例を6個、演習問題を17問用意して、マクロ初心者がどのようにすればChatGPTからきちんと動くエクセルマクロを出せるかを学べるようになっています。
きちんとマクロを1から学んでみたいという方はこちら。超初心者向けに専門用語を全く使わず、実践的な内容を学べます。
こうした内容を学び、ぜひご自身の日々の業務を圧倒的に効率化していっていただきたいと思います。
最後まで読んでくださって、ありがとうございました! これからも楽しみながら書き続けていきます!