【初心者向け】Excelマクロ(VBA)の基本的な作り方・使い方を解説!

【初心者向け】Excelマクロ(VBA)の基本的な作り方・使い方を解説!

当サイトはアフィリエイト広告を利用しています。

Excelでやりたいことが「マクロ」を使えばできそうでも、「マクロはよくわからないし…」と、なんとなく避けてしまっている方も多いのではないでしょうか。

そこで今回は、Excelマクロの基本的な作り方や使い方について、初心者向けにわかりやすく解説します。

この記事を読めば、マクロを使ったことがない方も、既存のマクロを自分の環境で使えるようになったり、簡単なカスタマイズができるようになったりしますよ。

mono

実はExcelマクロはそれほど難しいものではありません。初心者さんでも割とすぐに使えるようになりますよ。

Excelマクロとは

そもそもExcelマクロとは何なのかというと、Excelの操作を自動化できる機能のことです。

マクロを使えば、「セルを選択して、◯◯タブを開いて、△△をクリックして…」と、通常はいくつも段階を踏まなければならない作業も、ワンクリックで完了したりします。

それでは、具体的にどのようなことができるのか、またExcelマクロとあわせてよく聞く「VBA」とどう違うのか、見ていきましょう。

Excelマクロでできること

Excelマクロでできることには、以下のようなものがあります。

ExcelマクロとVBAの違い

Excelマクロは「Excelの機能」ですが、VBA(Visual Basic for Applications)は「Microsoft Officeで使えるプログラミング言語」です。

たとえば、「ダイアログボックスでメッセージを表示するマクロ」は、以下のようなコードを書くことで作成できます。このコードで使用しているプログラミング言語が「VBA」です。

Sub メッセージ表示()
    MsgBox "テストです"
End Sub
Excel
マクロの実行結果

mono

VBAの仲間は「Python」や「Java」、マクロの仲間は「テーブルの挿入」や「データの並べ替え」という感じですね。

Excelマクロを使うための準備

Excelマクロの設定は「開発」タブで行いますが、デフォルトでは「開発」タブが非表示になっています。準備として「開発」タブを表示させましょう。

「開発」タブを表示するには、まずExcelを起動した状態で[Alt]⇒[T]⇒[O]の順に押して「Excelのオプション」を表示し、左側の「リボンのユーザー設定」⇒右側の「リボンのユーザー設定」にある「開発」にチェック⇒「OK」をクリックします。

Excelのオプション

これでExcelに「開発」タブが表示されます。

Excel

Excelマクロの作り方

Excelマクロは、以下のような方法で作成できます。

  • 「マクロの記録」機能を使う
  • マクロ化したい操作をコードで書く

方法1:「マクロの記録」機能を使う

Excelには「マクロの記録」という機能があり、この機能を使うことで、実際に行った操作内容をマクロとして残すことができます。

マクロの記録機能を使ってマクロを作成する手順は以下のとおりです。

  1. マクロの記録を開始する
  2. 記録したい操作を行う
  3. マクロの記録を終了する

手順1:マクロの記録を開始する

まず「開発」タブ⇒「マクロの記録」をクリックします。

Excel

「マクロの記録」が表示されたら、「マクロ名」にわかりやすい名前を入力して「OK」をクリックします。

Excel

手順2:記録したい操作を行う

たとえば、「A1:A5の内容を一括削除するマクロ」を作成するなら、A1:A5を選択して[Delete]で削除します。

Excel

手順3:マクロの記録を終了する

操作が完了したら、「開発」タブ⇒「記録終了」をクリックしてマクロの記録を終了します。これでマクロの作成は完了です。作成したマクロの使い方についてはこちらをご覧ください。

Excel

このように、マクロの記録機能を使った方法、コードの書き方を知らなくてもマクロを作れるので便利です。

ただし、マクロの記録機能には以下のようなデメリットがあります。

マクロの記録機能のデメリット
  • 複雑な処理は記録できない(繰り返し処理、条件分岐など)
  • すべての操作がマクロとして記録されてしまう
  • コードが煩雑で読みづらい

さきほどご紹介したようなシンプルなマクロならマクロの記録機能を使って作成するのもアリですが、複雑なものは次にご紹介する、自分でコードを書いて作成する方法がおすすめです。

方法2:マクロ化したい操作をコードで書く

マクロの記録機能で作成できないような複雑なマクロは、自分でコードを書くことで作成できます。

コードを書いてマクロを作成する手順は以下のとおりです。

  1. VBEを起動する
  2. モジュールにコードを書く
  3. コードを検証する

手順1:VBEを起動する

まずはマクロを作成するためのエディタ「VBE(Visual Basic Editor)」を起動します。VBEは[Alt]+[F11]を押すと起動します。

Excel
VBEの画面

手順2:モジュールにコードを書く

VBEを起動したら、以下のような「モジュール」にコードを書きます。

Excel

モジュールには「標準モジュール」「ブックモジュール」「シートモジュール」などがあります。主に使うのは「標準モジュール」です。

標準モジュール

標準モジュールは、どのオブジェクトにも属していない汎用的なモジュールです。コード内でシートの指定を省略すると、「アクティブブックのアクティブシート」として処理されます。

標準モジュールを挿入するには、「挿入」⇒「標準モジュール」をクリックします。

Excel

ブックモジュール

ブックモジュールは、ブックに属するモジュールです。コード内でシートの指定を省略すると、「アクティブブックのアクティブシートのセル」として処理されます。

ブックモジュールは、「プロジェクト」ウィンドウの「ThisWorkbook」をダブルクリックすると表示されます。

シートモジュール

シートモジュールは、シートに属するモジュールです。シートを削除するとモジュールも一緒に削除されます。

シートモジュールは、「プロジェクト」ウィンドウのシート名をダブルクリックすると表示されます。

手順3:コードを検証する

モジュールにコードを書いたら、最後にマクロが正しく動作するか検証します。

VBEで[F8]を押すと、コードを1行ずつ検証できます。検証中のコードは背景が黄色になります。検証モードから抜けたいときはリセットボタンを押しましょう。

Excel

エラーがあると以下のようなメッセージが表示されるので、「デバッグ」をクリックしてコードを修正してください。なお、エラーメッセージはエラーの種類によって異なります。

Excel

マクロの作成が完了したら、次にご紹介する方法でマクロを実行しましょう。

Excelマクロの使い方

Excelマクロの使い方には、以下のようなものがあります。

  • 使いたいマクロを選択して実行する
  • ボタンにマクロを割り当てる

方法1:使いたいマクロを選択して実行する

まず「開発」タブ⇒「マクロ」をクリックします。

Excel

「マクロ」が表示されたら、実行したいマクロを選択して「実行」を押します。これでマクロが実行されます。

Excel

方法2:ボタンにマクロを割り当てる

まず「開発」タブ⇒「挿入」⇒「フォームコントロール」のボタンを選択します。

Excel

ボタンの大きさに画面をドラッグすると「マクロの登録」が表示されるので、ボタンに割り当てたいマクロを選択して「OK」をクリックします。これでボタンにマクロが割り当てられ、ボタンをクリックすることで割り当てたマクロが実行されます。

Excel

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") → A1
  • Cells(1,1) → A1
  • Range("A1:B3") → A1:B3
  • Range(Cells(1,1),Cells(3,2)) → A1:B3
  • Range("A1:A2,C1:C2") → A1:A2とC1:C2
  • Range("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マクロ有効ブック(*.xlsm)」を選択しましょう。

Excel

Excelマクロが使えないときの対処法

Excelマクロを作成しても、そのファイルを開き直したとき、以下のようなメッセージが表示され、マクロがブロックされる場合があります。

Excel

この場合は、いったんそのファイルを閉じ、ファイルを右クリックして「プロパティ」をクリックします。「(ファイル名)のプロパティ」が表示されたら、「セキュリティ」項目の「許可する」にチェックを付けて「OK」をクリックします。これでマクロが使えるようになります。

Excel

Excelマクロの勉強方法

「既存のマクロを使えるようになりたい」という場合は、この記事をひととおり読んでいただければ十分ですが、「自分でイチからExcelマクロを作れるようになりたい」という場合は、以下のような方法で勉強する必要があります。

  • 書籍を読む
  • Webサイトを見る
  • 動画を見る
  • プログラミングスクールに通う

Excelマクロを個人で使う分には、書籍やWebサイト、動画で勉強するのが手軽でおすすめです。

実務に活かせるスキルを身につけたい場合は、基礎から応用までしっかり学べるプログラミングスクールが良いでしょう。

まとめ

今回は、Excelマクロの基本的な作り方や使い方について解説しました。

Excelマクロは、マクロの記録機能を使ったり、自分でコードを書いたりすることで作成できます。作成したマクロの使い方はいろいろありますが、ボタンに割り当てる方法が使いやすくておすすめです。

マクロを使えるようになれば、より多くのExcel作業を自動化できるようになります。作業時間がグッと短縮するので、ぜひこの機会に作り方と使い方をマスターしましょう!