カスタムCOMクラスのメンバーを持つクラスモジュールMyVBAclassがあります
Private mMyCOMclass As MyCOMclass
Public Property Get InnerClass() As MyCOMclass
Set InnerClass = mMyCOMclass
End Property
Public Property Let InnerClass(value As MyCOMclass)
Set mMyCOMclass = value
End Property
Private Sub Class_Initialize()
Set mMyCOMclass = New MyCOMclass
End Sub
MyCOMclassにはClone()メソッドとCopyTo()メソッドが実装されており、CloneはMyCOMclassの新しいインスタンスを返し、CopyToはプロパティを既に初期化されたオブジェクトにコピーするだけです。これは私が抱えている問題であり、誰かがそれを回避する方法を説明できれば素晴らしいと思います。
Dim MyVBAinstance As MyVBAclass
Set MyVBAinstance = New MyVBAclass
Dim COMinstance As MyCOMclass, copyOfCOM As MyCOMclass
Set COMinstance = New MyCOMclass
Set copyOfCOM = New MyCOMclass
' Do some stuff with COMinstance
Call COMinstance.CopyTo(copyOfCOM) ' Works fine
MyVBAinstance.InnerClass = COMinstance.Clone() ' Works fine even without Set
Call COMinstance.CopyTo(MyVBAinstance.InnerClass) ' DOESN'T WORK