公開日2021.09.15
最終更新日2022.10.05
今回はVBAをマスターしようの記事、第2回目になります。
と言っても、それぞれ単一で読んでいただいても問題ないように書いていますので、興味のある方は是非第一回目の記事も見ていただければ幸いです。
さて、今回はVBAを使ってマクロを作成するVBE画面、モジュールとプロシージャについて説明していきます。
VBEとは?
VBEとはVBE(Visual Basic Editor)の略で、VBAを作成するための開発環境です。
早速ですが、実際にエクセルから表示させてみましょう。
画面上部の『開発』タブから左上にある『Visual Basic』を選択します。
すると、下図のような画面が表示されます。ここがVBEであり、マクロを作成する開発環境になります。
また、VBEは『Alt』+『F11』で表示させることができますので、ショートカットキーの扱いに慣れている人はそちらを活用してもらえると良いと思います。
VBEの画面説明
では早速、モジュールとプロシージャの説明と行きたいところですが、
その前に、VBE画面の説明を簡単にしておきましょう。
VBEの画面は主に三つに分類されています。
- プロジェクトエクスプローラ:下図左上
- プロパティウィンドウ :下図左下
- コードウィンドウ :下図右側
では、それぞれがどういう役割のものなのか、少しだけ見ていきましょう。
プロジェクトエクスプローラ
ブックに付属するオブジェクトをツリー構造で表示してくれるウィンドウになります。
シートモジュールや、ブックモジュールなど、後々必要になってくる知識がありますが、実際詳しく把握していなくてもマクロを作成するのに問題ないと言えば問題ありません。
プロパティウィンドウ
主に、ユーザーフォーム(ダイアログなど)やコントロールの設定に使用します。
こちらについても後々必要になるぐらいなので、ユーザーフォームの設定に使うかもぐらいで問題ありません。
コードウィンドウ
言葉通り、ここがコードを記述する画面になり、一番使用する箇所になります。
また、表示はモジュール単位となります。
※モジュールについては次から説明していくので、モジュール単位で表示していることだけきっちり覚えていただければ問題ありません。
モジュールとプロシージャ
ではここから、今回のメインであるモジュールとプロシージャについて説明していきたいと思います。この二つに関してはVBAの資格試験でも出てくる部分でもあるのでしっかり理解しておくことをお勧めします。
モジュール
モジュールとは、VBAにおいてプログラムを管理するための一つの単位になり、その中に複数のプロシージャを入れることができます。
つまりモジュールは複数のプロシージャを管理するものとでも思ってもらえれば大丈夫です。
ただ、文章だけだと理解しにくい部分だと思いますので、VBEの画面でわかるようにして見たいと思います。
上記図を見ていただければわかる通り、赤枠で囲ってある範囲がモジュールとなります。
モジュールの種類
次にモジュールの種類についてですが、全部で3つの種類があります。
- 標準モジュール :プログラムを記述するのに使用
- クラスモジュール:「クラス」と呼ばれるオブジェクトを定義するのに使用
- ユーザーフォーム:ユーザーインターフェイスを作成するのに使用
基本的にマクロを作成するときは標準モジュールを使用して作成します。クラスモジュールは書いてある通り、「クラス」オブジェクトを定義するときに使用したりするのですが、ぶっちゃけ標準モジュールだけでもマクロは作成することができるので、最初の頃は頭の片隅にそういうものがあるとだけ覚えておいてもらうだけで大丈夫です。
最後のユーザーフォームはダイアログを使う際などに使用します。これだけモジュールと名前がついていませんが、モジュールの一つなので注意しましょう。
プロシージャ
これでなんとなくモジュールについては理解できたかと思いますので、プロシージャの説明に移りましょう。
簡単に言うとプロシージャとは、VBAの命令文を1つにまとめたものになります。
これも文字だけの説明ではわかりにくいので図を用意しました。
図の赤枠はモジュールでプロシージャは緑の枠の部分になります。頭に『Sub』とついていて、最後に『End Sub』と書いてあるのが二つ入っているのがわかると思います。それぞれが一つのプロシージャになりますので、今回はモジュールの中に二つのプロシージャが入っていることになります。
イメージ的には、モジュールは大きな箱みたいなもので、その中にプロシージャと言うコードの塊がそれぞれ保管されているという感じでしょうか。
プロシージャの種類
さて、では最後にプロシージャの種類について簡略化して説明します。
プロシージャも全部3種類あります。
- Subプロシージャ :命令文を書くときに使用
- Functionプロシージャ:ユーザー定義関数を設定するとき使用
- Propertyプロシージャ:変数やクラスのプロパティに値の設定や取得をするときに使用
三つの内、一番使用頻度が高いのが命令文を書いていくのに必要なSubプロシージャになり、次いでFunctionプロシージャとなります。この二つに関してはVBAの資格試験でも出てくることが多いので、もし今後資格を取ろうと思っている方がいたら、ある程度は理解しておくことをお勧めします。
Propertyプロシージャについては、ほとんど使うことがないと言ってもいいかもしれませんので、こういうのがあるのだと思うぐらいで問題ありません。
以上が今回の内容になります。
前回よりも覚えることが増えて大変に思えるかもしれませんが、一度にすべて覚えようとする必要はありません。正直、筆者の体感値になりますが、実際に触ってみないとわからないことも多いと思います。なので焦らずにひとつずつゆっくりと覚えて行ってもらえたら幸いです。
次回は、いよいよVBAを使って簡単なコードを書いていきたいと思いますので、興味があれば読んでいただけると幸いです。
では、ありがとうございました。