モジュールの種類

モジュールの種類は標準<モジュール、クラスモジュール、そしてフォームモジュールに大別されます。

ところがオブジェクトモジュールという存在を最近知りました。

Accessではフォームやレポートにくっついているモジュールはクラスモジュールとして統一していますが、ExcelVBAではシートとくっついたモジュールをオブジェクトモジュールと呼ぶそうです。(ExcelVBAスタンダード 翔泳社)

実はAccessのサンプルデータベースに対してはオブジェクトモジュールならぬ「フォームモジュール」という呼び方がされているページを発見。

http://support.microsoft.com/default.aspx?scid=kb;ja;286591

フォームモジュール???
では、ヘルプ。

「Access には、オブジェクトに関連付けられていないクラス モジュール、フォームに関連付けられたフォーム モジュール、およびレポートに関連付けられたレポート モジュールがあります。」

あったんですね・・

Accessでのモジュールの位置づけは、というと
Accessアプリケーションの階層の下にモジュールコレクションが位置付けられ、モジュールオブジェクトが配置されています。

          

もしかするとAccessのフォームはユーザーフォームと違う特徴を持っているのでフォームを作成するたびにできるオブジェクトのクラスからのインスタンス、という意味を込めてクラスモジュールなのかもしれません。んじゃ、Excelのクラスモジュールで扱うセルやシートはインスタンスじゃなくてなんだっていうのさ、 などなど・・悩む、悩む。

でも、Excelのシートにくっついたモジュールをエクスポートすると拡張子clsのクラスモジュール。Accessももちろん同様。
ユーザーフォームは確かにはっきりとフォームモジュールなので敢えて分類すると・・

クラスモジュールはイベントと結びつきのあるオブジェクトモジュールと
クラスを作成する意義を持つモジュールの2種類に大別される。

さらにAccessではオブジェクトに合わせて、イベントを格納するクラスモジュールを
フォームモジュール、レポートモジュールと呼ぶ.

もちろん、モジュールのタイプは
標準モジュール(拡張子.bas),
クラスモジュール(拡張子.cls)
フォームモジュール(拡張子.frm)の三種類です。

あ〜すっきりした!