このページは、VBAエキスパート(Excel VBA ベーシック)試験の合格を目指す方のための解説記事です。公式テキスト第3章「モジュールとプロシージャ」の内容のうち、モジュールについて取り上げます。
モジュールとは
マクロ(VBAのコード)を記述する場所のことを「モジュール」と呼びます。
VBEを開くと、左側のプロジェクトエクスプローラーにさまざまなモジュールが表示されます。どこにコードを書くかによって、マクロの動作や用途が変わってきます。
モジュールの種類
VBAには5種類のモジュールがあります。試験主に標準モジュールについて出題されますが、他のモジュールの役割も押さえておきましょう。
標準モジュール
最も汎用的に使えるモジュールです。基本的にマクロはここに記述します。

VBAエキスパート試験のマクロはすべて標準モジュール上での動作を前提としています。
ユーザーフォーム
他の高級なプログラミング言語にはないExcelVBA(マクロ)の強みはこのユーザーフォームにあります。プログラミング素人でも直感的にGUI(グラフィカルユーザーインターフェース)を作成することができるモジュールです。

クラスモジュール
後の単元で解説する「オブジェクト」を自作するためのモジュールです。
クラスモジュールで実現できる機能は、すべて標準モジュールでも実装可能です。しかし、大規模な開発や再利用性を重視する場合には、クラスモジュールを活用することでコードの可読性が向上します。

ブックモジュール
ブックを開くと同時に発動するマクロや、ブックの保存をトリガー(発動条件)とするマクロを作成することができるモジュールです。

シートモジュール
セルが変更されると発動するマクロや、別シートへ操作が移ることをトリガー(発動条件)とするマクロを作成することができるモジュールです。

モジュールの操作
ここからは試験でも問われる標準モジュールの基本操作を解説します。
標準モジュールを挿入する
- VBEを起動する(「Alt」+「F11」)。
- プロジェクトエクスプローラーで右クリックしメニューを表示する。
- 「挿入」⇒「標準モジュール」を選択する。


モジュールは複数作成することができ、Module1、Module2・・・と自動的に連番が付与されます。
標準モジュールの名称を変更する
- プロパティウィンドウを表示する(「表示」タブ、もしくは「F4」キー)
- プロジェクトエクスプローラーで対象のモジュールを選択する
- プロパティウィンドウの「(オブジェクト名)」を編集する。

モジュール名を適切につけることは、コードの整理整頓の第一歩です。開発規模が大きくなるほど「コードを読む」コストは増大します。Module1、Module2 のまま放置せず、機能や用途がわかる名前をつける習慣を身につけましょう。モジュールはオブジェクト名の昇順で並ぶため、数字やアルファベットを活用した命名規則を設けると管理しやすくなります。
標準モジュールを削除する
- プロジェクトエクスプローラーで削除したいモジュールで右クリックする。
- 「<モジュール名>の解放」を選択する。
- ダイアログボックスが表示されるため、「はい」か「いいえ」を選択する。


「いいえ」を選択すると、そのままモジュールが削除されます。「はい」を選択するとエクスポート(Excel外に保存)することができます。
標準モジュールをコピーする
標準モジュールはコピーすることができます。
- エクスポートしたモジュールをインポートする方法
- ドラッグ&ドロップする方法
外部保存してあるファイルをインポートする方法

ドラッグ&ドロップでモジュールをコピーする

補記:VBEからシート名を変更する
プロパティウィンドウを使うと、VBEからExcelのシート名を変更することもできます。
- 「Microsoft Excel Objects」は以下のシートモジュールを選択する
- プロパティウィンドウの「Name」プロパティを編集する



シートモジュールには「(オブジェクト名)」と「Name」の2つのプロパティがあります。「Name」はExcel上で表示されるシート名、「(オブジェクト名)」はVBAコード内でシートを参照する際に使用する名前です。この違いについては別の記事で詳しく解説します。
試験対策まとめ
モジュールの種類
| モジュール名 | 役割 |
|---|---|
| 標準モジュール | 試験に登場するコードはここに書かれることが前提です。 |
| ユーザーフォーム | ユーザーインターフェース(UI)を作成できる |
| クラスモジュール | 独自のオブジェクトを作成できる |
| ブックモジュール | ブックに紐づくイベントを作成できる |
| シートモジュール | シートに紐づくイベントを作成できる |
モジュールに対する操作
- モジュールの挿入
- モジュール名の変更
- モジュールの削除
- モジュールのコピー


Comment