G
Gareth
This is my first post onto the group and I appologise for the length of
it, but I felt some background would be useful.
I have recently started building a system using Excel and VBA. Whilst
my experience in coding VBA is limited I have been programming for a
long time and have used other languages including Java.
Coming from a Java background I am keen to use an OO approach and spent
some time investigating other peoples views. In conclusion I decided
that the project could be done in OO style and I have mapped each
business process to a Class in VBA. All my classes are 'Public Not
Creatable' and I have one Module containing a method for each class
that creates an instance. ( a 'Constructor' if you like). On the whole
this approach has served me well, allowing for good code separation and
re-use.
I have also used Interfaces as a 'work around' to inheritance and
although a little clumsy I continue to use it, If at some time in the
future the code is migrated to another environment like C# or indeed
Java then this approach will prove useful.
However, during the programming day I get quite a lot of odd behaviour
and Excel crashes. I am wondering wether or not I am missing something
basic in my approach. In fact Excel crashes so often I have also
written some basic VBA code to export all my modules out to text files,
delete them from the work book, then re-import them afterwards. This
process does seem to fix most problems but eventually new ones appear.
The most recent is a line of code 'Set v_MyClassA = new clsMyClassA'
this actually calls the Class_Initialize of clsMyClassB. Again I
exported all the modules then re-imported them and it has now fixed the
problem. But why, why, why !!!!
I would appreciate it anybody could share their experience and perhaps
highlight a basic problem in my approach.
it, but I felt some background would be useful.
I have recently started building a system using Excel and VBA. Whilst
my experience in coding VBA is limited I have been programming for a
long time and have used other languages including Java.
Coming from a Java background I am keen to use an OO approach and spent
some time investigating other peoples views. In conclusion I decided
that the project could be done in OO style and I have mapped each
business process to a Class in VBA. All my classes are 'Public Not
Creatable' and I have one Module containing a method for each class
that creates an instance. ( a 'Constructor' if you like). On the whole
this approach has served me well, allowing for good code separation and
re-use.
I have also used Interfaces as a 'work around' to inheritance and
although a little clumsy I continue to use it, If at some time in the
future the code is migrated to another environment like C# or indeed
Java then this approach will prove useful.
However, during the programming day I get quite a lot of odd behaviour
and Excel crashes. I am wondering wether or not I am missing something
basic in my approach. In fact Excel crashes so often I have also
written some basic VBA code to export all my modules out to text files,
delete them from the work book, then re-import them afterwards. This
process does seem to fix most problems but eventually new ones appear.
The most recent is a line of code 'Set v_MyClassA = new clsMyClassA'
this actually calls the Class_Initialize of clsMyClassB. Again I
exported all the modules then re-imported them and it has now fixed the
problem. But why, why, why !!!!
I would appreciate it anybody could share their experience and perhaps
highlight a basic problem in my approach.