クラス foo を持つルーチンです。クラス foo にはクラス bar が含まれていますが、初期化はしていません。私のルーチンでは、親メソッドの foo のクラス bar をオブジェクトとして渡します。次に、受信メソッドは foo のバーを新しいバーとして初期化します。
後でfooを参照すると、何らかの理由でbarが初期化されていません。別のメソッド内で foo のバーを初期化する方法はありますか?
<Class Foo>
Option Explicit
Public mybar As Bar
<Class Bar>
Option Explicit
Public theText As String
<Main Module>
Public Sub Test()
Dim myfoo As New foo
Dim abar As Bar
Derp myfoo.mybar
myfoo.mybar.theText = "Test"
End Sub
Public Sub Derp(ByRef mybar As Bar)
Set mybar = New Bar
End Sub
コードで myfoo.mybar.thetext = "Test" が検出されると、エラー 91 (オブジェクト変数または With ブロック変数が設定されていません) が表示されます。
ベンダー固有のシステムである VBA バージョン 6.5.1054 を通じて VBA を使用しています。