Does this help???
<hr /><font face=Courier New><SPAN style="color:#007F00">' *** standard module ***</SPAN>
<SPAN style="color:#00007F">Sub</SPAN> TestSub()
<SPAN style="color:#00007F">Dim</SPAN> c <SPAN style="color:#00007F">As</SPAN> clsTest, cc <SPAN style="color:#00007F">As</SPAN> clsTest
<SPAN style="color:#00007F">Dim</SPAN> o <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Object</SPAN>
<SPAN style="color:#00007F">Set</SPAN> c = <SPAN style="color:#00007F">New</SPAN> clsTest
c.Message = "mensaje"
c.Valor = 22
<SPAN style="color:#00007F">Set</SPAN> cc = TestFunc(c)
<SPAN style="color:#00007F">Set</SPAN> o = c
MsgBox cc.Message & vbCr & vbCr & cc.Valor, _
vbInformation, "cc is of type " & TypeName(cc)
MsgBox o.Message & vbCr & vbCr & o.Valor, _
vbInformation, "o is of type " & TypeName(o)
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
<SPAN style="color:#00007F">Function</SPAN> TestFunc(<SPAN style="color:#00007F">ByVal</SPAN> itemIn <SPAN style="color:#00007F">As</SPAN> clsTest) <SPAN style="color:#00007F">As</SPAN> clsTest
<SPAN style="color:#007F00">' note that itemIn is passed ByRef in spite of the BYVAL in the args list</SPAN>
itemIn.Message = "gibberish"
itemIn.Valor = itemIn.Valor * 2
<SPAN style="color:#00007F">Set</SPAN> TestFunc = itemIn
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Function</SPAN>
<SPAN style="color:#007F00">' *** end of standard module ***</SPAN>
</FONT><hr /><font face=Courier New><SPAN style="color:#007F00">' *** clsTest class module ***</SPAN>
<SPAN style="color:#00007F">Private</SPAN> m_strTest <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>, m_intTest <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>
<SPAN style="color:#00007F">Property</SPAN> <SPAN style="color:#00007F">Let</SPAN> Message(strIn <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>)
m_strTest = strIn
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Property</SPAN>
<SPAN style="color:#00007F">Property</SPAN> <SPAN style="color:#00007F">Get</SPAN> Message() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>
Message = m_strTest
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Property</SPAN>
<SPAN style="color:#00007F">Property</SPAN> <SPAN style="color:#00007F">Let</SPAN> Valor(intIn <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>)
m_intTest = intIn
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Property</SPAN>
<SPAN style="color:#00007F">Property</SPAN> <SPAN style="color:#00007F">Get</SPAN> Valor() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>
Valor = m_intTest
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Property</SPAN>
<SPAN style="color:#007F00">' *** end of clsTest class module ***</SPAN>
</FONT><hr />If not, perhaps you could post some portions of your code to aid in understanding your situation better.