This page links to some of this blog’s popular posts, regrouped by category. See the archive for the full list of all articles. The audience for each article is highly subjective and I always try to write for everyone, but in general “beginner” topics assume the reader already has an understanding of VBA syntax, project structure and module types; an “advanced” read might require researching certain technical terms.
Class Modules and OOP
OOP in VBA: Immutability & the Factory Pattern
Learn why, when, and how to abstract and encapsulate the notion of creating objects into its own class, and make an object read-only with explicit interfaces. Accompanying example code is available on GitHub.
(intermediate-advanced)
VBA Class Modules: Gateway to SOLID Code
Learn how user-defined types and classes encapsulate data; this article will walk you through the creation of your first class module and the benefits of encapsulation.
(beginner-intermediate)
About Class Modules
An overview of class modules, their metadata, instances/objects and their members, interfaces, events.
(beginner-intermediate)
OOP Battleship pt.1: The Patterns
This series of posts walks the reader through the components of a full-blown Model-View-Controller OOP architecture. This VBA project is on GitHub.
(advanced)
Secure ADODB
Explore a demonstration of object-oriented programming principles and patterns at play in a solution that abstracts away database operations. This VBA project is on GitHub.
(advanced)
UserForm1.Show
Dismantles the “Smart UI” (anti-)pattern and outlines the benefits of decoupling UI and functionality by proposing a Model-View-Presenter as a scalable approach to user interface programming in VBA.
(intermediate)
The Reusable Progress Indicator
Decouple the worker code from the progress indicator form with this modal dialog that inverts the dependencies: the form is no longer running the show!
(intermediate-advanced)
Rubberduck
Inside Rubberduck pt.2 (The parsing Process)
Learn everything that’s going on under the hood, what tradeoffs and challenges exist in accurately parsing and understanding VBA code from the other side of the keyboard.
@Annotations: The Underducks
This article covers annotations, one of Rubberduck’s most useful features, but also one of the hardest to discover.
Hello, Rubberduck 2.5.0
The release announcement for the most recent official “stable” release of Rubberduck.
Self-Closing Pairs: Dancing with the VBE
The challenges behind an ambitious feature that accidentally happened.
Go Ahead, Mock VBA
Announcing the Fakes API for our unit-testing feature; quickly demonstrates how this API can be used in unit tests to literally bend some of VBA’s own code to your will.
Naming is Hard, Renaming is Easy
The 2015 announcement introducing the ‘Rename’ refactoring feature.