プロパティ プロシージャを作成する

プロパティ プロシージャは、一連の Visual Basic ステートメントで、プログラマはこれを使用してカスタム プロパティの作成と操作ができます。

  • プロパティ プロシージャを使用して、フォーム標準モジュール、およびクラス モジュールの読み取り専用のプロパティを作成できます。

  • プロパティの値を設定する場合に実行する必要があるコードでは、プロパティ プロシージャをパブリック変数の代わりに使用してください。

  • Public 変数とは違い、Property プロシージャはオブジェクト ブラウザーでヘルプ文字列を割り当てることができます。

プロパティ プロシージャを作成すると、プロシージャを含むモジュールのプロパティになります。 Visual Basic は、次の3種類のプロパティ プロシージャを提供します。

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

プロパティ プロシージャを宣言する構文は次のとおりです。

[ パブリック | Private ][ Static ] Property { Get | Let | Set } propertyname [( arguments )] [ Astype ] statementsEnd Property

通常、プロパティ プロシージャは次のペアで使用します: Property LetProperty Get、そしてProperty SetProperty GetProperty Get プロシージャだけの宣言は、読み取り専用プロパティの宣言に似ています。 Variantだけはオブジェクトまたはその他のデータ型情報のどちらかを含むことができるため、3つすべてプロパティプロシージャ型を組み合わせて使用することは、Variant 変数にだけ役に立ちます。 Property Setは、Property Letではなく、オブジェクトと一緒に使うことを対象としています。

必要なプロパティ プロシージャ宣言の引数を次の表に示します。

プロシージャ 宣言の構文
Property Get プロパティ Getpropname (1, ..., n) 型として
Property Let Property Letプロパティ名 (1, …,,,, n, n +1)
Property Set Property Setプロパティ名 (1, …, n, n +1)

同じ名前のすべてのプロパティ プロシージャ内では、最後から2番目の引数 (1, …, n) を経由した最初の引数は、同じ名前とデータ型を共有する必要があります。

Property Get プロシージャの宣言は、関連するProperty LetProperty Set 宣言より小さい引数を使用します。 関連する Property LetProperty Set 宣言内では、 Property Getプロシージャのデータ型は、最後の引数 (n +1) のデータ型と同じである必要があります。 たとえば、以下の Property Let プロシージャを宣言する場合、Property Get 宣言では、Property Let プロシージャの引数と同じ名前およびデータ型の引数を使用する必要があります。

Property Let Names(intX As Integer, intY As Integer, varZ As Variant) 
 ' Statement here. 
End Property 
 
Property Get Names(intX As Integer, intY As Integer) As Variant 
 ' Statement here. 
End Property 

Property Set 宣言の最後の引数のデータ型は、オブジェクト型またはバリアント型 (Variant) とする必要があります。

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。