tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: Activexで呼び先のコレクションへデータをセットする方法
投稿日: 2010/03/17(Wed) 19:55
投稿者魔界の仮面弁士
>   Set Obj = CreateObject("Prog2.class1")
>   with Obj 
>     .Sendatas = new collection
>     set .Sendatas = col

No.14563 では、Set 操作を 2 回行っていたのに対し、今回の
No.14565 では、Let 操作の後に Set 操作を行っていますね。どちらが本当ですか?

また、ここで代入している「変数 col」とは何者でしょうか?

(1) 変数 col は、As New Collection として宣言された変数である。
(2) 変数 col は、As Collection として宣言された変数である。
(3) 変数 col は、上記以外の宣言で作られた変数である。
(4) col は変数ではなく、Prog1 側のプロシージャである。

さらに、その Prog1 側の col インスタンスの内容はどうなっていますか?

(a) col には Set col = New Collection 操作を行っておらず、Nothing 状態である。
(b) col には Collecion インスタンスがセットされているが、登録データは 0 件である。
(c) col には Collecion インスタンスがセットされており、データが登録されている。
(d) その他


> class1.cls
>  public Sendatas as collection
提示されたコードだと、そもそもエラーになってしまうハズですが…。

Prog2.class1 側でモジュールレベル変数として実装されているだけなら、
Prog1 側で Let 操作を行おうとすると、エラーになってしまうはずです。

逆に、本当に今回のように Let と Set 動作を行っているのだとすれば、
Prog2.class1 側には少なくとも
 Public Property Let Sendatas(…
 Public Property Set Sendatas(…
 Public Property Get Sendatas(…
のうち、Let と Set の実装が必要になるはずです。


>> 代入処理を 2 回行っているのはなぜでしょうか?
> こうすればセットするのかなと思いまして・・(いろいろ試行錯誤してまして)
無意味だと思いますよ。2回目の Set 操作だけで十分なはずです。
(2 回目の Set 操作が行われる際に、1 回目に Set したインスタンスが破棄されるので)

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。