本ページには広告が含まれています。

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

propertyプロシージャについて
画像はCanva「Text to Image」で生成しました

「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 プロシージャ」については次の記事をご覧ください。

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

Excel VBA クラスの作成・使い方について(Lv.1)
Excel VBA クラスのプロパティ設定について(Lv.2)
Excel VBA クラスにメソッドを設定する方法(Lv.3)
Excel VBA クラスをインスタンス化する方法(Lv.4)
Excel VBA クラス Propertyプロシージャ(Lv.5)
Excel VBA クラス Property Getプロシージャ(Lv.6)
Excel VBA クラス Property Letプロシージャ(Lv.7)
Excel VBA クラス Property Setプロシージャ(Lv.8)
Excel VBA シートの表データからクラスを作成 (Lv.9)
Excel VBA クラス インスタンスをコレクション化(Lv.10)
Excel VBA クラス コンストラクタとデストラクタ(Lv.11)
Excel VBA クラス コンストラクタを利用する方法(Lv.12)
Excel VBA クラス コレクションの要素取得方法(Lv.13)
Excel VBA クラス コレクション要素の追加と削除(Lv.14)
Excel VBA クラス コレクションの内容を書き出す(Lv.15)
Excel VBA クラス UserFormで機能を操作する(Lv.16)
Excel VBA クラス コレクションの最大要素数について(Lv.17)

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

スポンサーリンク
スポンサーリンク

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

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

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