EB000025_VBAエキスパート(ExcelVBAベーシック)合格講座(再編集版)/第五回:モジュール

EB000025_VBAエキスパート(ExcelVBAベーシック)合格講座(再編集版)/第五回:モジュール ExcelVBA Basic

このページの内容について

このページは、VBAエキスパート(ExcelVBAベーシック)試験合格講座(再編集版)の第三回記事です。公式テキスト第3章「モジュールとプロシージャ」の内容について解説します。自分でも手を動かしながら読み進めてください。

モジュール

モジュールとは

マクロが記述される場所のことをモジュールと呼びます。

モジュールの種類

標準モジュール

最も汎用的に使えるモジュールであり、基本的にマクロはここに記述します。

VBAエキスパート試験のマクロはすべて標準モジュール上での動作を前提としています。

ユーザーフォーム

試験範囲ではありませんが、他の高級なプログラミング言語にはないExcelVBA(マクロ)の強みはこのユーザーフォームにあります。プログラミング素人でも直感的にGUI(グラフィカルユーザーインターフェース)を作成することができるモジュールです。

クラスモジュール

こちらも試験範囲ではありません。このモジュールはプログラミング上級者向けです。クラスモジュールで作成可能な機能はすべて標準モジュールで作成することができます。そのため、クラスモジュールを使用せずともかなり複雑な機能を持ったマクロを作成することも可能です。クラスとは一言では表現が難しいですが、誤解を恐れずにいうとオブジェクトを自作することができるモジュールです。

ブックモジュール

ブックを開くと同時に発動するマクロや、ブックの保存をトリガー(発動条件)とするマクロを作成することができるモジュールです。試験範囲ではありませんが、別途解説します。

シートモジュール

セルが変更されると発動するマクロや、別シートへ操作が移ることをトリガー(発動条件)とするマクロを作成することができるモジュールです。試験範囲ではありませんが、別途解説します。

モジュールの操作

標準モジュールを挿入する

プロジェクトエクスプローラーで右クリック⇒「挿入」⇒「標準モジュール」を選択する

VBEを起動(「Alt」+「F11」)し、プロジェクトエクスプローラーで右クリックして表示されるメニューから「挿入」⇒「標準モジュール」を選択します。

標準モジュールが作成されました

モジュールは複数作成することができ、Module1、Module2・・・と自動的に連番が付与されます。

標準モジュールの名称を変更する

プロパティウィンドウを開いておく

先に「表示」タブからプロパティウィンドウを開いておきます。「F4」でも開くことができます。

プロパティウィンドウでオブジェクト名を編集する

作成したモジュールがプロジェクトエクスプローラーで選択された状態でプロパティウィンドウのオブジェクト名を編集します。

ExcelVBA(マクロ)でのプログラミングを初めたばかりの方に多いのがモジュールの名称を初期状態のままにすることです(Module1、Module2・・・)。私見ですが、プログラミングにおいて最も重要なのは「整理整頓」をすることです。開発の規模が大きくなるほどプログラムを「読む」コストは増大します。他人が書いたプログラムであればなおさらです。プログラム開発の効率はとにかく「読む」コストを低減することにあるといっても過言ではありません。モジュールに名前をつけることはプログラムの整理整頓の第一歩です。モジュールはオブジェクト名の昇順で並ぶため、数字やアルファベットを駆使してきれいに管理しましょう。

標準モジュールを削除する

プロジェクトエクスプローラーで右クリック⇒「~解放」を選択する

プロジェクトエクスプローラーで右クリック「<モジュール名>の解放」を選択します。

ダイアログボックスが表示されるため「はい」か「いいえ」を選択する

次に表示されるダイアログボックスで「いいえ」を選択するとそのまま標準モジュールが削除されます。エクスポート(Excel外に保存)しておきたい場合は「はい」を選択し、任意の場所へ保存します。

標準モジュールをコピーする

標準モジュールをコピーする方法は2つあります。ひとつはエクスポートしたモジュールをインポートすることです。コピー先が別ブックである場合、ドラッグ&ドロップでもコピーが可能です。

外部保存してあるファイルをインポートする
ドラッグ&ドロップでモジュールをコピーする

補記:VBEからシート名を変更してみる

プロパティウィンドウを使うとVBEからシート名を変更することもできます。

「Microsoft Excel Objects」のシートモジュールを選択する

プロパティウィンドウの「Name」を任意の名称へ変更する

シート名が変更されました

シートモジュールは標準モジュール等と同様、オブジェクト名というプロパティも持っています。シートモジュールのオブジェクト名はマクロ内でシートを指定するときに使うことができる名称です。別記事で解説します。

【PR】VBAエキスパート試験対策記事

当サイトでは、オデッセイコミュニケーションズ社が運営する試験であるVBAエキスパートExcel VBA ベーシックExcel VBA スタンダード)の出題範囲をベースに用語や各種関数の解説などを行っています。試験合格に向けて必須と言われる公式テキストに沿って解説をしています。受験をするか悩んでいる方、テキストとは別視点の解説を見てみたい方、受験はしないがExcelVBA(マクロ)に興味がある方へ向けた記事です。

Comment