【Excel VBA】モジュールの基礎知識まとめ

【Excel VBA】モジュールの基礎知識まとめ

前回VBE(Visual Basic Editor)の画面構成についてまとめました。

VBE(Visual Basic Editor)の画面構成 | Excelを制する者は人生を制す ~No Excel No Life~

今回はVBEのプロジェクトエクスプローラー上にあるモジュールについての基礎知識についてまとめていきます。

Excelの主なモジュールの種類

「今すぐ使えるかんたんmini Excelマクロ&VBA基本技」を参考にモジュールの種類についてまとめていきます。

大別するとExcelでは以下の4種類のモジュールがあります。

  • Microsoft Excel Objects
  • フォームモジュール
  • 標準モジュール
  • クラスモジュール

実際のVBE上のイメージとしては下図の通りです。

モジュール①

Microsoft Excel Objects

開いているExcelブックを構成しているExcelのブックやシートの総称です。

各ブック・シートを操作したタイミングで自動的に実行するマクロ(イベントプロシージャ)を作成する場合などに利用します。

なお、各ワークシートは「シートモジュール」、「ThisWorkbook」は「ブックモジュール」と呼びます。

ちなみにモジュールの中でもデフォルトで表示されるのはこちらのみになります。(他のモジュールは別途追加するための操作が必要)

フォームモジュール

ユーザーフォームを作成すると追加されます。

ユーザーフォームの動作を指示するマクロを記述するモジュールです。

標準モジュール

「マクロの記録」を行うと追加されます。

標準的なマクロはこちらに記述することが一般的でもっとも利用頻度が高いモジュールです。

一般的に「モジュール」と呼ばれた場合はほとんどがこちらのモジュールを指しています。

クラスモジュール

利用頻度的にはもっとも低く上級者向けです。

オブジェクトをつくるための「クラス」というものを定義するモジュールです。

モジュールな簡単な区別の仕方

「ストーリーで学ぶ Excel VBAと業務改善のポイントがわかる本」ではモジュールをもっとも大きな区分けをしてわかりやすく解説されてましたので、こちらもシェアしていきます。

分け方としては、そのモジュールがオブジェクトにくっついているか否かです。
簡単にまとめると以下の通りです。

  • オブジェクトにくっついているモジュール:各オブジェクトでのみ使用可能なもの
  • オブジェクトにくっついていないモジュール:オブジェクトを横断して使用可能な汎用的なもの

区分けした結果は下図の通りです。

モジュール②

オブジェクトにくっついているモジュール

  • Microsoft Excel Objects(シートモジュール/ブックモジュール)
  • フォームモジュール

オブジェクトにくっついていないモジュール

  • 標準モジュール
  • クラスモジュール

まとめ

モジュールは種類もあって、組みたいマクロの内容に応じて使い分けをすることが求められます。

どう使い分けると、未来の自分や第三者が見て理解しやすい、あるいは改修しやすいものになるかを考えながら経験を積むことが重要ですね。

次回以降はプロシージャについてまとめて行く予定です。