dポイントプレゼントキャンペーン実施中!

初歩的な質問なんですが、よろしくお願いいたします。
Property Getで配列を渡したいのですが
どのように行えばよろしいのでしょうか?

ParamArrayで行えば良いのかと思いましたがエラーが出てしまい
ます。

Access2000のHELPではProperty GetでもParamArrayが使用できるよう
に書いてあるんですが・・・・

今の開発環境はAccess2003になります。

よろしくお願いします。

A 回答 (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

この回答への補足

ご回答ありがとうございます。

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

補足日時:2007/09/11 09:19
    • good
    • 0

こんにちは。



全体的なコードが見えてこないので、あまりはっきりしたことが言えません。

>やりたいことは
>Public Property Get AAAA() as variant
>の場合に戻り値(as Variantのところ)を配列にできないのかな?

代入値で決まってくるように思いますが。

× Public Property Get AAAA() As Variant()

のような、あえて、エラーを引き起こすような書き方は出来ないと思います。Property Get 側に引数がないということは、Property Let 側で、代入することでしょうか?

この回答への補足

ご回答ありがとうございます。

コードで悩んでいるので、コードの具体例が無いんです・・・すみません。

Private TBL() as Variant

Public Property Get AAAA() as ....?
AAAA = TBL()
.
.
ていうような感じで渡せないものかな?と思ったものですから。
テーブルの配列数は不定・・・

非常にわかりずらいかもしれませんが・・・

補足日時:2007/09/10 19:02
    • good
    • 0

こんにちは。



何をされたいのか、どんなエラーが出ているのか、こちらでは分かりかねますが、単に、VBAとして言うなら、

>ParamArrayで行えば良いのかと思いましたがエラーが出てしまいます。

初歩的なことだと思いますが、Property Get でも、引数としてパラメータ配列を使用する場合は、引数の後に、パラメータ配列を入れます。

それから、Property Get に渡す場合に、そのままでは、配列にはなっていないと思います。

私の知っている範囲で答えるなら、配列にする場合、Property Get の中で、配列に組み替えないと出来ないはずです。

この回答への補足

ご回答ありがとうございます。
また返答が遅れまして申し訳ありません。

ごめんなさい。
HELPの読み間違いでした。

やりたいことは
Public Property Get AAAA() as variant
の場合に戻り値(as Variantのところ)を配列にできないのかな?
と思った次第です。

補足日時:2007/09/10 00:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!