当サイトはアフィリエイト広告を利用しています。
Excelでやりたいことが「マクロ」を使えばできそうでも、「マクロはよくわからないし…」と、なんとなく避けてしまっている方も多いのではないでしょうか。
そこで今回は、Excelマクロの基本的な作り方や使い方について、初心者向けにわかりやすく解説します。
この記事を読めば、マクロを使ったことがない方も、既存のマクロを自分の環境で使えるようになったり、簡単なカスタマイズができるようになったりしますよ。
mono
実はExcelマクロはそれほど難しいものではありません。初心者さんでも割とすぐに使えるようになりますよ。
Excelマクロとは
そもそもExcelマクロとは何なのかというと、Excelの操作を自動化できる機能のことです。
マクロを使えば、「セルを選択して、◯◯タブを開いて、△△をクリックして…」と、通常はいくつも段階を踏まなければならない作業も、ワンクリックで完了したりします。
それでは、具体的にどのようなことができるのか、またExcelマクロとあわせてよく聞く「VBA」とどう違うのか、見ていきましょう。
Excelマクロでできること
Excelマクロでできることには、以下のようなものがあります。
- データの一括削除
(例)複数セルの内容をまとめて削除する - データの転記
(例)入力フォームの内容を別シートの住所録に転記・蓄積する - データのチェック・修正
(例)未入力の項目がある場合にアラートを表示する - データの集計
(例)アンケート結果を集計する - グラフの作成
(例)スケジュールの円グラフを作成する - Webからデータを収集する
(例)ECサイトから人気ランキングの商品情報を取得する - 簡単なゲームを作成する
(例)オセロ、ナンプレ、ビンゴゲームなど
ExcelマクロとVBAの違い
Excelマクロは「Excelの機能」ですが、VBA(Visual Basic for Applications)は「Microsoft Officeで使えるプログラミング言語」です。
たとえば、「ダイアログボックスでメッセージを表示するマクロ」は、以下のようなコードを書くことで作成できます。このコードで使用しているプログラミング言語が「VBA」です。
Sub メッセージ表示()
MsgBox "テストです"
End Sub
mono
VBAの仲間は「Python」や「Java」、マクロの仲間は「テーブルの挿入」や「データの並べ替え」という感じですね。
Excelマクロを使うための準備
Excelマクロの設定は「開発」タブで行いますが、デフォルトでは「開発」タブが非表示になっています。準備として「開発」タブを表示させましょう。
「開発」タブを表示するには、まずExcelを起動した状態で[Alt]⇒[T]⇒[O]の順に押して「Excelのオプション」を表示し、左側の「リボンのユーザー設定」⇒右側の「リボンのユーザー設定」にある「開発」にチェック⇒「OK」をクリックします。
これでExcelに「開発」タブが表示されます。
Excelマクロの作り方
Excelマクロは、以下のような方法で作成できます。
- 「マクロの記録」機能を使う
- マクロ化したい操作をコードで書く
方法1:「マクロの記録」機能を使う
Excelには「マクロの記録」という機能があり、この機能を使うことで、実際に行った操作内容をマクロとして残すことができます。
マクロの記録機能を使ってマクロを作成する手順は以下のとおりです。
- マクロの記録を開始する
- 記録したい操作を行う
- マクロの記録を終了する
手順1:マクロの記録を開始する
まず「開発」タブ⇒「マクロの記録」をクリックします。
「マクロの記録」が表示されたら、「マクロ名」にわかりやすい名前を入力して「OK」をクリックします。
手順2:記録したい操作を行う
たとえば、「A1:A5の内容を一括削除するマクロ」を作成するなら、A1:A5を選択して[Delete]で削除します。
手順3:マクロの記録を終了する
操作が完了したら、「開発」タブ⇒「記録終了」をクリックしてマクロの記録を終了します。これでマクロの作成は完了です。作成したマクロの使い方についてはこちらをご覧ください。
このように、マクロの記録機能を使った方法は、コードの書き方を知らなくてもマクロを作れるので便利です。
ただし、マクロの記録機能には以下のようなデメリットがあります。
- 複雑な処理は記録できない(繰り返し処理、条件分岐など)
- すべての操作がマクロとして記録されてしまう
- コードが煩雑で読みづらい
さきほどご紹介したようなシンプルなマクロならマクロの記録機能を使って作成するのもアリですが、複雑なものは次にご紹介する、自分でコードを書いて作成する方法がおすすめです。
方法2:マクロ化したい操作をコードで書く
マクロの記録機能で作成できないような複雑なマクロは、自分でコードを書くことで作成できます。
コードを書いてマクロを作成する手順は以下のとおりです。
- VBEを起動する
- モジュールにコードを書く
- コードを検証する
手順1:VBEを起動する
まずはマクロを作成するためのエディタ「VBE(Visual Basic Editor)」を起動します。VBEは[Alt]+[F11]を押すと起動します。
手順2:モジュールにコードを書く
VBEを起動したら、以下のような「モジュール」にコードを書きます。
モジュールには「標準モジュール」「ブックモジュール」「シートモジュール」などがあります。主に使うのは「標準モジュール」です。
標準モジュールは、どのオブジェクトにも属していない汎用的なモジュールです。コード内でシートの指定を省略すると、「アクティブブックのアクティブシート」として処理されます。
標準モジュールを挿入するには、「挿入」⇒「標準モジュール」をクリックします。
ブックモジュールは、ブックに属するモジュールです。コード内でシートの指定を省略すると、「アクティブブックのアクティブシートのセル」として処理されます。
ブックモジュールは、「プロジェクト」ウィンドウの「ThisWorkbook」をダブルクリックすると表示されます。
シートモジュールは、シートに属するモジュールです。シートを削除するとモジュールも一緒に削除されます。
シートモジュールは、「プロジェクト」ウィンドウのシート名をダブルクリックすると表示されます。
手順3:コードを検証する
モジュールにコードを書いたら、最後にマクロが正しく動作するか検証します。
VBEで[F8]を押すと、コードを1行ずつ検証できます。検証中のコードは背景が黄色になります。検証モードから抜けたいときはリセットボタンを押しましょう。
エラーがあると以下のようなメッセージが表示されるので、「デバッグ」をクリックしてコードを修正してください。なお、エラーメッセージはエラーの種類によって異なります。
Excelマクロの保存方法
Excelマクロを保存するには、マクロを作成したExcelファイルをマクロ有効ブックとして保存します。
名前を付けて保存する際、「ファイルの種類」で「Excelマクロ有効ブック(*.xlsm)」を選択しましょう。
Excelマクロの使い方
Excelマクロの使い方には、以下のようなものがあります。
- 使いたいマクロを選択して実行する
- ボタンにマクロを割り当てる
- Excel起動時にマクロを自動実行させるコードを書く
- アドインとして実行する
方法1:使いたいマクロを選択して実行する
頻繁に使わないマクロであれば、都度「マクロ」画面を開いて使いたいマクロを実行する方法がおすすめです。
まず「開発」タブ⇒「マクロ」をクリックします。
「マクロ」が表示されたら、実行したいマクロを選択して「実行」を押します。これでマクロが実行されます。
方法2:ボタンにマクロを割り当てる
頻繁に使うマクロであれば、最初にマクロ実行用のボタンを作成し、2回目以降はボタンをクリックするだけでマクロが実行されるようにすると良いでしょう。
まず「開発」タブ⇒「挿入」⇒「フォームコントロール」のボタンを選択します。
ボタンの大きさに画面をドラッグすると「マクロの登録」が表示されるので、ボタンに割り当てたいマクロを選択して「OK」をクリックします。これでボタンにマクロが割り当てられ、ボタンをクリックすることで割り当てたマクロが実行されます。
方法3:Excel起動時にマクロを自動実行させるコードを書く
Excelファイルを開くたびに実行したいマクロであれば、Excel起動時にマクロが自動で実行されるようなコードを書く方法がおすすめです。
詳しい方法については以下の記事で解説していますので、そちらをご覧ください。
方法4:アドインとして実行する
マクロを作成したファイルを.xlam形式で保存してアドインとして追加すれば、すべてのExcelファイル上でマクロを使用できます。
.xlamファイルをアドインとして追加する方法については、以下の記事で詳しく解説しています。
Excelマクロを編集(カスタマイズ)するコツ
既存のマクロを編集するときのコツは以下のとおりです。
- プログラムの構成を理解する
- シートやセルの指定方法を理解する
- よくわからないコードはネットで意味を調べる
コツ1:プログラムの構成を理解する
Excelマクロのプログラム(コード全体)がどのように構成されているのか理解すると、どこを編集したら良いのかわかります。
Excelマクロのプログラムは、ものすごく簡単に説明すると、命令文の「ステートメント」と、命令文を一つにまとめた「プロシージャ」で構成されています。
プロシージャにもいろいろありますが、よく使うのは「Subプロシージャ」です。Subプロシージャは、以下のようにステートメントを「Sub」と「End Sub」で囲むように書きます。プロシージャ名=マクロ名なので、実行時にわかりにくい名前であれば、プロシージャ名の部分をわかりやすい名前に変えましょう。
Sub プロシージャ名()
ステートメント
End Sub
ステートメントでは、変数の宣言や定義、処理内容の記述などを行います。
処理内容の書き方は、ざっくりと「オブジェクト名.プロパティ名」「オブジェクト名.メソッド名」という形になっています。
- オブジェクト
- 操作の対象となる「物」(例)ブック、シート、セルなど
- プロパティ
- オブジェクトの「属性」(例)値、行番号、個数など
- メソッド
- オブジェクトに対して行う「動作」(例)選択する、貼り付ける、削除するなど
そのため、処理する対象を変更したい場合は、大体コードの最初のほう(オブジェクト名)を書き換えます。
たとえば、Range("A2").ClearContents
というコードは「A2の内容を削除する」という意味なので、「B2の内容を削除する」という処理内容に変えたい場合は、A2をB2に書き換えてRange("B2").ClearContents
とします。
コツ2:シートやセルの指定方法を理解する
既存のマクロを使うとき、主にカスタマイズするのはシートやセルだと思います。ですのでシートやセルの指定方法を理解すると、カスタマイズしやすくなります。
シートの指定には、主に「Worksheets」や「ActiveSheet」を使います。
Worksheets(1)
→ 左から数えて1番目のシートWorksheets("Sheet1")
→ 「Sheet1」という名前のシートActiveSheet
→ アクティブなシート
セルの指定には、主に「Range」や「Cells」を使います。
Range("A1")
→ A1Cells(1,1)
→ A1Range("A1:B3")
→ A1:B3Range(Cells(1,1),Cells(3,2))
→ A1:B3Range("A1:A2,C1:C2")
→ A1:A2とC1:C2Range("1:3")
→ 1~3行Range(Rows(1),Rows(3))
→ 1~3行Range("A:C")
→ A~C列Range(Columns(1),Columns(3))
→ A~C列Range("名前定義")
→ 名前定義のセルCells
→ 全セル
なお、シートを指定せずにセルを指定するとエラーになることがあります。セルを指定するときは、ActiveSheet.Range("A1")
のように、必ず直前でシートを指定するようにしましょう。
コツ3:よくわからないコードはネットで意味を調べる
既存のマクロでよくわからないコードがあれば、その部分をGoogleなどで調べましょう。
たとえば、「excelマクロ MsgBox」で検索すると、MsgBoxはダイアログボックスでメッセージを表示するVBA関数であることや、引数に何を指定すれば良いのかがわかります。
mono
最初は意味がわからないコードも、一つ一つ意味を調べていけば、何をしようとしているのかわかってきますよ。
常に使いたいマクロは「個人用マクロブック」に保存しよう
Excelマクロは新しいブックや作業中のブックのほか、「個人用マクロブック」に保存することもできます。個人用マクロブックに保存したマクロはすべてのExcelファイル上で利用可能なため、常に使いたいマクロは個人用マクロブックに保存すると良いでしょう。
個人用マクロブックの保存場所や作成方法については以下の記事で詳しく解説しています。
Excelマクロを有効化する方法
ダウンロードしたExcelマクロを使おうとすると、「セキュリティ警告」「保護ビュー」「セキュリティリスク」などと表示されてマクロがブロックされてしまうことがあります。その場合は、以下のような方法でExcelマクロを有効化しましょう。
- 「コンテンツの有効化」ボタンをクリックする
- プロパティでブロックを解除する
- ファイルの保存場所を信頼できる場所に追加する
詳しい有効化の手順については以下の記事で解説していますので、そちらをご覧ください。
Excelマクロの勉強方法
「既存のマクロを使えるようになりたい」という場合は、この記事をひととおり読んでいただければ十分ですが、「自分でイチからExcelマクロを作れるようになりたい」という場合は、以下のような方法で勉強する必要があります。
- 学習サイトで勉強する(無料あり)
- 参考書を読む
- 講座を受講する
- スクールに通う
講座を受講する場合は、買い切り型の動画講座を販売している「Udemy」がおすすめです。Udemyの動画講座は何度でも見返せますし、スマホでも視聴できます。3,000円と手を出しやすい価格帯のものも多く、気軽にExcel VBAの学習ができますよ。
まとめ
今回は、Excelマクロの基本的な作り方や使い方について解説しました。
Excelマクロは、マクロの記録機能を使ったり、自分でコードを書いたりすることで作成できます。作成したマクロの使い方はいろいろありますが、ボタンに割り当てる方法が使いやすくておすすめです。
マクロを使えるようになれば、より多くのExcel作業を自動化できるようになります。作業時間がグッと短縮するので、ぜひこの機会に作り方と使い方をマスターしましょう!