【VBA】はじめてのExcelマクロ(使い方)

Excelでマクロが使えると、関数だけではできなかったことができるようになります。

慣れてくるといろんな処理を自動で行えますし、オリジナルの業務ツールなどを作ればチーム全体の効率化にも繋がるはずです。

しかし、使ったことのない方からすれば、便利なことは知っていてもわからないことだらけで、「マクロを使う」という最初の1歩を踏み出せない方も多いのではないでしょか。

少なくとも私はそうでした。

「いったいどこに何を書けばいいのか」

「どこをどうすれば動くのか」

独学だったこともあり、本当にさっぱりわからなかったことを今でも覚えています。

このページではマクロを使ったことのない方が、「とりあえずマクロを動かしてみる」ことができるように使い方を解説します。

Excelのマクロは本当に便利で、少し使えるだけでも関数と組み合わせればできることは大幅に広がります。

手順はとても簡単なので、このページを見てぜひ最初の1歩を踏み出してみてください。

(今回はVBA※をマクロと呼んで記載しています。)

※Visual Basic for Applicationsの略で、MicrosoftのOfficeで使われているプログラミング言語です。

目次

開発タブの表示

マクロを使うにはまず「開発タブ」を表示する必要があります。

開発タブを開くのは次の手順です。

  1. オプション設定を開く
  2. リボン設定で「開発」を追加

オプション設定を開く方法

オプション設定は次のどちらの方法でも開くことができます。

1:ファイルメニューから開く

図のとおり、上の「ファイル」メニューを開いて一番下の「オプション」をクリックします。

オプションはウインドウの下に隠れていることがあるので、見当たらないときは下にスクロールするか、Excelウインドウを最大化してみてください。

2:リボン設定から開く

タイトルバーなどに表示されているリボンの右端にある逆三角形のプルダウンメニューから、「その他のコマンド」をクリックすることでもオプション設定を表示できます。

リボンのユーザー設定で「開発」を追加

オプション設定が開いたら、「リボンのユーザー設定」に移動し、画面右側の「開発」のチェックボックスにチェックしてOKボタンで確定します。

これで開発タブが表示されているはずです。

エディタ画面(VBE)を開く

コードを記載するためのエディタ画面(VBE)を開く手順は次のとおりで、開発タブの「Visual Basic」ボタンを押すだけです。

VBEの主要なウインドウ

VBEは次のような画面になります。

一般的には下図のように4つのウインドウを表示しておくのが通常ですが、最初はとりあえず赤字で名前を付けている2つのウインドウに注目してください。

コードウインドウ

ここにコードを記載します。

コードとはプログラムのことで、これから記載していくマクロの命令文のことです。

具体的な記載方法は後ほどあらためて説明します。

プロジェクトエクスプローラー

プロジェクトエクスプローラーとはモジュールを一覧表示している場所です。

ここで言うモジュールとは簡単に言うとコードを記載していくための専用ノートのようなイメージです。

このモジュールは目的別に次のように分類されています。(現時点では覚える必要はありません。)

  • シートモジュール
  • ブックモジュール
  • フォームモジュール
  • 標準モジュール
  • クラスモジュール

実際のプロジェクトエクスプローラーでは各モジュールが次のように表示されます。

なお、最初からこれらのモジュールが全種類入っているわけではありません。

VBEを開いたときは次のようにサッパリしています。(シートモジュールについてはシート数に応じて変わります。)

プロパティウインドウとイミディエイトウインドウ

今回は簡単にしか触れませんが、この2つも使用頻度のとても高いウインドウです。

プロパティウインドウはモジュールの名を変更するときなどに使用します。また、今回は触れませんが、ユーザーフォーム(ソフトウェアっぽく動かせるフォーム)ではテキストボックスなどの詳細設定を行うのになくてはならないウインドウです。

また、イミディエイトウィンドウは例えば記載したコードの1行を動作を確認したいときなどに、その部分だけ貼り付けてEnterキーで実行させることができます。細かい確認などには手軽でとても重宝するので余裕ができたら使ってみてください。

コードをどこに書けばいいのか

結論としては、コードはコードウインドウに書くわけですが、その前にどのモジュールに書くのかを選ぶ必要があります。

最初は標準モジュールを使う

前段でモジュールが5種類あることをお伝えしましたが、まずは標準モジュールを使います。

とはいえ、初心者でも早い段階で次の3つは使うことになると思うので、この3種類は頭の片隅に留めておいてください。。

  1. 標準モジュール(まずはこれを選択)
  2. ブックモジュール
  3. シートモジュール

標準モジュールの作成

新しいブックには標準モジュールがまだないので、次の手順で作成してくだい。

【参考】右クリックメニューから追加する方法

次の方法でもモジュールを追加することができます。私はこちらをよく使います。

プロシージャを作成してコードを記載

この段階で、コードウインドウにコードを書いていきます。

ただし、いきなり処理コードを書き始めるのではなく、まずは「プロシージャ」と呼ばれる箱のようなものを用意してやる必要があります。

つまり、基本的にはこのプロシージャ内に記載したコードを上から順に処理し、すべての処理が終わった時点で終了します。

具体的な書き方は次のイメージをご覧ください。

このように、最初にSub プロシージャ名()を入力し、Enterキーを押すと勝手にEnd Subが記載されます。

そして、上図のとおり、コードはこのプロシージャ内、つまりSub 練習()~End Subの間に記載していくことになります。

マクロ(VBA)ではこのプロシージャを1つの実行単位として扱います

なお、プロシージャ名は日本語でも英数でも使えますが、次の制限はあるので参考にしてください。

  • プロシージャ名の先頭に数字はNG
  • アンダーバー以外の記号はNG
  • スペースはNG
  • 数字は強制的に半角になる

実験用のサンプルコード

ここにいくつかのシンプルなコードを記載しておくので、練習用にコピペして実行してみてください。

  • B2セルに「あいうえお」と記載
  • メッセージボックスに「かきくけこ」と表示
Sub 練習1()
    Sheet1.Range("B2") = "あいうえお"
    MsgBox "かきくけこ"
End Sub
  • 今日から20日間分の日付をA1セルから下側に入力
Sub 練習2()
    Dim i As Long
    For i = 1 To 20
        Sheet1.Cells(1 + i - 1, "A") = Date + i - 1
    Next
End Sub
  • E~H列が表示されていたら非表示にして、非表示なら表示する。
Sub 練習3()
    If Sheet1.Columns("E:H").Hidden = False Then
        Sheet1.Columns("E:H").Hidden = True
    Else
        Sheet1.Columns("E:H").Hidden = False
    End If
End Sub

3種類のモジュールの概要

繰り返しになりますが、モジュールはあくまで5種類あります。

ここでは、初心者でも早い段階で使うことになる基本的な3つのモジュールについて、ざっくりと触れておきます。

標準モジュール

標準モジュールはその名のとおり最も標準的なモジュールです。

多くの処理はここに記載することになります。

ブックモジュール

ブックモジュールはブックに1つだけ付いているモジュールで、他のモジュールと異なり、増やすことも消すこともできません。

主にブック全体に関するイベント処理を担当しています。

イベントとは何かをトリガーにして処理を開始するようなことを言います。

例えば、Excelブックを開いたときに○○する、Excelブックを閉じるときに○○する、などですね。

なお、イベントを記載するときはプロシージャの宣言方法が少しややこしくなります。

シートモジュール

シートモジュールもブックモジュールと同様に主にイベント処理を記載するときに使います。

ブックモジュールとの違いは担当するイベントの範囲が特定シートに限定していることです。

具体的には、シートがアクティブになったら○○する、シート内の特定のセルが変更されたら○○する、などです。

イベントにはたくさんの種類があるので、目的ごとのイベントを記載する必要があります。

コードの実行方法

コードを実行する方法はいくつもありますが、とりあえずは動作確認の方法と、シート上で使うための方法の2つを紹介します。

VBE(エディタ画面)で実行

プロシージャにコードを記載したとき、主に動作確認のために実行する方法です。

下のように方法は2つありますが、どちらでも同じことなので「F5」キーでの実行を覚えておけばじゅうぶんです。

  • プロシージャ内にカーソルを合わせて「F5」キーを押す
  • プロシージャ内にカーソルを合わせて、実行タブから「Sub/ユーザーフォームの実行」をクリック

一応、上記に係るイメージを貼り付けておきます。

まずは「F5」キーによる実行から

続いて、実行メニューからの実行

シートで実行

シート上で実行するにはボタンを使うことが多いと思います。

ボタンと言ってもじつはいろいろ種類があるのですが、お手軽な方法としてオートシェイプの図形をボタンとして使う方法を紹介します。

まず、シート上で適当なオートシェイプの図形を作り、その図形の上で右クリックすると「マクロの登録」というメニューが表示されます。

右クリックメニューの「マクロの登録」を押すと、次のような設定画面が表示されます。

ここで、通常は作成したプロシージャがリスト表示されているので、登録したいプロシージャ名を選択し、OKボタンで確定します。

なお、マクロ名は直接入力してもかまいません。

なお、図形を使うメリットとして、図の書式設定からの調整しやすいことがあります。

色や形、3D表示設定などを調整するとそれなりにボタンっぽく見せることも可能です。

このボタンを押して、登録したマクロが実行できるか確認してみてください。

エラーで止まった場合のリセット

コードの記載ミス等でエラーが発生した場合、次のような状態になります。

コードの実行を中断し、間違った箇所を伝えるためのデバッグ状態に入っているわけです。

黄色の網掛けでどこで止まったのかを確認したら、次の要領で一旦実行を中止しましょう。

これでまた実行できる状態に戻ります。

まとめ

今回はExcelのマクロ(VBA)を使ったことのない人がはじめて使ってみるまでに、必要最低限の内容で記載してみました。

一連の操作をしてみると何でもないことですが、やはり初めてとなるとわからないのではないかと思います。

この記事を書いていて、意外と書くことが多いなと感じたのが正直なところです。

マクロを使えるようになると業務効率や生産性は段違いに上がりますし、誰かが優れた業務用ファイルを作ってあげればチーム全体の生産性の向上にも繋がります。

もちろん、Excelはマクロだけに頼ってもうまくいきませんが、これを機会にぜひマクロの活用を始めてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次