
『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] [マクロ] [VBE]について基本的な説明をしていきます。
よろしくお願いします。
目次
【VBA】【マクロ】とは?
VBAとは、『Visual Basic for Apprications』の略で、初心者向けのプログラミング言語として開発された「Visual Basic」の言語仕様を元に、Word(ワード)、Excel(エクセル)などのOfficeアプリケーションを制御するために開発されたMicrosoftのプログラミング言語です。VBAには、入力支援機能やデバック機能など多くの機能が備えられています。
ちなみにマクロは、このVBAのプログラミング言語で書かれた操作の手順書のようなものとイメージしてください!
このマクロを使えば、日常の定例作業として行っているエクセルの入力作業や印刷などを自動化できます。
条件を判定しながら処理を行うようにすることもできます。要はエクセルの操作を自動化するプログラムのことです。
操作を自動化するとミス(ヒューマンエラー)を減らすこともできますし、なにしろ時間も削減できるので改善効果も期待できます。
私もVBAを使って改善提案をいくつも出してきました。覚えるまでが難しいですが、覚えたら色々なことに使えるので重宝しています!
【VBE】とは?
VBEとは、『Visual Basic Editor』の略で、VBA(マクロ)を作成したり、マクロの内容を変更したり、つまりVBAでコードを記述するための専用のソフトウェアとなります。マクロが含まれているブックをVBEで表示すると、マクロの内容がコードで表示されます。
VBEはエクセルの画面から起動します。
【VBE】の起動
VBEの起動
[Alt] + [F11] のボタンをクリック
または
[開発]タブの[Visual Basic]のボタンをクリック
効率化の為にショートカットを利用しましょう。また[Alt] + [F11] を押すたびに、エクセル画面⇔VBEの画面の切り替えもできます。
【VBE】の画面構成
下の画面も参照してください。
A.【プロジェクトエクスプローラー】
VBE画面では左上に位置するウィンドウ(プロジェクトウィンドウ)になります。
エクセルで開いているブックごとに、マクロを記述するモジュールが表示されている場所です。
またこのプロジェクトエクスプローラーには5つのオブジェクトがツリー上(階層構造)に表示されます。
基本は”標準モジュール”を使用し記述していきます。
〇 シートオブジェクト
〇 ブックオブジェクト
〇 フォームオブジェクト
〇 標準モジュールオブジェクト
〇 クラスモジュールオブジェクト
B.【プロパティウィンドウ】
VBE画面では左下に位置するウィンドウ(プロパティウィンドウ)になります。
プロジェクトエクスプローラーで選択している項目の詳細が表示されている場所です。
このオブジェクトのプロパティを編集することができます。
C.【コードウインドウ】
VBE画面では右側に位置するウィンドウになります。
VBAのコードが記述されるところです。
複数のマクロがある場合は、マクロとマクロの間に区分線が引かれます。
プロジェクトエクスプローラーからマクロを記述するモジュールをダブルクリックすると、そのモジュールのコードウィンドウが開きます。
ちなみにマクロは【Sub "マクロ名" ()】で始まり、【End sub】で終わります。
またマクロを実行すると、上から順に処理されます。
※【Sub "マクロ名"()】、【End sub】を書き忘れるとエラーが出てマクロは動きませんのでご注意を!
※もしVBE起動しても”プロジェクトエクスプローラー"や"プロパティウィンドウ"が表示されていない場合は、VBEの画面にて、[表示]メニューをクリックし、表示したいウィンドウをクリックすると表示されます。
【モジュール】と【プロシージャ】
VBAを構成するモジュール (Modulel)とプロシージャ (Procedure) の関係性を説明します。
プロシージャは1つのマクロが成り立つ最小の単位です。
プロシージャには英語では”手続き”や"手順書"の意味があります。
1つ以上のプロシージャーが集まって、1つのモジュールとなります。
1つのマクロを記録するとプロシージャが1つ作成されます。
イメージとしては、下図のような感じになります。
主なプロシージャとしては、「Functionプロシージャ」「Subプロシージャ」「イベントプロシージャ」があります。
Functionプロシージャ
処理の実行後に値を返すプロシージャです。"Function"ステートメントと"End Function"ステートメントの間にコードを記述します。ユーザー定義関数を作成する際に利用します。
Subプロシージャ
処理を実行するためのプロシージャです。"Sub"ステートメントと"End Sub"ステートメントの間にコードを記述します。
イベントプロシージャ
なにかしらのイベント、例えば、"ブックを開いた時、保存する時、クリックした時"などのようにある特定の動作をきっかけにして実行するするプロシージャです。

下のVBA講座も是非ご覧下さい!!
関連
次回のVBA講座(第2回)