AT
Anas Tabit — Process Automation Consultant
6+ years automating workflows at Citi, J.P. Morgan & HSBC. Specialises in Excel VBA, Power Automate & Python. LinkedIn →

The most common question I get from operations and finance teams is some version of: "Should we use Power Automate or VBA?" The answer is almost always "it depends" — but that's not useful. This guide gives you a clear decision framework so you can make the right call for your specific situation.

What each tool actually does

Excel VBA is a programming language built into Microsoft Office. It automates tasks within Excel — manipulating cells, running calculations, generating reports, formatting outputs, and sending emails via Outlook. It runs locally on a machine (or on a shared network drive) and requires no additional licenses beyond Excel itself.

Power Automate (formerly Microsoft Flow) is a cloud-based workflow automation platform. It connects apps and services — Outlook, SharePoint, Teams, Dynamics 365, SAP, SQL Server, and 400+ others — and automates the handoffs between them. It runs in the cloud, independently of any single machine.

The core difference in one sentence

VBA automates what happens inside Excel. Power Automate automates what happens between systems.

When to use VBA

Example: use VBA

A weekly P&L report that pulls from three source tabs, applies conditional formatting, calculates period-over-period variance, and emails a formatted PDF. Everything happens in Excel — VBA is the right tool.

When to use Power Automate

Example: use Power Automate

When a new invoice arrives in a shared Outlook inbox, extract the data, log it in SharePoint, create an approval task in Teams, and update the relevant row in Dynamics 365. That's four systems talking to each other — Power Automate handles it cleanly.

The five questions to ask before choosing

  1. Where does the data start? If it's already in Excel, lean VBA. If it's in emails, forms, or other systems, lean Power Automate.
  2. Where does the output need to go? An Excel file or formatted report? VBA. A database, SharePoint list, or Teams notification? Power Automate.
  3. Does the automation need a trigger? Power Automate excels at event-driven triggers (new email, new file, scheduled time). VBA is typically button-triggered or macro-scheduled.
  4. Who needs to run it? A single analyst running a report = VBA. A business process that fires automatically without human intervention = Power Automate.
  5. What does your IT policy allow? Some organisations restrict Power Automate flows that connect to external services. VBA runs locally with fewer governance implications.

Comparison at a glance

DimensionExcel VBAPower Automate
Best forAutomating Excel tasksConnecting multiple systems
TriggerManual or macro schedulerEvent-driven or scheduled
Runs without human✗ Usually not✓ Yes (cloud)
Handles external apps✗ Limited✓ 400+ connectors
Complex data logic✓ Excellent○ Basic
Additional license cost✓ Included in Excel○ Included in M365 Business plans
Maintenance skill neededVBA / codingLow-code / drag-and-drop

When to use both together

The most powerful setups combine both tools. A common pattern at Citi: Power Automate monitors a shared inbox for a specific email, extracts the attached CSV, drops it into a SharePoint folder, which then triggers a VBA macro in Excel to process and format the data, then Power Automate picks up the output and distributes it.

Each tool handles what it's best at. VBA does the data-heavy Excel manipulation. Power Automate handles the orchestration and system-to-system handoffs.

Not sure which tool fits your workflow?

A 15-minute call is usually enough to give you a clear recommendation. No commitment required.

Book Free 15-Min Call

What about Python as a third option?

It comes up more often now. Python is excellent for data-heavy automation — large-scale transformations, complex analytics pipelines, API integrations, and machine learning workflows. But for most finance and operations teams, it introduces a barrier: it requires a developer environment, version management, and someone who can write and maintain Python code.

VBA lives inside Excel — anyone on the team can open the editor and see what the code does. Power Automate has a visual interface that non-developers can follow and modify. Python offers neither of those advantages for a business user. Where Python genuinely wins is when data volumes exceed what Excel handles comfortably (roughly 100k+ rows), when you need pandas-level data manipulation, or when you're connecting to REST APIs and building more complex pipelines. For the majority of finance and ops workflows, VBA and Power Automate are the faster, lower-overhead choice.

Licensing: what's actually included in your Microsoft 365 plan

VBA costs nothing extra. It's built into every version of Excel.

Power Automate is included in most Microsoft 365 Business and Enterprise plans (Business Basic, Standard, Premium, E3, E5). Standard flows using Microsoft connectors — Outlook, SharePoint, Teams, OneDrive, Excel Online — are fully covered at no extra cost. Premium connectors — Dynamics 365, SAP, Salesforce, HTTP requests to external APIs — require a Power Automate Per User ($15/user/month) or Per Flow ($500/flow/month) add-on.

The practical implication: if your flows stay within the Microsoft ecosystem, you're almost certainly already licensed. If you need to connect to Dynamics, SAP, or an external system, factor in premium plan costs when building your ROI case. Most automation projects for finance teams I scope stay within standard connectors — particularly for approvals, notifications, SharePoint logging, and Teams integration.

When VBA becomes a liability instead of an asset

VBA has a well-known failure mode: it becomes tribal knowledge. One analyst writes the macro, it works reliably for three years, then they leave — and no one knows how it works or how to fix it when the source file format changes. I encountered this pattern at every major bank I worked at, and it's almost always the result of undocumented, unstructured code rather than a fundamental problem with VBA itself.

The warning signs: a macro only one person can run; a workbook that breaks if you click the wrong button; a monthly report requiring 45 minutes of manual preparation before the automation can start. When VBA requires this much human intervention, it's no longer automation — it's a complex manual process with a macro bolted on.

The solution is documentation, modular code structure, and proper error handling — not switching tools. A well-written VBA macro with clear variable names, inline comments, and an error log is maintainable by any competent analyst. The tool is rarely the problem.

The honest answer

Most teams I work with need both — VBA for report generation and data manipulation within Excel, Power Automate for connecting systems and removing manual handoffs. The Workflow Diagnostic exists precisely to answer this question: after one session I can tell you exactly which tool (or combination) fits each of your workflows, and what the ROI looks like for each.

If you're trying to choose between a VBA project and a Power Automate build, the decision usually comes down to question 1 above: where does the data start?

Next step

Still unsure which tool fits your workflow?

Book a free 15-minute audit. Describe your process — I'll tell you the right tool, the right approach, and what it would realistically take to automate it.

Book a Free 15-Min Audit → See the $500 Diagnostic