Versioning Excel VB-Projects
- The fully automated Export service
- Service only when applicable
- Versioning approaches and tools
- Some alternative versioning approaches/tools
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.
The fully automated Export service
When the Component Management Workbook is downloaded and opened it provides its own default environment of files and folders and is immediately ready for servicing Workbooks which meet the required preconditions. The corresponding README in the public GitHub repository provides all required information not only for the fully automated Export of Changed Components service here in the focus.
Service only when applicable
The automated code export service is only provided when the Workbook resides at a defined location, which preferably should differ from the location the Workbook is productively used.1 When this approach is followed, the productively used Workbook is not concerned by the export service.
Versioning approaches and tools
There are a number of Alternatives and so the final chosen versioning tool depends on personal preferences. Most of the alternatives are based on Export-Files provided when the code has changed 2 I use GitHub Desktop for Windows as user interface for GitHub. GitHub is free and only requires 2 clicks (Commit and Push) to complete the versioning task which by saving the changes into a GitHub repository which may be private or public. The below focuses on my solution which I am using now for more than two years - continuously improving it.
Some alternative versioning approaches/tools
The below alternatives are just a very first look with all provided information just taken directly from the solution provider. A more complete list with a closer look may be worth some effort however.
Alternative | Short description (derived from source) |
---|---|
vbaDeveloper | VbaDeveloper is an excel add-in for easy version control of all your VBA code. If you write VBA code in excel, all your files are stored in binary format. You can commit those, but a version control system cannot do much more than that with them. Merging code from different branches, reverting commits (other than the last one), or viewing differences between two commits is very troublesome for binary files. The VbaDeveloper Addin aims to solve this problem. |
VBASync | Maybe the only solution I know which does not touch the Workbook at all and not even uses Export-Files. However, this solution requires an additional manual step. |
XLTools | Powerful Excel add-in designed for business users. |
-
It may be an often practiced approach not to separate the productive use from the development task but it comes with the risk of an - at least temporarily unusable Workbook. The resulting stress contradicts careful coding and testing. Likely the risky approach addresses the fact that when a Workbook is used while its code is maintained means that the code changes have to be transferred to - synchronized with respectively - the productive Workbook. Usually such a VB-Project Synchronization service is not available. also provided. ↩
-
VBASync is the only solution I know which does not touch the Workbook at all and not even uses Export-Files. However, this solution requires an additional manual step. ↩