Why Free Online Converters Destroy Your Excel Macros

March 31, 2026 · 6 min read

You have an .xls file with years of VBA macros. You need to convert it to a modern format. You find a free online converter — CloudConvert, Zamzar, something similar — upload the file, and download the result.

The file opens. Data is there. Formatting looks right. You close it and move on.

Two weeks later, someone runs a macro and nothing happens. You open the VBA editor. Every module is gone.

This is not a bug. It's how online converters work, and it's not something they can easily fix.

Why Online Converters Can't Preserve VBA Macros

VBA macros in an Excel file aren't just text. They're stored in a binary structure called a VBA project — a separate, compiled container embedded inside the .xls file format. That container holds module source code, compiled p-code, form definitions, class hierarchies, and digital signature data.

Online converters process files server-side using document parsing libraries. The most common are LibreOffice, Apache POI, and various open-source document processing tools. These libraries are excellent at reading and writing document structure — tables, formulas, charts, formatting rules. They are not VBA runtimes.

When LibreOffice converts an .xls to .xlsx, it extracts the worksheet data, the formula structures, the named ranges, the conditional formatting rules. It does not preserve the VBA project, because the VBA project requires an actual VBA engine to interpret and re-embed. LibreOffice has its own macro language (Basic), but it doesn't translate Microsoft VBA.

Result: the output .xlsx file contains everything the library could parse. The VBA project is discarded.

This is architectural, not a bug. No server-side converter can preserve VBA macros without running actual Excel. Excel is a Windows-only licensed application. It cannot run on a cloud server at scale.

What the Popular Online Converters Actually Do

CloudConvert

CloudConvert is one of the better-engineered online conversion services. It supports hundreds of file formats and offers an API. For Excel conversion, it uses LibreOffice as its backend processing engine.

Their documentation doesn't claim macro preservation. In practice: upload a macro-enabled .xls, download .xlsx — all VBA modules are gone. For clean data files, CloudConvert works fine. For macro-enabled workbooks, it's the wrong tool.

There's also the security question: CloudConvert's files are uploaded to their servers, processed, and temporarily stored before deletion. For proprietary business data, this may violate your organization's data handling policies. See our full comparison: LegacyLeaps vs CloudConvert.

Zamzar

Zamzar is similar: a web-based converter with a large format library. Same underlying architecture — server-side processing, LibreOffice-based, no VBA support. Zamzar also caps file sizes (1GB on free plans) which limits it for large enterprise workbooks.

Full comparison: LegacyLeaps vs Zamzar.

Other Online Tools

Most "convert Excel online" tools follow the same pattern regardless of name. If it's browser-based, if you upload the file, if it's free — it's almost certainly using LibreOffice or a similar open-source library on the backend. The macro limitation is universal to this category.

The .xlsx Problem (Even If Macros Were Preserved)

There's a second problem with online converters that doesn't get enough attention: even if they could somehow preserve macros, saving to .xlsx would delete them anyway.

The .xlsx format cannot contain VBA macros by design. It's a security decision in the Open XML specification. VBA-enabled workbooks must be saved as .xlsm (Excel Macro-Enabled Workbook). An online converter that outputs .xlsx for a macro-enabled .xls is doing the wrong conversion regardless of its macro handling.

The correct format map is:

Most online converters only offer .xlsx as an output format. They don't offer .xlsm because they can't populate the VBA container that makes .xlsm meaningful.

What Works Instead

For Single Files: Use Excel Directly

The most reliable approach for a single file: open it in Excel, press Alt+F11 to verify macros exist, then use File → Save As → Excel Macro-Enabled Workbook (*.xlsm). This preserves all VBA code because Excel is handling both sides of the conversion.

You'll still need to fix any PtrSafe errors if you're on 64-bit Office, but the VBA code itself will survive intact.

Full guide: How to Convert .xls to .xlsx Without Losing Macros.

For Batches: Use a Local Desktop Tool

For many files, opening and saving each one manually isn't practical. PowerShell can automate Excel's Save As function, but it still requires Excel to be installed locally — which is the right approach. A script that automates Excel's own conversion preserves VBA because it's running through the actual Excel engine.

The limitation: PowerShell scripts don't audit for PtrSafe issues, don't detect ActiveX dependencies, and fail silently on password-protected or corrupted files. For production files where you need to know what you're working with before converting, a dedicated migration tool that audits first gives you visibility into what's about to happen.

Need to convert files with macros?

LegacyLeaps is a Windows desktop app — your files never leave your machine. It scans for macros, ActiveX controls, and API declarations, then converts everything to the correct modern format.

Try the Free Scan

The Security Issue with Online Converters

Beyond the macro problem, there's a reason to avoid online converters for business Excel files regardless of macros: your files leave your machine.

An .xls workbook with production data — inventory, customer information, financial models, employee records — gets uploaded to a third-party server, processed, and stored temporarily. The converter's privacy policy governs what they do with it. "Files deleted after 24 hours" is a common policy, but it depends entirely on their infrastructure, their subprocessors, and whether those promises are audited.

For personal files: probably fine. For files that touch regulated data (HIPAA, GDPR, SOC 2, financial records): not appropriate.

LegacyLeaps processes files entirely on your local machine. No upload, no cloud, no third parties. The security architecture is simple because there's nothing to secure externally.

When Online Converters Are Appropriate

To be fair: online converters are the right tool for a specific case. If you have an .xls file with no macros, no ActiveX controls, just data and formulas — and the file doesn't contain sensitive business data — an online converter works fine for a one-off conversion.

The problem is that people reach for online converters without knowing whether their file has macros. If you're not sure, the safe answer is to check first (Alt+F11 in Excel) before uploading anything.

Not sure if your files have macros?

Run LegacyLeaps's free scan. It checks every file in your library and tells you exactly what's in each one — macros, ActiveX controls, API declarations, external links — before you convert anything.

Download Free Scanner

Related: How to Convert .xls to .xlsx Without Losing Macros · LegacyLeaps vs CloudConvert · LegacyLeaps vs Zamzar

Get tips like this in your inbox

Practical fixes for legacy Excel and Access problems. No spam.

← Back to all posts