Hi,
You would make the Clear routine part of the class module.
Public Sub Clear()
dmMass = 0
dmDensity = 0
dmVolume = 0
dmCOG_x = 0
dmCOG_y = 0
dmCOG_z = 0
End Sub
And then in code you would use it something like this.
Option Explicit
Dim muInertiaData As CInertiaData
Sub Test()
Set muInertiaData = New CInertiaData
With muInertiaData
.dmMass = 10.3
.dmDensity = 2
.dmVolume = 12
Debug.Print "Before Clear", .dmMass, .dmDensity, .dmVolume
.Clear
Debug.Print "After clear", .dmMass, .dmDensity, .dmVolume
End With
End Sub
Cheers
Andy
--
Andy Pope, Microsoft MVP - Excel
http://www.andypope.info
"Matthew Pfluger" <(E-Mail Removed)> wrote in
message news:9E27CD50-10CF-47C9-BF58-(E-Mail Removed)...
>I have a class module called CInertiaData that contains 6 double variable
> declarations:
>
> Public dmMass As Double
> Public dmDensity As Double
> Public dmVolume As Double
> Public dmCOG_x As Double
> Public dmCOG_y As Double
> Public dmCOG_z As Double
>
> I declare new instances of this module as follows:
> Dim muInertiaData As CInertiaData
> Set muInertiaData = New CInertiaData
>
> At several points in my code, I want to reset all values in muInertiaData
> to
> 0. I'd like to write a method instead of a subroutine, but I'm not sure
> how
> to proceed. I believe it would be something like:
>
> Public Sub Clear(ByRef oInertiaData As CInertiaData)
> On Error Resume Next
> With oInertiaData
> .dmMass = 0
> .dmDensity = 0
> .dmVolume = 0
> .dmCOG_x = 0
> .dmCOG_y = 0
> .dmCOG_z = 0
> End With
> End Sub
>
> However, this still requires passing a CInertiaData object to the method.
> How do I write the method so it clears the CInertiaData object that calls
> it?
> I would guess that this involves changing the way I define my Class Module
> variables.
>
> Thanks,
> Matthew Pfluger