• ベストアンサー

Property Get での配列の引渡し

初歩的な質問なんですが、よろしくお願いいたします。 Property Getで配列を渡したいのですが どのように行えばよろしいのでしょうか? ParamArrayで行えば良いのかと思いましたがエラーが出てしまい ます。 Access2000のHELPではProperty GetでもParamArrayが使用できるよう に書いてあるんですが・・・・ 今の開発環境はAccess2003になります。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 以下は、あくまでも、Access とは関係なく、単に、VBAでのProperty Get の使い方の一例です。 '標準モジュール Sub Test1()   Dim myClass As Class1   Dim i As Integer   Set myClass = New Class1   myClass.Value = Array(111, 112, 113)   If IsArray(myClass.Value) Then     For i = LBound(myClass.Value) To UBound(myClass.Value)       MsgBox myClass.Value(i)     Next i   End If End Sub 'クラスモジュール Private myValue As Variant Public Property Let Value(myNewValue As Variant)   myValue = myNewValue End Property Public Property Get Value() As Variant    Value = myValue End Property

papope
質問者

補足

ご回答ありがとうございます。 理解できました。 ありがとうございます。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 全体的なコードが見えてこないので、あまりはっきりしたことが言えません。 >やりたいことは >Public Property Get AAAA() as variant >の場合に戻り値(as Variantのところ)を配列にできないのかな? 代入値で決まってくるように思いますが。 × Public Property Get AAAA() As Variant() のような、あえて、エラーを引き起こすような書き方は出来ないと思います。Property Get 側に引数がないということは、Property Let 側で、代入することでしょうか?

papope
質問者

補足

ご回答ありがとうございます。 コードで悩んでいるので、コードの具体例が無いんです・・・すみません。 Private TBL() as Variant Public Property Get AAAA() as ....? AAAA = TBL() . . ていうような感じで渡せないものかな?と思ったものですから。 テーブルの配列数は不定・・・ 非常にわかりずらいかもしれませんが・・・

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 何をされたいのか、どんなエラーが出ているのか、こちらでは分かりかねますが、単に、VBAとして言うなら、 >ParamArrayで行えば良いのかと思いましたがエラーが出てしまいます。 初歩的なことだと思いますが、Property Get でも、引数としてパラメータ配列を使用する場合は、引数の後に、パラメータ配列を入れます。 それから、Property Get に渡す場合に、そのままでは、配列にはなっていないと思います。 私の知っている範囲で答えるなら、配列にする場合、Property Get の中で、配列に組み替えないと出来ないはずです。

papope
質問者

補足

ご回答ありがとうございます。 また返答が遅れまして申し訳ありません。 ごめんなさい。 HELPの読み間違いでした。 やりたいことは Public Property Get AAAA() as variant の場合に戻り値(as Variantのところ)を配列にできないのかな? と思った次第です。

関連するQ&A