I’m pleased to announce that Rubberduck release version 2.5.2 has achieved over 32 thousand total downloads this month, overflowing a VBA Integer data type! Big numbers are fun and all, but the time has come to reset the counters and officially release the next version.
Those of you that have been keeping up with the many pre-release builds for the past two years will not have too many surprises here, but for the vast majority of you this will be a welcome upgrade with the combined efforts of our contributors over the past 20 months or so. That’s two Hacktoberfests and over 700 commits from 180 pull requests!
> Release notes & Installation instructions: https://github.com/rubberduck-vba/Rubberduck/releases/tag/V2.5.9
See rubberduckvba.com/features for more information about Rubberduck features.
What’s New?
This release brings an awesome new peek definition navigation command (pre-released in 2021!), which lets you view source code that’s anywhere else in the project, without leaving where you’re at.
The Fakes API has been seriously enhanced with more than a dozen new standard library function overrides, as discussed in details in a previous article.
The version check feature is no longer sending HTTP requests to legacy routes on the website (although the website still supports them, so the feature still works in older Rubberduck installs). Instead, an HTTPS request is sent to the public API behind the website – the result is a more reliable feature that now receives much more information than just a version number. It wouldn’t be surprising to see a future iteration show additional information about the latest tag/release, such as the number of downloads, and the installer executable asset URL, for example.
A Rubberduck release wouldn’t be a Rubberduck release without at least a handful of new inspections! 6 new inspections are coming this time around:
- IIf side-effects flags uses of the IIf function where arguments are potentially side-effecting.
- Public control field access flags code that accesses form controls from outside the form, recommending a more encapsulated approach.
- Public Enum in Worksheet module warns about Enum types declared in a Worksheet document module, which can easily result in compilation errors when the worksheet is later copied.
- Read-only property assignment flags programming errors that the VBE only picks up at run-time.
- Suspicious predeclared instance access warns about accesses to a form’s predeclared instance made in that form’s code-behind module; depending on how the form is used, such code may not work as intended.
- UDT Member not used finds UDT members that are declared without being referenced anywhere.
The Extract Method refactoring is making a long-awaited comeback, 5 whole years after the old 2.0 implementation was deemed irreparably broken. It has a number of limitations, for now the selection to extract cannot contain any of the following:
GoTostatementsGoSub...Returnstatements- Conditionally-compiled statements
This obviously isn’t an exhaustive list of everything that happened in the last two years, but it’s a good summary of the new stuff.
What’s next?
This release is the last one planned to start with a 2; work has started on Rubberduck 3.0, a major overhaul of everything we’ve built so far. Rubberduck is being split into client/server processes, storage is moving out-of-process, and the entire user interface is being remade to support everything that’s coming in v3.
Because a massive number of breaking changes need to happen, RD3 is being developed in a separate repository; you’ll find it under the rubberduck-vba organization on GitHub, and that’s where the bulk of development efforts are going to be directed at in the coming months.
Website
The new revamped website is live now; still has a couple of annoying issues (search results page links don’t work, for one), but overall I’m very happy with how it turned out!
Swag Shop
If you’re following Rubberduck on social media, you know I’ve opened a swag shop where you can get Rubberduck-branded mugs, pens, stickers, t-shirts, and more; these past couple of weeks I’ve been building an assortment of various products at various price points for various budgets. Shipping remains a challenge (it’s expensive!), but Ko-fi doesn’t take a cut on shop sales (or donations), which makes it a better deal for a shop with uncertain sales, compared to say Amazon, where shipping is less of a challenge but the monthly fees are prohibitive for a small-volume shop.
There’s now a rather decent offering and quite a lot of inventory; eventually I’ll get more stuff made (hats, hoodies maybe), and will replenish whatever runs out, but my attention will be mostly dedicated to Rubberduck3 development now.
Rubberduck 2.x has been an amazing adventure and a tremendous learning experience – I’m primed and looking forward to all the new challenges porting 2.x to RD3 will bring!

What all versions of MS Office does this work with?
LikeLike
Rubberduck works in VB6 and VBA6/7 in any VBIDE host. I recall seeing a screenshot of Rubberduck running in Office 2000 and 97-2003; the limitations are more closely related to the OS and .net version (v2.5.9 is targeting .net 4.6.2 unless I’m mistaken; v3.0 server components will be targeting .net6 or later, possibly .net8 /latest LTS)… In theory that means it cannot run on Windows XP, Vista, 7, and 8.0.
LikeLike
Where are the install instructions? Where are the uninstall instructions? Where is a video? I dont see any youtubes newer than 4 years.
LikeLike
The installation instructions are linked in the tag/release page on GitHub (https://github.com/rubberduck-vba/Rubberduck/releases/tag/V2.5.9, same wiki page as always: https://github.com/rubberduck-vba/Rubberduck/wiki/Installing).
Uninstalling is done via Windows add/remove programs like anything else installed on a Windows machine.
What kind of video content would you like to see?
LikeLike
What are the main features? What can you do in, say, Excel, that you can’t with regular VBA? What does this look like?
LikeLike
Check out rubberduckvba.com for information and screenshots about (most) features: https://rubberduckvba.com/Features
LikeLike
BTW thanks for asking these questions: I’ve updated the post with links to the release notes and to the website’s _features_ page.
LikeLike
Thanx for the great work: One question: do i have to uninstall the previous version of rubberneck before installing the new one or can i simply do a “over installation” ??
LikeLiked by 1 person
Hi, and thanks! The installer automatically detects a previous installation, so it’s the latter 😊
However you’ll want to install the pre-release build .6296 instead, because the 2.5.9 build has a problem with exception handling in the version check service, which basically blows up on startup.
LikeLike