VB6.0にてクラスモジュールを二つ定義し、
片方にもう片方のクラスを持たせるメソッドを持たせたのですが、
それを実行すると
実行時エラー438
このオブジェクトはこのメソッドまたはプロパティをサポートしていません。
となってしまいました。
Class1, Class2
Class1にメソッド
Public Sub setWepon1(ByRef cls2 As Class2)
Set
End Sub
スペルミスなどではないことは確認したのですが、なぜ、このメッセージが出るのかがわかりません。
どなたか心当たりがありましたら教えたいただけないでしょうか。
すみません 入力中に誤って送信してしまいました
コードの部分は
Class1, Class2
Class1にメソッド
Public Sub setWepon1(ByRef cls2 As Class2)
Dim class2Data As Class2
Set class2Data = cls2
End Sub
となります。
不手際すみません
もうすこし詳しくお願いできますでしょうか?
掲示のソースだけではエラーは起きません。
setWepon1メソッドを呼び出している部分などをお願いします。
それから、class2を保持するのが目的ならば、setWepon1メソッドの中で変数を宣言しないで、
Class1で宣言されている関数などの外側でPrivateで宣言した方がよいと思います。
失礼しました。
呼び出し部分ですが、普通にクラスを宣言して、メソッドを呼んでいます
Dim cls1 As Class1
Dim cls2 As Class2
Set cls1 = New Class1
Set cls2 = getClass2() 'class2を取得するメソッド
cls1.setWepon1(cls2)
それから、ご指摘Class2宣言ですが、これは関数外で宣言しています。
紛らわしい記述ミスでした。すみません。
cls1.setWepon1(cls2)
を
Call cls1.setWepon1(cls2)
にしてみるとどうでしょうか?
きっと変数か、まぁ名前のスコープの問題だと思う。
が、スコープが分からない。
短いソースでまとめ上げてもらえば可。
Call をつけてみたら無事に認識されました。
だいぶ返信が遅れていまい申し訳ありません
ご助言くださった方々、どうもありがとうございました。