Excel VBA クラス Propertyプロシージャ(Lv.5)

propertyプロシージャについて

「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 GetProperty Get プロパティ名 (1, …, n) As データ型
Property LetProperty Let プロパティ名 (1, …, n, n+1 As データ型)
Property SetProperty 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プロシージャ」は、3つのステートメントを使ってカスタムプロパティの作成と操作ができます。作成すると、プロシージャを含むモジュールのプロパティになります。

「Property Get」プロパティの値を返すプロシージャ
「Property Let」プロパティの値を設定するプロシージャ
「Property Set」オブジェクトに対する参照を設定するプロシージャ

各「Propertyプロシージャ」の詳細については、各記事掲載次第リンクを設定しますのでそちらをご覧ください。「Property Get プロシージャ」については次の記事をご覧ください。

[https://www.kurumico.com/excel-vba-class6/12212/]

Excel VBA クラスについての記事一覧

★★★ ランキング参加中! クリックしてね(^^)/ ★★★

過去記事のサンプルファイルをダウンロードできます

この記事のサンプル登録はありません。記事内のコードをご利用ください。

過去の記事で使用したサンプルファイルがダウンロードできるページを設置しています
こちら(このリンク先)からご利用ください

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次