VBA Best Practices in 2026
Hey all,
I hope you are doing well.
I wanted to start a discussion around VBA practices that you may have encountered or adopted recently, now that agentic AI is on the scene, and more advanced tooling is available.
One use case that I found very interesting:
With my VBA projects in Excel, it's not uncommon for me to call a sub or function in one module from another module.
It's possible for a sub / function with the same name to live in multiple modules.
Module_A
Sub MySub()
debug.print "hello world!"
end sub
Module_B
Sub MySub()
debug.print "hello world!"
end sub
Module_C
Sub Test()
MySub ' <--- Error, ambiguous name
Module_A.MySub ' <--- Works
Module_B.MySub ' <--- Works
end sub
Now, say we have VBA editor tooling that is able to implement "rename symbol" functionality. In Module_C, we right click on "Module_A.MySub" and rename MySub to MySub_Test. The tooling is able to narrow in on, and only change the name of MySub --> MySub_Test in Module_A.
However, if we were to try to right click on the bare "MySub" and rename symbol, the tooling will hit name ambiguity.
Now, we can make a business rule for rename symbol to say "if renaming a bare sub / function call from a module where that sub / function is not defined, if there is otherwise no collisions / ambiguity anywhere else in the workbook VBA project, allow the rename, otherwise warn."
So, long story short, I'm starting to get in the habit of qualifying my sub / function calls with the module name.
Have you come across any best practices recently?