Property Get ステートメント

Propertyプロシージャの本体を形成する名前、引数、およびコードを宣言します。これは、プロパティの値を取得します

構文

[ Public | Private | Friend ] [ Static ] Property Getname [ (arglist) ] [ Astype ]
[ statements ]
[ name= ]
[ Exit Property ]
[ statements ]
[ name= ]
End Property

Property Get ステートメントの構文には、次の指定項目があります。

指定項目 説明
Public 省略可能。 この Property Get プロシージャは、すべてのモジュールにある他のすべてのプロシージャからアクセスできることを示します。 Option Private ステートメントを含むモジュールで使用される場合、このプロシージャはプロジェクトの外部では使用できなくなります。
Private 省略可能。 この Property Get プロシージャは、このプロシージャが宣言されたモジュール内にある他のプロシージャからのみアクセスできることを示します。
Friend 省略可能。 クラス モジュール内でのみ使用します。 この Property Get プロシージャは、プロジェクト全体で参照可能ですが、オブジェクトのインスタンスのコントローラーからは参照できないことを示します。
Static 省略可能。 この Property Get プロシージャのローカル変数が呼び出し間で保持されることを示します。 この Property Get プロシージャの外側で宣言された変数は、このプロシージャ内で使用されていても、Static 属性の影響を受けません。
name 必須。 この Property Get プロシージャの名前です。標準の名前付け規則に従ってください。ただし、同じモジュール内にある Property Let プロシージャまたは Property Set プロシージャと同じ名前にすることもできます。
arglist 省略可能。 この Property Get プロシージャの呼び出し時に渡される引数を表す変数のリストです。 複数の引数は、コンマで区切られます。 Property Get プロシージャの各引数の名前とデータ型は、対応する Property Let プロシージャの引数と同じ名前にする必要があります (対応するプロシージャが存在する場合)。
type 省略可能。 Property Get プロシージャが返す値のデータ型です。ByteBooleanIntegerLongCurrencySingleDoubleDecimal (現在サポートされていません)、DateString (固定長を除く)、ObjectVariantユーザー定義型、および配列を指定できます。

Property Get プロシージャの戻り値の type は、対応する Property Letプロシージャ (存在する場合) の最後の引数 (場合によっては唯一の引数) と同じデータ型にする必要があります。対応するプロシージャでは、の右辺でプロパティに割り当てる値を定義します。
statements 省略可能。 この Property Get プロシージャの本文内で実行するステートメントのグループです。
expression 省略可能。 Property Get ステートメントで定義したプロシージャが返すプロパティの値。

arglist 引数の構文と指定項目は次のとおりです。

[ Optional ] [ ByVal | ByRef ] [ ParamArray ] varname [ ( ) ] [ Astype ] [ =defaultvalue ]

パーツ 説明
Optional 省略可能。 引数が必須でないことを示します。 このキーワードを使用した場合は、それ以降の arglist 内の引数もすべて省略可能にして、Optional キーワードを使用して宣言する必要があります。
ByVal 省略可能。 値渡しで引数が渡されることを示します。
ByRef 省略可能。 参照渡しで引数が渡されることを示します。 ByRef は、Visual Basic .NET とは異なり、VBA の既定値です。
ParamArray 省略可能。 arglist の最後の引数としてのみ使用し、最後の引数が Variant 要素の Optional の配列であることを示します。 ParamArray キーワードを使用することで、任意の数の引数を指定できます。 ByValByRef、または Optional と併用することはできません。
varname 必須。 引数を表す変数の名前です。標準の変数の名前付け規則に従ってください。
type 省略可能。 プロシージャに渡す引数のデータ型です。ByteBooleanIntegerLongCurrencySingleDoubleDecimal (現在サポートされていません)、DateString (可変長のみ)、ObjectVariant、または特定のオブジェクト型を指定できます。 パラメーターが Optional でない場合は、ユーザー定義型の指定も可能です。
defaultvalue 省略可能。 任意の定数または定数式です。 Optional のパラメーターにのみ有効です。 Object 型の場合、明示的な既定値は Nothing のみが有効です。

解説

PublicPrivate、または Friend を使用した明示的な指定がない場合、Property プロシージャは既定でパブリックになります。 Static が使用されていない場合、ローカル変数の値は呼び出し間で保持されません。

Friend キーワードは、クラス モジュールでのみ使用できます。 ただし、Friend プロシージャは、プロジェクトに含まれるどのモジュール内のプロシージャからでもアクセスできます。 Friend プロシージャは、その親クラスのタイプ ライブラリには表示されません。また、Friend プロシージャは、遅延バインディングもできません。

すべての実行可能なコードは、プロシージャ内に配置する必要があります。 Property Get プロシージャは、別の Property プロシージャ、Sub プロシージャ、または Function プロシージャの内側で定義することはできません。

Exit Property ステートメントにより、Property Get プロシージャは即時終了します。 プログラムの実行は、その Property Get プロシージャを呼び出したステートメントの次のステートメントから続行されます。 Exit Property ステートメントは、Property Get プロシージャ内の任意の場所にいくつでも配置できます。

Sub プロシージャや Property Let プロシージャと同様に、Property Get プロシージャは個別のプロシージャとして、引数を取り、一連のステートメントを実行し、その引数の値を変更できます。 ただし、Sub プロシージャや Property Let プロシージャとは異なり、Property Get プロシージャは、プロパティの値を返すときに Function やプロパティ名を使用するのと同じ方法で式の右辺で使用できます。

この例では、Property Get ステートメントを使用して、プロパティの値を取得するプロパティ プロシージャを定義しています。 このプロパティでは、ペンの現在の色を文字列として特定します。

Dim CurrentColor As Integer 
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3 
 
' Returns the current color of the pen as a string. 
Property Get PenColor() As String 
 Select Case CurrentColor 
 Case RED 
 PenColor = "Red" 
 Case GREEN 
 PenColor = "Green" 
 Case BLUE 
 PenColor = "Blue" 
 End Select 
End Property 
 
' The following code gets the color of the pen 
' calling the Property Get procedure. 
ColorName = PenColor 

関連項目

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

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