-
Excel VB-Project development towards professionalism
It’s the heritage of may active professional IT life time, a passion for Excel VB-Projects, and the result of my retirement life: A bunch of Common Components to increase the performance and quality of Excel VB-Project development, a Component Management Addin which keeps Common Components** up-to-date in all VB-Projects using them and last but not least a _professional ***Error Handling***_ with a comprehensive **Error Message* displayed.
Those feeling overwhelmed will likely benefit most. Both, Common Components and Component Management is able to sustainable changes Excel VP-Project development life from tinkered to professional.
Attraction for Common Components
Disambiguation
A Common Component in this context is a Standard Module or Class Module) with procedures regarding a certain context (
Sub
,Function
,Property
) designed for being used in any VB-Project.Benefit, potential
Common Componets are a true efficacy boost for the VB-Project development not only when used/imported as a whole but also as a rich source of procedures for being copied into other modules. To unfold its full potential a Common Component needs to be thorowly and extensively tested (see regression testing which is possible best in a dedicated Workbook hosting it (a non dedicated Workbook will hardly ever provide a complete, comprehensive test environment which also supports regression testing. Last but not least, a Common Component should be kept identical in all Workbooks/VB-Projects using it.
Component Management (Excel only)
Not only for the management of Common Components but also for maintaining a basis for versioning:
- An Update outdated Common Components service keeps used Common Components up-to-date by updating them when outdated and the Workbook is opened for development/maintenance (in a dedicated folder!)
- An Export of changed VB-Components service supports versioning - in combination with versioning means like GitHub (what I prefer) by exporting any changed component
- A Synchronization VB-Projects service supports development and maintenance without the unavoidable downtime for the productive Workbook otherwise.
See the _Common VBA Components Management for more information.
My Common Components
All my Common Component development aim for working completely autonomous, i.e. they are not requiring any other module, the use of other Common Components remains optional respectively. The most frequently used three of them are mentioned in this blog. Others are also available as public GitHub repos.
Attraction for a professional Error Handling with a comprehensive Error Message
An ideal error message in this respect will look as follows 1:
It provides the best possible support for debugging by means of a comprehensive error message and the means to resume the code line which raised/caused the error. Furthermore the Error Handling should provide a regression testing support, i.e. the ability to suppress the display of asserted error (errors which are explicitly tested and thus expected).Attraction for Regression Testing
Regression testing could be considered the Holy Grail of IT quality management. For VB-Projects as a whole it may be not possible or too cumbersome. Common Components in contrast are perfect candidates for it (I’ve provided one for each of mine), specifically when hosted in a dedicated Workbook which allows a dedicated development environment. Something which hardly can be achieved when a component is just declared as common in a non-dedicated Workbook 2. Regression testing is supported by the Common VBA Error Services and the Common VBA Execution Trace Service.
See a complete example with the Common VBA Basic Services. The RegressionTest.ExecTrace.log file shows the result of the execution trace. The mBasicTest.bas is the test component which produces the execution trace result. See how to fork the public GitHub repo to make it all available as your own personal GitHub repo which you the may clone to your computer [by means of GitHub DeskTop) of which makes the whole thing available in a dedicated folder on your computer.3-
The Common VBA Error Services provides a best possible support for debugging and regression testing. ↩
-
The Component Management supports both however, even the ad-hoc modification of Common Component in its using VB-Project. ↩
-
Having a look on what GitHub provides - also for Excel VB-Project development will open a complete new world for those never heard if it - or having it ignored for a long time like me. ↩
-
Versioning Excel VB-Projects
My Component Management Workbook provides a fully automated export service for changed VBComponents in any Workbook and this service requires only a single code line in combination with an imported Export-File.
-
Common VBA Stack and Queue Services
Queue and stack services appear pretty trivial at first. However, a closer look, and it is worth a comprehensive (code and forget) implementation. This post focuses on Queue services.
-
Straight to the Error Line
An error message with a debugging option enabling to go straight to the error line without knowing the error line number (as usual there aren’t any).
-
Personal and public use of my _Common Components_
Managing the balancing act: Common Components designed for a best possible fit with my own VB-Projects using them but without bothering others with my way of using/integrating them. However, maintaining different code versions of a Common Component, one which I use in my VB-Projects and another ‘public’ version is not worthwhile.
-
Worry free merged areas
-
Managing UserForm Instances
An easy way to have any number of UserForm instances managed with a minimum effort.
-
Common VBA Components
A true development performance boost provided they are well designed, continuously maintained and carefully tested.
-
Programatically Updating Excel Vba Code
-
Excel VBA PrivateProfile done right - and easy
-
VBA Property Get/Let in Standard Modules with optional arguments
Not only in Class Modules but also in Standard Modules! A usefulness potentially underestimated and undervalued, and a pitty when ignored.
-
Common VBA Error Services
An inviting error message with features! This will make a difference for the development of a VBA-Project. Error services inspired by the-best-of-the-web, worth being considered not only by professionals.
-
All the matter for a VB error message
For professionally and semi-professionally developed VB-Projects this post considers the absolute minimum about a proper, i.e. debug supporting error handling/message.
-
Common VBA Message Service
An alternative to the VBA.MsgBox. Amongst others with the advantage of an almost unlimited message size.
-
Common VBA Execution Trace
Monitoring which code component has been executed and how much time (highest precision!) it took.
-
VB-Projects and GitHub
All my VB-Projects, including all my Common Components hosting Workbooks 1 are GitHub repositories since several years and I found the (positive) experience worth sharing it.
-
See the corresponding README section in the Common Components Management GitHub repo ↩
-