VBAクラスモジュールを作成して使用する方法は?(例)

ExcelVBAクラスモジュール

VBAを使用するときは、VBAで定義されたプロパティと属性を使用しますが、独自のプロパティとメソッドと属性を作成する場合、つまりVBAでクラスモジュールを使用してユーザー定義にする場合はどうなりますか?クラスモジュールには、ユーザーが関数、プロパティ、およびオブジェクトに対して定義した独自のコードセットがあります。

クラスモジュールは、オブジェクトを作成するために使用されます。変数であってもオブジェクトと言うと、それらは小さなプログラムです。コードを書いている間、私たちは通常モジュールで書きます。基本モジュールは、仕事をするためのコードを書く場所です。また、ユーザーフォームを使用してグラフィックユーザーインターフェイスを作成します。

しかし、上の画像を見ると、「クラスモジュール」がわかります。この投稿を読むまで、あなたがそれに触れていないことは確かです。通常のモジュール自体を使用してすべてのジョブを実行できる場合、このVBAクラスモジュールは何であるか疑問に思われるはずです。

クラスモジュールとは何ですか?

クラスモジュールを使用すると、「ワークシート」、「ワークブック」、「範囲」などの通常のモジュールに組み込みオブジェクトがあるのと同じように、ユーザーが独自のオブジェクトを作成できます。

このようにクラスモジュールを使用して、カスタムオブジェクトを作成できます。

クラスはオブジェクトと直接的な関係があります。たとえば、マシンを構築するためのマシン図がありますが、それはまだマシンではないことを忘れないでください。このマシン図を使用すると、そのような多くのマシンを構築できます。

たとえば、さまざまなマシンブランドをリストして、さまざまなモデルの特性をリストしたい場合です。

機械には、ブランド名、シリーズ番号、機械の出力、機械の色、関連するモーターの数、モーターの燃料の種類などがあります。技術用語では、これらは「プロパティ」と呼ばれます。

機械の特性に関しては、始動、停止、モーターの速度の増加、一時停止などが可能です。これらは「メソッド」と呼ばれます。

このVBAクラステンプレートはここからダウンロードできます–VBAクラステンプレート

理論的な部分を読むのはいつもつまらないことなので、ボールを転がし始めましょう。クラスモジュールを挿入するには、Visual BasicEditorの挿入オプションに移動します。

これで、次のようなクラスモジュールを見ることができます。

これは、通常のモジュールとして上に示したものと似ています。プロパティウィンドウでクラスモジュールの名前を変更します。プロパティウィンドウを表示するには、F4キーを押します

次に、変数を文字列として宣言します。

vbaでサブプロシージャを作成せずに、変数を宣言する必要があります。また、今回は「Dim」ではなく「Public」という単語を使用します。

これで、任意のモジュールおよびクラスモジュールでこの変数にアクセスできます。

次に、通常のモジュールに移動して、変数に名前を付けます。

変数を宣言した後、VBAでデータ型を割り当てる必要があります。データ型を割り当てる代わりに、クラスモジュールの名前(CM)を指定するだけです。

これで、変数「k」を使用して、クラスモジュールで定義したパブリック変数「MyValue」にアクセスできます。

上の図でわかるように、クラスモジュールからの変数名のオプションを示して値を割り当てています。

次に、割り当てられた変数の値をVBAメッセージボックスに表示します。

コード:

 Sub Class_Example()Dim k As New CM k.MyValue = "Hello" MsgBox k.MyValue End Sub 

F5キーを使用して、または手動でこのコードを実行して、結果を表示します。

クラスモジュールとオブジェクト

クラスモジュールの初期段階では、誰もがクラスとは何か、オブジェクトとは何かについて混乱します。

これを理解するために、以前の機械図の例を思い出してください。マシンを作成するために最初に必要なことは、最初にマシンを設計する必要があり、次にその設計で複数のコピーを複製できることです。

これをクラスモジュールに関連付けます。

  • ここで、クラスモジュールデザインです。そして、オブジェクトデザインによって作成されたコピーです
  • もう1つの興味深い点は、クラスモジュールからオブジェクトを作成するために「new」という単語を使用する必要があることです。

以下はその一例です。

ワークシート、ワークブック、範囲オブジェクトなどの組み込みオブジェクトを使用する場合、「新しい」という言葉は使用しません。

クラスモジュールの手順を開始するには、これらの基本的なことを知っておく必要があります。今後の記事では、次のレベルの例を紹介します。

これを理解するのは難しいようですが、クラスモジュールで過ごす時間が長くなるほど、それに慣れることになります。