Another option would be to have a data object to just build your data, and then pass that object to the 'real' object
1 . clsData
Option Explicit
Private a(1 To 10) As Variant
Property Let EnterData(ndx As Long, v As Variant)
a(ndx) = v
End Property
Property Get TheData() As Variant
TheData = a
End Property
2. clsUsingClass
Option Explicit
Private V1 As Variant
Private V2 As Variant
Private V3 As Variant
Sub Init(D As clsData)
V1 = D.TheData(1)
V2 = D.TheData(2)
V3 = D.TheData(3)
End Sub
Property Get WhatV1() As Variant
WhatV1 = V1
End Property
Property Get WhatV2() As Variant
WhatV2 = V2
End Property
Property Get WhatV3() As Variant
WhatV3 = V3
End Property
3. standard module
Option Explicit
Sub Try2()
Dim D As clsData
Dim U As clsUsingClass
Set D = New clsData
With D
.EnterData(1) = 123
.EnterData(2) = "asdfasfdasdf"
.EnterData(3) = #5/7/2014#
End With
Set U = New clsUsingClass
Call U.Init(D)
MsgBox U.WhatV1
MsgBox U.WhatV2
MsgBox U.WhatV3
End Sub
But that seems complicated