[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/05/10(Tue) 10:52
投稿者名:じん
Eメール:
URL :
タイトル:
連想配列の引渡し

フォーム間で連想配列の引渡しを行っているのですが、
以下のメッセージが表示され上手くできません。
どこがいけないのでしょうか。

「引数の数が一致していません。または不正なプロパティを指定しています。(Error 450)」

'Form1
Private Sub Command1_Click()
    Dim objDic As Object
    
    Set objDic = CreateObject("Scripting.Dictionary")

    '連想配列に値を設定する処理

    Form2.Show
    Form2.Data_Delivery (objDic)
    Unload Me

End Sub

'Form2
Private Sub Form_Load()
   処理
End Sub

Private Sub Command1_Click()
   処理
End Sub

Private Sub Command2_Click()
   処理
End Sub

Public Sub Data_Delivery(ByVal arrData As Object)
    Dim objDic As Object
    
    Set objDic = CreateObject("Scripting.Dictionary")

  objDic = arrData
End Sub

投稿時間:2005/05/10(Tue) 12:42
投稿者名:たけ
Eメール:
URL :
タイトル:
Re: 連想配列の引渡し
>
> フォーム間で連想配列の引渡しを行っているのですが、
> 以下のメッセージが表示され上手くできません。
> どこがいけないのでしょうか。
>
> 「引数の数が一致していません。または不正なプロパティを指定しています。(Error 450)」

>Form2.Data_Delivery (objDic)
()はいらないですね。

> objDic = arrData
オブジェクトの代入はSetを使いましょう

あと、Public Sub Data_Deliveryプロシージャ内で
Set objDic = CreateObject("Scripting.Dictionary")でインスタンスを作成しているのに
その後でobjDic = arrDataってなんか意味あるんですか?
Set objDic = CreateObject("Scripting.Dictionary")はいらないんじゃないですか?

投稿時間:2005/05/10(Tue) 13:20
投稿者名:じん
Eメール:
URL :
タイトル:
ありがとうございます。
> >
> > フォーム間で連想配列の引渡しを行っているのですが、
> > 以下のメッセージが表示され上手くできません。
> > どこがいけないのでしょうか。
> >
> > 「引数の数が一致していません。または不正なプロパティを指定しています。(Error 450)」
>
> >Form2.Data_Delivery (objDic)
> ()はいらないですね。
ありがとうございます。
エラーがでなくなりました。

投稿時間:2005/05/10(Tue) 12:46
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re: 連想配列の引渡し
> Public Sub Data_Delivery(ByVal arrData As Object)
>     Dim objDic As Object
>    
>     Set objDic = CreateObject("Scripting.Dictionary")
>
>   objDic = arrData
> End Sub

引数のarrDataをそのままData_Deliveryの中で使うのは駄目なんですか?
それか、Set objDic = arrDataとするとか。