Digital_Neko

フリーランスプログラマー

Propertyプロシージャ setの使い方 VBA

今回は、Propertyプロシージャのsetの使い方について書いていきます。setはオブジェクトをプロパティに設定するのに利用します。早速ですがクラスモジュールを挿入し、図1のようにオブジェクト名を「Class」にします。

図1.オブジェクト名を変更

そして、クラスモジュールに図2のように記述します。

図2.クラスモジュール

ここでのポイントはオブジェクトを設定するので、「Property Set」になっていること、そしてプロシージャの中身が、「Set myWs = newValue」、「Set myWorkSheet = myWs」と頭にSetステートメントを用いていることです。これを忘れると動作しませんので注意してください。今回はワークシートをプロパティに設定します。

次に図3のように標準モジュールにプログラムを記述します。

図3.標準モジュール

図3のプログラムは、インスタンスを生成した後にプロパティを設定するのですが、ここで注意が必要です。ここでもオブジェクトを格納するので、

「Set cl.myWorkSheet = Worksheets(“Sheet1”)」

とセットステートメントを忘れずに記述します。

そして図2のクラスモジュールに「isFillCell」というサブプロシージャを用意しました。このサブプロシージャはプロパティで設定されたシートの指定セルに「Tokyo」、「Nagoya」、「Osaka」と入力します。これを図3の標準モジュールの最後で実行しています。

結果は「Sheet1」のセルに「isFillCell」で設定した値が代入されます。

今回のようにプロパティプロシージャでオブジェクトを扱う際には、ちょっとした注意が必要になります(すみません、今回はコンストラクタを入れていません)。

ワークシートやブックをプロパティに設定できるようになると、クラスモジュールの利用の幅が広るのでぜひ試してみてください。