C
chadwick
Hello all,
Is it possible for a property of an object in VBA to itself be an
object? I'm working on a program that involves chemical equations,
and consequently I have defined a couple of useful classes:
"ChemicalCompound," and "ChemicalEquation." The ChemicalEquation
class has as one of its members an array of ChemicalCompound objects,
which represent the reactant compounds in the equation. I would like
to keep the actual array private (i.e. access restricted to the class)
and use a Property Get to access the ChemicalCompound objects in the
array. Is possible for the return value of a Property Get to be an
object of a user-defined class?
Here's some rough code that might give you a sense of what I'm trying
to do:
In Class Module ChemicalEquation:
Private Type ChemicalCompoundsList
'Note that the nth coefficient goes with the nth compound
Compounds() As ChemicalCompound
Coefficients() As Integer
End Type
Private pReactants As ChemicalCompoundsList
Private pProducts As ChemicalCompoundsList
'Can I do this?:
Property Get ReactantCompound(Index As Integer)
ReactantCompound = pReactants.Compounds(Index - 1)
End Property
In a Standard Module:
Sub TestChemicalEquationClass()
'Create a ChemicalEquation Object
Dim MyEquation As ChemicalEquation
Set MyEquation = New ChemicalEquation
'Retrieve the 1st ChemicalCompound object in the pReactants array,
'via Property Get ReactantCompound
Dim MyCompound As ChemicalCompound
MyCompound = MyEquation.ReactantCompound(1)
End Sub
Any takers? Help is always greatly appreciated.
Is it possible for a property of an object in VBA to itself be an
object? I'm working on a program that involves chemical equations,
and consequently I have defined a couple of useful classes:
"ChemicalCompound," and "ChemicalEquation." The ChemicalEquation
class has as one of its members an array of ChemicalCompound objects,
which represent the reactant compounds in the equation. I would like
to keep the actual array private (i.e. access restricted to the class)
and use a Property Get to access the ChemicalCompound objects in the
array. Is possible for the return value of a Property Get to be an
object of a user-defined class?
Here's some rough code that might give you a sense of what I'm trying
to do:
In Class Module ChemicalEquation:
Private Type ChemicalCompoundsList
'Note that the nth coefficient goes with the nth compound
Compounds() As ChemicalCompound
Coefficients() As Integer
End Type
Private pReactants As ChemicalCompoundsList
Private pProducts As ChemicalCompoundsList
'Can I do this?:
Property Get ReactantCompound(Index As Integer)
ReactantCompound = pReactants.Compounds(Index - 1)
End Property
In a Standard Module:
Sub TestChemicalEquationClass()
'Create a ChemicalEquation Object
Dim MyEquation As ChemicalEquation
Set MyEquation = New ChemicalEquation
'Retrieve the 1st ChemicalCompound object in the pReactants array,
'via Property Get ReactantCompound
Dim MyCompound As ChemicalCompound
MyCompound = MyEquation.ReactantCompound(1)
End Sub
Any takers? Help is always greatly appreciated.