Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Class Module Method
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Class Module Method
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" wrote in message ... 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 |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Class Module Method
Wow, I thought I had to send a reference to an object in order to run the
method. Thanks for setting me straight, Andy! Matthew Pfluger "Andy Pope" wrote: 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" wrote in message ... 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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Help passing Range to Class Module method | Excel Programming | |||
CLASS MODULE & SIMPLE MODULE | Excel Discussion (Misc queries) | |||
Class Module vs Normal Module | Excel Programming | |||
Calling a module function from a class method | Excel Programming | |||
Variable from a sheet module in a class module in XL XP | Excel Programming |