質問: モジュールとクラスの違いってなんなんですか? モジュールとクラスの違いってなんなんですか? 本などをみてもいまいち分かりません。
回答: 端的かつ正確に言うと、クラスはオブジェクトで、標準モジュール(質問内でモジュールと呼んでいるのは標準モジュールのことだと思いますが)はオブジェクトではありません。 (もし、質問内でモジュールと呼んでいるのが、本当にモジュールという意味で言っているのであれば、クラスはクラスモジュールですし、フォームはフォームモジュールです。クラスはモジュールの一種です、という答えです) 使用方法で言うと、クラスはインスタンス作成時、破棄時にそれぞれイベントが発生するため、変数等の初期化や終了処理などをオブジェクト内で自動化できます。 オブジェクト内で自動化されるため、初期化手続き、参照の開放などクラスを使用する際には内部の動作を意識することなく使用することができます。 つまり、再利用性が高いと言いかえることができます。 また、vb5/6ではaddressof演算子が標準モジュール内の関数以外には使用できないという制限があるが、それを使用しない前提では、標準モジュールで実現できることはクラスで書きかえることができます。 逆に、クラスではできる事でも、標準モジュールではできないことは山のようにあります。 #1さんが書いたように、複数のインスタンスを作成することもそうですが、当方の利用方法では、コレクションに追加できるという点を挙げたいと思います。他には、自己再起定義(造語)です。classa内でclassaオブジェクトを作成するような動作です。classa内でclassaを定義した場合、中に作成されたclassaの中にさらにclassaが定義可能で、さらにその内部にclassaが、さらにその内部に・・・と、スタックの許す限り無限に定義されます。 ポリモーフィズム、関数の引数や返り値にクラスを渡すなど、いろいろと標準モジュールには不可能な点が多くあります。