+1  A: 

Hint: use "SET".

(most common error made by VB programmers in VB6 and VBA).

RBarryYoung
thanks! that does it! it was a bit infuriating! :)would you mind taking a look at this question and giving me your thoughts? http://stackoverflow.com/questions/1354046/return-a-user-defined-data-type-in-an-excel-cell
B Rivera
A: 

Anyway, I don't find that very elegant.
I would rather write:

Function GetBondPrincipal()
   Dim b As BondClass
   Set b = New BondClass
   with b
     .param1 = 0.03
     .param2 = 100
     .InitializeBond
     GetBondPrincipal = .GetPrincipal()
   end with
End Function
iDevlop
InitializeBond is not part of the BondClass class. i don't allow for parameters to be set individually. from what i understand there aren't default constructors, thus i require parameters to be set through the class .Initialize function, which the user of the class should call after each instantiation of the class.
B Rivera