Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Python | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Python | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA | Python |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA | Python
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Databricks | Power Apps | Power Automate |
Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables | Power Apps | Power Automate
Power BI | Power Apps | Power Automate | SQL | VBA | Python | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables
Power BI | Power Apps | Power Automate | SQL | VBA | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
LEARN THIS HANDS ON
Power Apps & Power Automate
The month-end Excel pack is due, the shared workbook is locked again, and the one person who understands the VBA macros is on holiday. You know automation could fix this, but between Power Automate, Office Scripts, and legacy VBA, it's not obvious what to bet on. This guide walks through a realistic Excel-centric workflow and shows how to split work between these three tools in 2026 without painting yourself into a corner.
Imagine a commercial team that publishes a monthly sales performance pack.
Current process:
Pain points:
The question: How do you redesign this using Power Automate, Office Scripts, and maybe still some VBA, in 2026?
Think of Power Automate as your workflow orchestrator:
Best at:
Office Scripts is your Excel-in-the-cloud automation engine for modern workbooks:
Best at:
VBA is still your local Excel engine:
Best at:
In 2026, you rarely choose only one of these. You design a stack.
Let’s break the monthly sales pack into chunks and assign the right tool.
Requirement: When new sales CSVs land in SharePoint, kick off the process.
Best fit: Power Automate
Flow outline:
Shared Documents/Sales/Incoming.Sales_YYYYMM_Region.csv).This removes the “analyst must remember to run the macro” step.
Requirement: Import CSVs, clean data, refresh calculations, update pivot tables.
Option A: Office Scripts (cloud-first)
If your main workbook lives in SharePoint as .xlsx and uses modern features:
Example Office Script (simplified) to replace a common VBA pattern:
function main(workbook: ExcelScript.Workbook) {
const ws = workbook.getWorksheet("Data");
const table = workbook.getTable("SalesTable");
// Clear existing rows (keep headers)
const rowCount = table.getRowCount();
if (rowCount > 0) {
table.getRangeBetweenHeaderAndTotal().clear(ExcelScript.ClearApplyTo.contents);
}
// Assume Power Automate passes data as a JSON array
const input = workbook.getCustomProperty("SalesJson").getValue() as string;
const rows: (string | number)[][] = JSON.parse(input);
// Add new rows
table.addRows(-1, rows);
// Refresh pivot tables on the "Report" sheet
const reportSheet = workbook.getWorksheet("Report");
reportSheet.getPivotTables().forEach(pt => pt.refresh());
}
Power Automate would:
Option B: VBA (legacy or complex desktop models)
If your core model:
.xlsm).You might keep a VBA macro to do the heavy lifting and just let Power Automate orchestrate when it runs via a desktop flow.
A typical VBA import macro:
Sub ImportSalesFiles()
Dim path As String, fileName As String
Dim ws As Worksheet, qt As QueryTable
path = "C:\Sales\Incoming\"
Set ws = ThisWorkbook.Sheets("Data")
' Clear old data
ws.UsedRange.ClearContents
fileName = Dir(path & "Sales_*.csv")
Do While fileName <> ""
With ws.QueryTables.Add(Connection:="TEXT;" & path & fileName, _
Destination:=ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1, 0))
.TextFileCommaDelimiter = True
.Refresh BackgroundQuery:=False
End With
fileName = Dir
Loop
' Refresh pivots
Dim pt As PivotTable
For Each pt In ws.Parent.PivotTables
pt.RefreshTable
Next pt
End Sub
Then use a Power Automate desktop flow to open the workbook and run ImportSalesFiles on a schedule.
Trade-off: More fragile (relies on a specific machine), but sometimes necessary.
Requirement: Generate a PDF or Excel file per region and publish it.
Best fit: Power Automate + Office Scripts (if workbook is cloud-ready)
Pattern:
Office Script snippet to set a slicer and export a sheet:
function main(workbook: ExcelScript.Workbook, region: string) {
const reportSheet = workbook.getWorksheet("Report");
// Set region slicer
const slicer = workbook.getSlicer("RegionSlicer");
slicer.clearFilters();
slicer.getSlicerItems().forEach(item => {
item.setSelected(item.getCaption() === region);
});
// Export as PDF to a temporary location
// (Power Automate uses "Run script" output to get a file)
const pdf = reportSheet.getPageLayout().exportAsFixedFormat(ExcelScript.FixedFormatType.pdf);
return { pdfContent: pdf }; // PA saves this as a file
}
If export APIs are limited in your tenant, you might:
If you are stuck on desktop-only features, you again fall back to VBA + desktop flows.
Requirement: Email or Teams message to each regional manager with their report.
Best fit: Power Automate
Once files are generated in SharePoint:
No need for VBA or Office Scripts here.
Typical use in our scenario:
.xlsx (not .xlsm) and designed for web compatibility.In our scenario, Office Scripts is ideal for:
In the sales pack scenario, VBA stays when:
Use Power Automate desktop flows as a bridge rather than rewriting everything at once.
Instead of “VBA vs Office Scripts vs Power Automate”, think layers:
Orchestration layer (Power Automate)
Excel logic layer (Office Scripts / VBA)
Storage and access layer (SharePoint/OneDrive/Dataverse)
Design principles:
Keep business rules close to the workbook
Keep orchestration outside the workbook
Use configuration tables, not hard-coded values
Applied to our scenario, a robust 2026 design looks like:
Power Automate:
Office Scripts:
VBA:
Before you argue Power Automate vs Office Scripts vs VBA, list the steps in your workflow and mark each one as:
Do this for your next Excel automation project and you’ll usually end up with a hybrid stack that:
That mapping exercise is the fastest way to choose the right automation stack for your Excel-centric workflows in 2026.
This article reflects how Excel-focused teams are gradually shifting from purely desktop VBA automation to hybrid stacks that combine Power Automate, Office Scripts, and legacy macros, especially in SharePoint- and OneDrive-based environments.
Professionals who want to apply these patterns to their own data can explore Excelgoodies' Power Automate Course programme - taught live by instructors, with certification awarded once a real project is running at work.
Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.
Power Automate
New
Next Batches Now Live
Power BI
SQL
Power Apps
Power Automate
Microsoft Fabrics
Azure Data Engineering