Excel Macro-Safe Converter: Free Online Tools Compared (2026)
You need to convert an Excel file and you want to keep your macros. You search for a free online tool, find half a dozen options, upload your XLSM — and your macros are gone. Again. You try another tool. Same result. This is not bad luck. It is a fundamental architectural problem with how online conversion tools work, and understanding it will save you hours of trial and error.
We tested 9 tools — 6 online, 3 desktop — with a standardized test XLSM containing modules, UserForms, and class modules. Here is an honest account of what happened.
Why "Free Online" Converters All Strip Macros
Every browser-based Excel converter you will find — Zamzar, Convertio, CloudConvert, SmallPDF's Excel tools, ILovePDF, DocTranslator, and their clones — processes your file using server-side parsing libraries. The most common are openpyxl (Python), xlsx.js (JavaScript), and Apache POI (Java).
These libraries are designed to read and write the XML data inside Excel files. They handle cell values, formulas, formatting, and named ranges well. What they do not handle is the vbaProject.bin binary blob — the container inside every XLSM file that holds all VBA code. This blob is a legacy OLE (Object Linking and Embedding) compound document embedded inside the modern ZIP-based OOXML format. It requires a different parser entirely, and most open-source libraries simply ignore it.
The result: When an online converter opens your XLSM and saves it out, it reads the XML data and discards the VBA binary. Your macros do not "break" — they never make it into the output file at all. This happens silently, with no warning in most tools.
There is a second reason online tools strip macros: security policy. Running or preserving VBA code uploaded by random users is a liability. Most enterprise-grade conversion services explicitly document that they strip macros "for security purposes." It is a feature to them, even if it is a disaster for you.
The XLSM Workaround (What Actually Solves This)
Before looking at individual tools, understand the core insight: if you are converting between macro-compatible formats (XLSM → XLS → XLSB), you do not need a conversion tool at all. You need Excel or a compatible application that understands the VBA binary format natively and can re-write it into the target container.
The XLSM workaround is this: open the source file in Excel (or LibreOffice Calc), and use File → Save As to explicitly choose the target format. This is not a "conversion" in the online-tool sense — it is a native re-serialization using the application's own format writer, which has full access to the VBA binary and can carry it across.
This approach is free, requires no internet connection, and works reliably for the following format pairs:
- XLSM → XLS (legacy binary) — VBA preserved
- XLSM → XLSB (binary workbook) — VBA preserved
- XLS → XLSM — VBA preserved
- XLSB → XLSM — VBA preserved
For any conversion targeting XLSX, ODS, CSV, or Google Sheets — macros cannot survive. Those formats have no VBA container.
Stop losing macros on every conversion
The Macro-Safe Converter Kit gives you the exact workflow, tested scripts, and decision checklist to convert any Excel file without losing a single line of VBA.
Get the Kit — $9One-time payment · Instant download · 30-day guarantee
The 9-Tool Comparison
Test setup: a single XLSM with 3 standard modules (800 lines total), 1 UserForm with event handlers, 1 class module, and 2 worksheet-level event procedures. Target formats tested: XLS, XLSB, and XLSX. Each tool was tested fresh with no prior session state.
| Tool | Type | Price | VBA to XLS | VBA to XLSB | VBA to XLSX | Notes |
|---|---|---|---|---|---|---|
| Excel (Save As) | Desktop | M365 sub | Yes | Yes | No* | *Warns before strip |
| LibreOffice Calc | Desktop | Free | Yes | Partial | No | Some VBA syntax gaps |
| WPS Office | Desktop | Free tier | Yes | No | No | Good XLS fidelity |
| Zamzar | Online | Free tier | No | No | No | Strips silently |
| Convertio | Online | Free tier | No | No | No | Strips silently |
| CloudConvert | Online | Free credits | No | No | No | Uses LibreOffice backend |
| SmallPDF | Online | Free tier | No | No | No | Excel→PDF focus |
| ILovePDF | Online | Free tier | No | No | No | Strips with warning |
| Aspose Online | Online | Free (limited) | Partial | No | No | Aspose SDK preserves; web UI does not fully |
The pattern is stark. Every browser-based tool fails. The only reliable free option is LibreOffice Calc on a local machine, and even that has caveats.
Desktop Tools That Are Actually Free
LibreOffice Calc
LibreOffice is genuinely free, open-source, and can open XLSM files. When you save an XLSM from LibreOffice back to XLS format, the VBA code is preserved because LibreOffice maintains a copy of the original binary in memory during the session. However, LibreOffice has two important limitations for VBA-heavy workbooks:
- VBA compatibility gaps: LibreOffice runs Basic macros natively, and it can execute simple VBA, but complex VBA relying on Excel-specific object model references (
Application.WorksheetFunction,Range.SpecialCells, ActiveX controls) will not execute correctly even if the code is preserved in the file. - UserForm rendering: UserForms are often partially broken — controls may be present but layouts are inconsistent.
For preservation purposes (you want the VBA in the file, even if you only run it in Excel), LibreOffice is acceptable. For round-trip fidelity (preserved and executable), only Excel itself is reliable.
WPS Office
WPS Office is a commercial product with a generous free tier. Its VBA compatibility is closer to Excel's than LibreOffice's, and it preserves macros well when converting to XLS. The free tier includes the core spreadsheet functionality with no file size restrictions on local files.
When You Need a Paid Solution
There are scenarios where neither free desktop tools nor the native Save As approach covers the requirement:
- Batch conversion at scale: Converting hundreds of XLSM files programmatically with VBA preservation requires either a licensed Excel installation with COM automation, or a commercial API like Aspose.Cells (which has a full VBA-aware parser) or GrapeCity Documents for Excel.
- Server-side conversion without Excel: If you are running a server process (Linux, Docker, no GUI) that needs to convert macro-enabled files, the Aspose.Cells library is the only production-grade option that handles the vbaProject.bin correctly without a local Excel instance.
- Format migration with macro refactoring: Moving from XLS to XLSM while also updating deprecated API calls requires a structured approach — the kind that a workflow kit can systematize.
The bottom line: For individual files, the free path is Excel or LibreOffice with a careful Save As workflow. For anything involving scale, automation, or complex VBA preservation, the cost of getting it wrong exceeds the cost of a proper tool.
Frequently Asked Questions
Stop losing macros on every conversion
The Macro-Safe Converter Kit gives you the exact workflow, tested scripts, and decision checklist to convert any Excel file without losing a single line of VBA.
Get the Kit — $9One-time payment · Instant download · 30-day guarantee