次の方法で共有


プロパティ プロシージャの呼び出し

次の表に、 プロパティ プロシージャを呼び出すための構文を示します。

Property プロシージャ 構文
Property Get [Set ] varname = [ object.] propname [( [arguments] )]
Property Let [Let ][ object.] propname [( [arguments] )] = argument
Property Set [object.] を設定する propname [( [arguments] )] = objectArg

プロパティ プロシージャの呼び出しには、少なくとも 1 つの引数、 代入 (=) 演算子、およびプロパティ プロシージャ名が必要です。

  • 割り当て演算子の右側にあるプロパティ名を持つ呼び出しで、Visual Basic は Property Get を呼び出して、クラス/オブジェクトから情報を返します。
  • 代入演算子の左側にあるプロパティ名を持つ呼び出しで、Visual Basic は Property Let または Property Set を呼び出して、クラス オブジェクト内の情報を更新します。

プロパティ プロシージャの宣言に複数の パラメーターがある場合は、 Property Let または Property Set を呼び出し、 代入演算子 の右側にある引数を最後の パラメーターProperty Let または Property Set プロシージャに渡します。

たとえば、次の図では 、Property Let を 使用して、プロパティ プロシージャ呼び出し (上) の引数が宣言 (下) のパラメーターとどのように関連しているかを示しています。

Property Let

次のコード例では、プロパティ プロシージャの引数とパラメーターの関係を示します。

'DemoType class declaration
Private pW
Private pX
Private pY
Private pZ

Property Get DemoProperty(w, x, y)
    'Calling format is: `z = DemoProperty(w, x, y)`
    ' or `Set z = DemoProperty(w, x, y)`
    w = pW
    x = pX
    y = pY
    If IsObject(pZ) Then
        Set DemoProperty = pZ
    Else
        DemoProperty = pZ
    End If
End Property
Property Let DemoProperty(w, x, y, z)
    'Calling format is `DemoProperty(w, x, y) = z`
    pW = w
    pX = x
    pY = y
    pZ = z
End Property
Property Set DemoProperty(w, x, y, z As Object)
    'Calling format is `Set DemoProperty(w, x, y) = z`
    pW = w
    pX = x
    pY = y
    Set pZ = z
End Property
Sub DemoSub()
    Dim myDemo As Object
    Dim a, b, c, d
    Dim w, x, y, z

    Set myDemo = New DemoType

    a = "Hello"
    b = ", "
    c = "world"
    d = "!"

    Debug.Print Join(Array(a, b, c, d), "") ' Hello, world!a

    'Call Property Let DemoProperty(a, b, c, d)
    Let myDemo.DemoProperty(a, b, c) = d
    'Call Property Get
    d = myDemo.DemoProperty(a, b, c)

    Debug.Print Join(Array(a, b, c, d), "") ' Hello, world!
End Sub

実際には、プロパティ配列を作成する場合にのみプロパティ プロシージャで複数の引数が指定されます。

関連項目

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

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