Free · No upload · Macros never run
Compare two .xlsm files
Drop two macro-enabled workbooks and see every changed cell and formula in your browser. To compare the macro code itself, that’s the desktop app, platform, or GitHub Action — and we’ll point you there.
Compare the cells in your .xlsm files
Drop two macro-enabled workbooks. Cells and formulas are compared in your browser — the macros are read, never run, and nothing is uploaded.
Old / Base file
.xlsx .xlsm .xls .xlsb
or click to browse
New / Modified file
.xlsx .xlsm .xls .xlsb
or click to browse
What the free tool does with a .xlsm
Every changed cell and formula
Drop two macro-enabled workbooks and see each changed value and formula, added cells, and deleted cells, highlighted in place sheet by sheet.
No Excel install
A .xlsm is Open XML, same as .xlsx, just allowed to carry macros. SheetDelta reads it in your browser, so there’s no Office dependency.
Inserted rows handled
Insert a row near the top and a naive compare flags everything below it. SheetDelta aligns the rows first, so the change reads as one addition.
Macros are read, never run
The web tool opens the file to compare its cells. It never executes a macro — there’s no automation, so nothing in the workbook can fire.
VBA is a separate job
Comparing the macro code itself isn’t something the browser tool does. That’s the desktop app, platform, or GitHub Action. We say so plainly.
Nothing uploaded
Both files are read on your device and never sent to a server, so even a sensitive macro workbook stays on your machine.
A macro workbook has two parts — and they’re compared differently
When you say “compare two .xlsm files”, you might mean either of two things, and it’s worth being clear which, because they’re different jobs.
The grid — cells, values, and formulas
Everything you see on the sheets. The free tool above compares this in full: changed values, changed formulas, added and deleted cells, inserted and deleted rows. No install, nothing uploaded.
The macros — the VBA code behind the file
The modules, class modules, and userforms that make the macro-enabled workbook macro-enabled. Comparing this code is a job for the full engine, not the browser tool — see below.
To compare the macro code, use the full engine
The free web tool deliberately stops at the cells. Reading and comparing VBA reliably — across standard modules, class modules, and userforms — is the kind of work the full engine does, and it ships in three places:
-
The desktop app — a one-time purchase that compares VBA modules fully offline, so a macro workbook never has to leave your machine.
-
The hosted platform — watches your SharePoint or OneDrive, diffs each new version (VBA included), and adds review and sign-off for the team.
-
The GitHub Action — posts a module-level VBA diff as a comment on every pull request that touches a workbook.
The whole walkthrough lives on the VBA diff page.
A note on macro safety
Comparing is reading, not running. SheetDelta opens an .xlsm to read its cells and code; it never executes a macro, so nothing in the file fires as part of the comparison. That’s a quieter operation than opening the workbook in Excel and clicking “Enable Content”. The usual advice still holds: only open files you trust. But a comparison is one of the safer things you can do with a macro workbook you’re unsure about.
Frequently asked questions
Does the web tool compare the macros (VBA) in a .xlsm?
How do I diff the VBA code, then?
Is it safe to compare a macro-enabled file?
What file types can I drop in?
.xlsm and .xlsx. For binary .xlsb, legacy .xls, charts, pivots, and VBA, use the desktop app. What’s the difference between .xlsm and .xlsx?
.xlsm extension just marks a workbook as allowed to contain macros, which is why Excel handles them differently for security. See comparing .xlsx files. Need to compare the macro code, not just the cells?
The desktop app diffs VBA modules offline; the platform does it for the whole team with review and history.