この記事では、エクセルでマクロをどのように作るのか?について解説しています。
「マクロは便利」とよくきくけれど実際にはよく分からない、という方の理解に少しでもお役に立てば幸いです。
エクセルマクロとは?
そもそもエクセルマクロとは何?ということからになりますが、一言で表現すると「エクセルで行う処理を自動化することのできる機能」ということです。
例えば、エクセルで「A→B→C」という作業を順番に行っている場合、これを自動化するということです。
具体的な例で言いますと、毎日変動する銀行の為替レートをwebページから社内のエクセルに転記する必要があるとします。その場合の作業としては、
- 銀行のwebページを開く
- コピーしたい為替レートを選択してコピーする
- 社内のエクセルを開く
- 指定箇所にコピーした為替レートを貼り付けする
これらの作業を一まとまりにして、自動化することができます。

また、マクロはVBA(Visual Basic For Applications)という言語によって作成されていることも知っておきましょう。
「マクロ」というのは処理を1まとまりにしたもので、その命令はプログラミングする必要があります。そのための言語がVBAです。

エクセルマクロとは何?ということについてさらに知りたい方は、下記の記事で解説していますのでご参考下さい。
【参考記事】エクセルマクロとは?関数と違う?初心者にも分かりやすく解説!
エクセルでマクロを作成する方法
エクセルでマクロを作成する方法としては、大きく3つあります。
エクセルでマクロを作成する
- 「マクロの記録」を使って作成する方法
- 「マクロの記録 + VBA」で作成する方法
- 「VBA」で作成する方法
マクロの記録を使う
「マクロの記録」はVBAのコード無しでマクロを作成することのできる機能です。
例えば、「新規のシートを1シート追加する」という作業をマクロ化したいとすると下記の手順で可能です。
シート追加マクロ
- 「開発」タブにある「マクロの記録」をクリックする
- マクロの名前をつけてOKを選択する
- 新規のシートを追加する
- 「記録終了」をクリックする
上記の作業を終えた後、「開発」タブにある「マクロ」をクリックすると「新規シート追加」というマクロが表示されますので、そちらを実行すればシートが追加されるようになります。
実際の画面とともに説明をすると、下記の通りとなります。
1.「開発」タブにある「マクロの記録」をクリック

2.マクロの名前をつけてOKを選択する

3.新規シートを追加する

4.「記録終了」をクリックする

5.「開発」タブにある「マクロ」をクリックする

6.作成した「新規シート追加」を選択して「実行」をクリックすると新規のシートが追加される

エクセルに「開発」タブが無い!という方は、下記の記事で手順を解説しているのでご参照下さい。
エクセルでチェックボックスの作り方☆削除方法も! - 「開発」タブが表示されていない場合
マクロの記録 + VBAを使う
「マクロの記録」を使うと作業が記録されますが、実際にはVBAのコードが生成されています。
例えば、「こんにちは」という文字を入力する作業を記録してマクロ化したとします。
1. 「開発」タブの「マクロの記録」をクリック

2.マクロ名を決めてOKをクリック

3.アクティブなセルに「こんにちは」を入力して「記録終了」をクリックする

実用的ではありませんが、アクティブなセルに「こんにちは」を表示することのできるマクロを作成することができました。
マクロの記録で記録した作業は、実際にはVBAのコードが生成されていると解説しましたが、今回記録したマクロの中身は下記のようになっています。

「マクロの記録 + VBAを使う」という方法の意味は、大元のコードは「マクロの記録」で作成し、それを修正していくということです。
例えば今回の例で「こんにちは」を「こんばんは」に修正したいとすれば、コードを見れば明らかに「こんにちは」と書かれている部分があるのでこちらを「こんばんは」に修正すれば良いだけです。


このように、ベースは「マクロの記録」で作成しておき細かい部分についてコードを見ながら修正するのが「マクロの記録 + VBA」の方法です。
VBAで作成する
最後に、VBAのコードを記述していく方法です。最終的には、基本的にマクロはこの方法で作成することになります。
「マクロの記録」で作成されたコードにはクセがあり使いづらいのと、実現したいことを1つ1つ記録していては非常に手間がかかるため、結果的に自分でコードを記述していくことになります。
「開発」タブの「Visual Basic」をクリックするとコードを編集できる画面を出すことができますので、こちらにVBAのコードを記述していくことになります。

マクロ作成の具体例
これまでエクセルマクロの基本について解説してきましたが、最後に具体的にどのようなマクロを作成できるのか?ということについて触れていきたいと思います。
例えば、下記のようなことが実現できます。
ポイント
- 家計簿に集計機能をつける
- 請求書を自動出力する
家計簿に集計機能をつける
単純に家計簿を作るだけであれば特にマクロを作成する必要はありませんが、自動的に集計する機能をつけることなどは可能です。

詳しくは下記の記事で解説していますので、是非ご参考下さい。
【関連記事】エクセルで家計簿の作り方を解説!マクロを使う方法も!
請求書を出力する
リストを作っておいて、特定のフォームに出力していくといった作業はマクロのメリットを感じやすい作業です。

こちらについても詳しく解説した記事がありますので、ご参考下さい。
(関連記事):【エクセルマクロ】一瞬で請求書を出力する作り方
大規模なシステムの開発は避ける
エクセルマクロを使えば、予約表や在庫管理システムなどのシステム開発も可能ですが、設計も複雑になってくるため、仕事で使用するシステムを自分で開発しようというのは避けた方が良いです。
小さな効率化を目指し、大きなシステム開発はプロに任せるようにしましょう。
【参考記事】エクセルマクロで予約表や在庫管理システムの作り方は?
まとめ
