r/vba • u/Emotional-Lead-2367 • 1d ago
Show & Tell What if VBA had a modern developer experience?
I've been building an open-source project called xlflow after repeatedly running into the same problems while maintaining large VBA codebases:
- Source code trapped inside
.xlsm,.xlam, and.xlsbfiles - Awkward Git workflows
- Limited editor support
- Difficult testing and automation
- Coding agents unable to reliably interact with Excel and VBA
xlflow treats VBA projects as regular source code and provides both a VS Code development environment and a fully scriptable CLI workflow.
VBA development in VS Code
The VS Code extension includes:
- Autocompletion
- Real-time diagnostics
- Go to Definition
- Hover information
- Signature help
- Symbol navigation
- Static analysis
- Formatting
It is powered by a custom VBA parser that currently cleanly parses more than 170 test corpora and 300 real-world VBA source files.
One feature I'm especially happy with is type inference for late-bound COM objects.
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Even though dict is declared as Object, the extension can infer the type from CreateObject() and provide member completion, hover information, and type-aware diagnostics.
This also works with common late-bound libraries such as Excel, Scripting, ADODB, and other COM APIs.
Git-friendly workbook development
xlflow can extract VBA projects into normal source files and synchronize them back into Excel workbooks.
This makes it possible to:
- Store VBA projects in Git
- Review changes using normal diffs
- Use branches and pull requests
- Edit code outside the VBE
- Define UserForms as version-controlled YAML
Everything is available from the CLI
All workbook operations can be executed from the terminal:
xlflow pull
xlflow test
xlflow lint
xlflow push
The CLI can also run macros, manage Excel sessions, format code, inspect projects, and execute tests.
This was an important design decision because it allows the same workflow to be used by developers, CI pipelines, scripts, and coding agents.
Designed for coding agents
A major goal of xlflow is to make autonomous VBA development practical.
Since the source code is stored as normal files and every operation is exposed through the CLI, tools such as Codex, Claude Code, and Cursor can:
- Modify VBA source code
- Run unit tests
- Read compiler and runtime errors
- Lint and analyze the project
- Push changes back into the workbook
- Generate and update UserForms
Excel automation normally has another major problem: modal error dialogs can block execution indefinitely.
xlflow monitors many Excel and VBA dialogs, captures their contents, and reports the errors back to the terminal instead of leaving the workflow blocked behind a GUI window.
That means a coding agent can see the failure, modify the code, rerun the tests, and continue working without waiting for someone to manually dismiss an Excel dialog.
GitHub:
https://github.com/harumiWeb/xlflow
VS Code Marketplace:
https://marketplace.visualstudio.com/items?itemName=harumiWeb.xlflow-vscode
I'd be very interested in feedback from people maintaining real-world VBA projects.
What are the biggest limitations in your current VBA development workflow?