Style | Pros | Cons | Applicable For |
---|
Codeless | No VBA requirement.No macro security issues.Easy to deploy. | Usually cluttered and hard to use.Neither robust nor reliable.Unable to provide much assistance to the user.Difficult to update. | Simple data-entry forms, surveys and so on. |
Self-automated | Simple application, easy for a beginner VBA developer to understand.VBA can be used to improve robustness and reliability.Able to provide lots of extra functionality for the user.Easy to deploy. | If the VBA needs to be updated, it will be difficult or impossible to do so once deployed. | More complex data-entry forms, where the VBA can be used to improve the quality of the data being entered, but there is little data stored in the workbook long term. |
General add-in | Designed to extend Excel's functionality.Simple application, only slightly more complex than an automated workbook.Easy to deploy (although not as simple as a workbook). | Must include robust context checks and error handling.Harder to deploy if it should be automatically ready for use. | Ideal for adding extra functionality to Excel, for use in any workbook. |
App-specific add-in | Separates the code from the data, so the code can be updated without affecting the user's work.Removing the code from the data workbooks makes them smaller and avoids the macro security warning. | Slightly more technically complex than the general add-in, requires an intermediate-level VBA developer.Slightly harder to deploy, because it requires at least two workbooks to be installed, sometimes to separate locations. | This is the recommended structure to use for an application that adds to Excel's menus. |
Dictator application | Able to write fully functional applications that appear to be applications in their own right.High degree of control over the user interaction enables us to write very robust and reliable applications.Functionality can be split over multiple workbooks, making them easier for a team to develop and easier to deploy updates. | Much more complex than other architectures.Care must be taken to restore the user's Excel environmentHarder to deploy, typically requiring an installation routine. | The ideal method for a Windows application that makes heavy use of the functionality that Excel provides. |