投稿者 魔界の仮面弁士  (社会人) 投稿日時 2013/2/28 23:56:01
> その場合、引数が1つでも2つでも3つでも、最後の引数がSet用の引数になるのでしょうか?
引数が n 個のプロパティを定義する場合、
Property Get の引数宣言は n 個となり、
Property Set/Let の引数宣言は n + 1 個となります。

最後の引数は、新しく代入されるプロパティの値(Property Get の戻り値に相当)を受け渡すもので、
それよりも前の引数が、プロパティの引数として使われます。

ヘルプでは、以下のように記載されていますね。
[Public | Private | Friend] [Static] Property Get name [(arglist)] [As type]

[Public | Private | Friend] [Static] Property Set name ([arglist,] reference)

[Public | Private | Friend] [Static] Property Let name ([arglist,] value)

reference 
必ず指定します。オブジェクトへの参照式の右辺に記述された、オブジェクトへの参照を表す変数を指定します。 

value 
必ず指定します。プロパティに代入する値を持つ変数を指定します。プロシージャを呼び出す場合、呼び出す式の右辺にこの引数を記述します。引数 value のデータ型は、対応する Property Get プロシージャの戻り値のデータ型と一致していなければなりません。 



ListBox を例に挙げれば、引数が 0 個の ListIndex プロパティなら、
 Property Get ListIndex() As Integer
 Property Let ListIndex(ByVal selectedIndex As Integer)
のような構文となり、引数が 1 個の Selected プロパティなら、
 Property Get Selected(Index AS Integer) As Boolean
 Property Let Selected(Index AS Integer, ByVal selValue As Boolean)
のような構文となります。