具体的なメリットは、クラスモジュールを使ってゆく上でわかってくるものだと思いますが、その中でも重要なことを挙げてみました。
標準モジュールには、プロジェクト内の複数のフォームから参照できる、”グローバルな”プロシージャを記述します。関数専用なので、フォームとは直接関わりのない処理などを標準モジュールにまとめて記述します。汎用的に使える処理やアルゴリズムを標準モジュールにまとめておけば、他のプロジェクトでも再利用できますよね。
クラスモジュールも、クラスモジュールファイル(拡張子 cls)自体がひとつのクラスになるので、このような部品化が可能です。ひとつのファイルでひとつのクラスなので、部品化するという点でも、標準モジュールより優れています。
意味ごとに分類された部品を作っていく方法と、すべてをひとつのモジュールにまとめて書いてしまうやり方と、どちらが効率的か考えてみてください。
部品化は標準モジュールにでもできることですし、機能ごとにモジュールにまとめて再利用するというやり方はごく一般的なことです。
クラスモジュールを利用する際に忘れてはならないのは、「クラスは型である」ということです。クラスはオブジェクトの「ひな形」であり、それをもとに変数が作られるのです。
たとえば、配列データを操作する必要があった場合、モジュールレベル変数に配列を用意するのではなく、配列をオブジェクト化したコレクションクラスを作って、そのインスタンスを保持するようにします。実際に配列を操作するのはコレクションクラスですが、コレクションには Add や Remove といったプロパティ・メソッドだけが用意されており、これを利用するクライアントに配列を意識させません。
これは、よく「テレビ」などでたとえられる「データ隠蔽」です。私たちは普段、何気なくテレビのスイッチを入れてチャネルを変えることができますが、「テレビの内部の構造がどうなっているか」なんて知らないのです。これと同じで、いちいち配列データを管理するコードを毎回書くのではなく、配列を操作するオブジェクトを一度作ってしまえば、それを利用するだけでよいのです。見た目にも可読性が向上するでしょう。
そう、VB でクラスモジュールを利用する最大のメリットは、ソースプログラムの可読性が得られることです。どんなプログラミング言語でも、「関数はできるだけ短く意味のあるものごとにまとめるべき」とされています。標準モジュールにグローバル関数を書いて利用する方法もあるのですが、「プロパティ」や「インスタンス」など、クラスモジュールにしかできない技もあるのです。