えっ!こんなに簡単なの?コード無しで楽々!Excelマクロを作成する方法
いしはらゆうと
Excelマクロといえば、
- プログラミングが必要
- とにかく難しい
- おそらく便利なのだろうけれどよく分からない
といったイメージを持たれている方が多いと思います。
そんなイメージとは異なり、実はマクロって「コード無し」で簡単に作ることができるのです。
特に最近では「生成AI」を誰でも無料で使うことができます。「生成AI」を使えば、たとえプログラミングが全くできなくても、かなりのものを作ることが可能です。
この記事では、そんな「コードを使わずにExcelマクロを作る方法」を分かりやすくお伝えします!
Excelマクロについて
本題に入る前に、改めて「Excelマクロとは何か?」ということについて少しお伝えします。マクロとは一言で言えば「一連の処理をまとまりにしたもの」です。
例えば「セルに値を入力する(処理A)」・「色をつける(処理B)」・「印刷する(処理C)」という別々の処理があったとして、それらを「マクロ1」とまとめれば、「マクロ1」を実行するだけで全ての処理を一括で実行することができます。

このExcelマクロを使うことで、何ができるかというと「繰り返し作業を自動化」することができます。
例えば、
- 毎月の売上データを集計してグラフを作成
- 日報などのフォーマットを自動作成
- 不正な文字が入っていないかチェック
などの繰り返し作業をマクロ化することで、自動化することができます。ポイントは「繰り返し作業」ということです。「今日だけ特別にする作業」などスポット的なものはマクロ化してもあまり意味がないので、「毎日」・「毎週」・「毎月」といった定期的な作業がマクロ化に向いています。
また、Excelマクロは中身は「VBA(Visual Basic for Applications)」というプログラミング言語で書かれています。

このことが「マクロは難しい」と思われてしまう原因の1つなのですが、最初に述べたようにコードが分からなくてもマクロを作ることは可能なので、安心してください。
ただ、マクロの中身は「VBA」というプログラミング言語でできているということだけは、頭に入れておいてください。
マクロ学習の落とし穴
Excelマクロを学習する上でよく見かける遠回りな方法は、下記のような学習方法です。
- 本で勉強する
- 「目的物」無しに勉強する
- 生成AIに丸投げ
間違い1:本で勉強する
世の中にExcelマクロの本はたくさんありますが、本で勉強して実務で使えるマクロを作れるようになるのはかなり難しいです。
それは、英語に例えると「本での勉強=文法」、「実務での使用=英会話」のイメージです。いくら文法を勉強し続けても、実際の会話で英語が使えるか?はまた別ですよね。
マクロも同じで、目的無しに、文法の勉強から入ってしまうと「つまらない」・「難しい」・「使えない」となり、挫折してしまう原因になるのです。
間違い2:「目的物」無しで勉強する
間違い1の話と関連しますが、マクロはあくまで「ある作業を効率化するための手段」です。つまり「この業務をもっと効率化できたらいいな!」があってマクロによる自動化があるということです。
そのため、「何を自動化したいか」という目的が無いまま勉強してしまうと、「使えない知識」になってしまうのです。

間違い3:生成AIに丸投げ
とても便利な生成AIで、今回も生成AIを使ってマクロを作る方法をご紹介しますが、あまりに丸投げだけだと下記のようなことが起こるリスクがあります。
- エラーが解消せずエンドレスなやり取り(逆に時間がかかる)
- コードのミスやエラーに気付かず、重大な欠陥が後から発覚
生成AIにお願いすればプログラムそのものは即座に作ってくれますが、あまりに中身が分かっていないままだと、「どうエラーを解消したらいいか」・「どこにエラーがあるのか」といったことが分からず、結局どのように修正を依頼したら良いかが分からなくなってしまいます。
何となく動くマクロになっているけれど実は全然違う結果が出ていた、などということもあり得るので少しずつでも、生成AIが作ってくれたコードを理解できるように意識しましょう。
コード無しでマクロを作る方法
それでは具体的にコード無しでマクロを作る方法をご紹介していきます。コード無しでマクロを作る方法としては大きく、下記の2つがあります。
- マクロの記録
- 生成AI
それぞれについて具体的な例とともに手順をお伝えします。まずは「マクロの記録」についてです。
「マクロの記録」で作る
「マクロの記録」というのはExcelに標準で入っている機能です。「記録開始」のボタンを押せばその後の動作を記録してくれるので、操作するだけでExcelマクロを作成することができます。

「マクロの記録」を使うための準備
「マクロの記録」を使うための準備としてExcelで「開発」というタブを使えるようにする必要があります。
ご自身のExcelで「開発」というタブが出ていない場合は以下の手順で「開発」タブを出現させておきましょう。※「開発」タブが既にある場合は飛ばしてOKです。

1. 「ファイル」タブをクリック

2. 「オプション」をクリック

3. 「リボンのユーザー設定」をクリック

4. 右側のボックスの「開発」にチェックを入れて「OK」をクリック

これで準備は完了です。
列の表示・非表示を自動化するマクロの作成
完成イメージ
下記のような表で、「列非表示」をクリックするとB列・C列が非表示になり、「列表示」をクリックすると再表示されるようなマクロを作ります。

まずはExcelを開き、画像にならってA1~D5セルに下記の値を入力してください。※入力が面倒だという方は、画像の下のリンクよりExcelファイルをダウンロード下さい。

では、このファイルを使って「マクロの記録」を実行していきます。
1. 「開発」タブの「マクロの記録」をクリック

2. 「マクロ名」を「列非表示」にして「OK」をクリック

3. B列、C列を選択して右クリック「非表示」をクリック

4. 「開発」タブの「記録終了」をクリック

5. 「開発」タブの「マクロの記録」をクリック

6. 「マクロ名」を「列再表示」にして「OK」をクリック

7. A列、D列を選択して右クリック「再表示」をクリック

8. 「開発」タブの「記録終了」をクリック

ここまでで列表示、非表示のマクロを作ることができました。実行しやすいようにボタンを作っていきます。
9. 「開発」タブの「挿入」をクリックし「フォームコントロール」左上のボタンをクリック

10. 好きな場所にドラッグする

11. 「マクロの登録」の画面が出てくるので、「列非表示」のマクロを選択してOKをクリック

※「マクロの登録」画面が出てこなかった、消えてしまった場合はボタンを右クリックして「マクロの登録」をクリック

12. ボタンを右クリックし「テキストの編集」で分かりやすい名前に変更する。

13. 「開発」タブの「挿入」をクリックし「フォームコントロール」左上のボタンをクリック

14. 好きな場所にドラッグする

15. 「マクロの登録」の画面が出てくるので、「列再表示」のマクロを選択してOKをクリック

※「マクロの登録」画面が出てこなかった、消えてしまった場合はボタンを右クリックして「マクロの登録」をクリック

16. ボタンを右クリックし「テキストの編集」で分かりやすい名前に変更する

17. 完成です。「列非表示」と「列再表示」のボタンを交互にクリックして動作すればOK

18. ファイルを保存したい場合は、「名前を付けて保存」で.xlsm形式で保存する


「生成AI」で作る
次に、生成AIを使ってExcelマクロを作る方法です。
生成AIを使う場合は、マクロの記録のようにExcelそのものにマクロを記録してもらうことはできないので、生成AIにVBAのコードを書いてもらい、それをコピーして実行することになります。

それでは今回は、実行するとA1セルの値がA3セルにコピーされ、「コピーしました」とメッセージが表示されるExcelマクロを作ってみたいと思います。
1. Excelを開きA1セルに「こんにちは」と入力する
一旦全てのExcelを閉じて、新しいExcelファイルを1つだけ開いて下さい。そしてA1セルに「こんにちは」と入力しておいてください。

2. ChatGPT(他の生成AIでも可)を開く
生成AIを開きます。他のAIでも可能ですが、この記事ではChatGPTを使用して解説します。ChatGPTはこちらをクリックすると開くことができます。

3. AIに指示をする
AIに指示をします。指示文のことをプロンプトと言いますが、今回は下記のようなプロンプトを使用します。
"A1セルの値をA3セルにコピーして「コピーしました」とメッセージが表示されるExcelマクロを作成してください。"
このプロンプトで、生成AIに指示します。

4. AIが作ってくれたVBAコードをコピーする
マクロの作成を指示すると、AIがVBAのコードを返してくれるのでそのコードの部分をコピーします。

5. ExcelでVBAエディタを開く
Excelに戻り、「開発」タブの「Visual Basic」をクリック

下記のような画面になるので、「Thisworkbook」をクリック

6. VBAのコードを貼り付けする
右側に空白のコード記述箇所が出てくるので、そこに生成AIが作ってくれたVBAコードを貼り付けする。

7. マクロの実行
上部の実行ボタンをクリック

「コピーしました」とメッセージボックスが出れば成功。

VBAエディタを閉じると、A1セルの値がA3セルにコピーされているはずです。

問題点
今回、「マクロの記録」と「生成AI」を使ってコード無しでExcelマクロを作る方法をご紹介しましたが、問題点もあります。
「マクロの記録」の問題点
マクロの記録については、
- 「作業」が必要
- 余計な作業も記録されてしまう
という問題点があります。
全ての動作を自分で行う必要があるので、複雑なことをしようとすると作業数が増えてとても大変です。また、途中に動作を間違えると、それも記録されてしまうのでやり直さなければなりません。
そのため、単純なものだと良いのですが、複雑なマクロをマクロの記録のみで作るのは現実的ではありません。
「生成AI」の問題点
生成AIについては、
- 正確な指示が必要
- コードが間違っているなどの可能性がある
- 知識がつきにくい
といった問題があります。
プロンプトで指示をする必要がありますが、複雑なものになればなるほど当然、指示も難しくなります。しっかりと指示ができなければ、返ってくるものが期待と異なるものとなってしまいます。
また、どんなマクロでも作ってはくれますが、そのコードが本当に正しいのか?といったことや、コードの意味することは、VBAの知識が無ければ分からないので、完全AI任せのマクロだと「何がおかしいのか分からない」といった状態になってしまいます。
解決策
では最後に、これらの問題点もふまえどうすればよいか?ということについてですが、「最低限のVBA知識」は身につけた上で「マクロの記録」や「生成AI」を活用していくことをおすすめします。
マクロの記録でも、生成AIでも、せめて作られたものがどういう構造なのか・何をしているのかが分かれば修正をしたりエラーを発見することができます。
そのために、高度な知識は必要ないので最低限の知識は身につけておいたほうがよいです。
では「最低限のVBA知識」がどれくらいのことを指すかというと、「簡単なもので良いので1からVBAでプログラムを作ったことのあるレベル」を目指してみてください。
- 特定セルをコピーするマクロ
- メッセージが表示されるマクロ
- 複数シートを印刷するマクロ
簡単なもので良いので、自分で「こんなものを作ろう」と思ったものを1つだけでも作れるようになってみましょう。
そのベースがあれば、生成AIを活用してかなり複雑なマクロでも簡単に作り、修正もしていくことができます。
