What Happens to .xls Files in Office 365?
February 11, 2026 · 7 min read
Short answer: Office 365 (now Microsoft 365) still opens .xls files. But "opens" is doing a lot of work in that sentence. What actually happens is that your file is loaded into a restricted operating mode called Compatibility Mode, which limits what you can do with the file and, critically, limits what the file can do. Here's the complete picture.
What "Compatibility Mode" Actually Means
When you open a .xls file in Excel 365, you'll see "[Compatibility Mode]" in the title bar. This isn't just a label — it activates a fundamentally different code path in Excel:
- Excel runs as if it were Excel 2003. New Excel features (dynamic arrays, XLOOKUP, modern charts, Power Query integration) are disabled or unavailable.
- The 65,536-row limit applies. Even though Excel 365 supports 1,048,576 rows, your .xls file is locked to 65,536. If you enter data in row 65,537, it will silently fail.
- Column limit is 256. Excel 365 supports 16,384 columns in .xlsx. In Compatibility Mode, you're capped at 256.
- Formatting features are restricted. Modern cell styles, theme colors, and conditional formatting rules beyond the old 3-rule limit are unavailable.
What Happens to Macros in .xls Files
This is where it gets complicated. VBA macros in .xls files run in Compatibility Mode with the following behavior:
Macros That Work Fine
- Simple VBA that manipulates cells, ranges, and worksheet data
- Macros that call basic Excel object model methods
- User-defined functions (UDFs) that perform calculations
- Most automation code written after Excel 2000 that doesn't use Windows API calls
Macros That Fail or Behave Differently
- Any code with old-style
Declare statements — fails to compile with "Expected: PtrSafe" error in 64-bit Excel 365
- Code calling deprecated Windows APIs — runtime errors
- Late-bound COM automation to legacy objects that are no longer registered
- Code that assumes 32-bit pointer sizes — subtly wrong results or crashes
- Shell commands or file system operations using old API paths that changed in Windows 11
The dangerous middle ground: Some macros appear to work in Compatibility Mode but produce subtly incorrect results. Macros that handle memory pointers, large numbers, or Windows API calls may silently calculate wrong values when run in 64-bit Excel 365 without proper PtrSafe declarations.
What Features Are Blocked in .xls Compatibility Mode
| Feature | In .xls Compatibility Mode | In .xlsx / .xlsm |
| Dynamic arrays (SPILL) | Not available | Available |
| XLOOKUP, XMATCH | Not available | Available |
| Power Query (Get Data) | Very limited | Full support |
| Sparklines | Not available | Available |
| Slicers (for tables) | Not available | Available |
| More than 3 conditional formatting rules | Not available | Available |
| Row limit | 65,536 | 1,048,576 |
| Column limit | 256 | 16,384 |
| Co-authoring (real-time collaboration) | Not supported | Supported |
| AutoSave to OneDrive/SharePoint | Not supported | Supported |
The "Save As .xlsx" Shortcut — Why It's Not Enough
The obvious move when you see "[Compatibility Mode]" is to use File → Save As and choose .xlsx. For simple files with no macros, this works fine. For files with VBA macros, it has serious limitations:
- Excel will warn you that macros can't be saved in .xlsx and offer to save as .xlsm. If you click the wrong button, the macros are gone.
- Even saving as .xlsm doesn't fix the underlying compatibility issues in the VBA code. Old Declare statements are preserved as-is — still broken.
- ActiveX controls may lose their properties or connections after format conversion.
- Named ranges and external references sometimes break during Save As conversion.
The "Save As" approach treats format migration as a save operation. It's actually a migration operation that requires auditing the VBA code, updating API declarations, testing macros, and validating all formulas and data still work correctly after conversion.
Do more than just Save As
LegacyLeaps handles the full migration — format conversion, VBA PtrSafe updates, ActiveX preservation, and validation — not just a file type change.
Try the Free Scan
The Trajectory: Compatibility Mode Is Getting Worse
Microsoft has stated that .xls support in Excel is maintained for backward compatibility but is not being actively developed. With each major Excel or Windows update, compatibility mode becomes slightly more restricted:
- Excel 365 monthly updates occasionally change how legacy format handlers work
- Windows 11 updates affect the runtime environment that compatibility mode depends on
- Security updates increasingly block behaviors that legacy macros relied on
A .xls file that opens and runs correctly in Excel 365 today may not open correctly after the next monthly update. This isn't a hypothetical — it happened with 24H2 in late 2024, and it will happen again.
The Migration Checklist for .xls Files in Office 365
- Run LegacyLeaps's free scanner to inventory all .xls files and their contents
- Identify which files have macros, which have ActiveX controls, which have external references
- Prioritize by business criticality (active use vs. archive)
- Run LegacyLeaps's migration for each file — it handles PtrSafe, format, and preservation
- Test each converted file in Office 365: open it, run macros, enter test data, verify formulas
- Update any scheduled tasks, workflows, or Power Automate flows that reference the old filenames
Rename after migration: If you rename converted files (from report.xls to report.xlsx) make sure to update every reference to the old filename — in scheduled tasks, VBA in other workbooks, SharePoint links, and any automated processes that open the file.
For the full migration process, see the Complete Guide to Legacy Excel Migration. For VBA-specific issues, see VBA Macros Stopped Working: Complete Troubleshooting Guide.
Ready to leave Compatibility Mode behind?
Download LegacyLeaps and scan your files for free. See exactly what needs to be converted before you spend a penny.
Download Free Scanner
Get tips like this in your inbox
Practical fixes for legacy Excel and Access problems. No spam.
← Back to all posts