「Excel VBAのクラス」について第5回目です。クラスで使う「Propertyプロシージャ」について勉強していきます。
今日は、クラスで使う「Propertyプロシージャ」とはどういうモノなのか
勉強したいと思います (^^)
「Propertyプロシージャ」って今まで聞いたことないんですけど
どんなものか楽しみです。今回もよろしくお願いしますm(_ _)m
はじめに
「Propertyプロシージャ」とはどういうものなのでしょうか?
「プロパティ」は、オブジェクトが持っている属性などの情報のことです。
「プロシージャ」といえば、「Subプロシージャ」「Functionプロシージャ」や「イベントプロシージャ」などがあります。
【この記事でわかることは】
・Propertyプロシージャについての概要
Propertyプロシージャとは
「Propertyプロシージャ」を使用すれば、フォーム、 標準モジュール、およびクラスモジュールのプロパティを作成できます。
「Propertyプロシージャ」の3つのステートメントを使って、カスタムプロパティの作成と操作ができるようになります。
作成した「Propertyプロシージャ」は、プロシージャを含むモジュールのプロパティになります。
Propertyプロシージャの種類と構文
Propertyプロシージャには、次の3種類があります。
プロシージャ | 説明 |
---|---|
Property Get | プロパティの値を返すプロシージャ |
Property Let | プロパティの値を設定するプロシージャ |
Property Set | オブジェクトに対する参照を設定するプロシージャ |
Propertyプロシージャを宣言する構文は次のとおりです。
構文
[Public|Private|Friend][Static] Property {Get|Let|Set} propname ([arguments]) [As type]
statements
End Property
※ []で囲んだものは省略可能です。
構文の解説
・Publicで宣言した場合、すべてのモジュールのすべてのプロシージャから参照できます。
・Privateで宣言した場合、宣言したモジュール内でのみ参照できます。
・Friendの宣言は、クラスモジュール内でのみ使用できます。プロジェクト全体からは参照できますが、インスタンスのコントローラーからは参照できません。
・Staticを指定した場合、このPropertyプロシージャ内のローカル変数の内容が保持されます。
・propname には、宣言するプロパティの名前を指定します。
・arguments には、宣言したプロパティを呼び出すときの引数を指定します。
・As type には、Propertyプロシージャの戻り値の型を指定します。
・通常「作成と取得」、「 Let と Get 」そして「 Set と Get 」をペアで使用します。
・Property Get だけにすることもできますが、その場合は読み取り専用プロパティになります。
プロシージャ宣言の引数
Propertyプロシージャ宣言引数の構文例を示した表が次のとおりです。
プロシージャ | 宣言の構文 |
---|---|
Property Get | Property Get プロパティ名 (1, …, n) As データ型 |
Property Let | Property Let プロパティ名 (1, …, n, n+1 As データ型) |
Property Set | Property Set プロパティ名 (1, …, n, n+1 As データ型) |
引数の解説
・同じ名前のすべてのPropertyプロシージャ内では、引数 (1, …, n) は、同じ名前とデータ型を共有する必要があります。
・Property Get の宣言は、関連するProperty Let や Property Set より小さい引数を使用します。
・関連する Property Let や Property Set では、Property Get プロシージャのデータ型と最後の引数 (n+1) のデータ型と同じである必要があります。たとえば、次のような感じです。
Property Let Names(lngX As Long, strY As String, varZ As Variant)
~Statement~
End Property
Property Get Names(lngX As Long, strY As String) As Variant
~Statement~
End Property
・Property Set 宣言の場合、最後の引数のデータ型は、オブジェクト型またはバリアント型 (Variant) とする必要があります。
まとめ(おわりに)
以上、Excel VBAでクラスで使える Propertyプロシージャの概要について確認しました。
クラスについての5回目でした。
Propertyプロシージャの概要については理解できましたか?
まだまだ理解できたとは言えないです。
なんとなくわかったかなぁという感じです(^^;)
それでは、3つのPropertyプロシージャのそれぞれを詳しく見ていきましょう。
次回は、Property Get についてです。よろしくお願いします(^^)/
わかりました。よろしくお願いしますm(_ _)m
まとめと感想など
Propertyプロシージャの概要について、今回覚えておきたい大事なことはこちらです。
各「Propertyプロシージャ」の詳細については、各記事掲載次第リンクを設定しますのでそちらをご覧ください。「Property Get プロシージャ」については次の記事をご覧ください。
Excel VBA クラスについての記事一覧
★★★ ランキング参加中! クリックしてね(^^)/ ★★★
過去記事のサンプルファイルをダウンロードできます
この記事のサンプル登録はありません。記事内のコードをご利用ください。
過去の記事で使用したサンプルファイルがダウンロードできるページを設置しています
こちら(このリンク先)からご利用ください