備忘録として残します。
■やり方
Set 関数名 = オブジェクト
で戻り値にセットできます。
Private Function testFunc() As Object 'または As Variant
Set obj = CreateObject("Scripting.Dictionary")
'testFunc = obj 'NG
Set testFunc = obj 'OK
End Function
関数の呼び出し元も戻り値はSetで受け取らないといけません。
Private Function main()
Set returnObj = testFunc()
End Function
■余談
Setなくてもフレキシブルに渡してやれとか受け取ってくれとか思いますが、もうVBにキレるのは疲れました。