How to Automatically Fit Excel Columns to One Printed Page
Question details
The user wants to configure Excel to automatically scale all worksheet columns so they fit onto a single printed page across all workbooks.

- Product
- Microsoft Excel
- Device & OS
- not provided
- Scenario
- Preparing workbooks for printing where the spreadsheet data spans across multiple columns, requiring automatic scaling to prevent printing across multiple fragmented pages.
- Observed behavior
- Excel defaults to 'No Scaling' when printing, causing wide worksheets to spill over onto additional pages unless the user manually adjusts the print settings every time.
Ensure you have the Developer tab enabled in Excel to use VBA macros, and consider saving your file as an Excel Macro-Enabled Workbook (.xlsm) to preserve the code for future use.
Use a VBA Macro to Set Scaling Preferences
Since Excel does not offer a built-in global setting to change the default print scaling for all workbooks, running a VBA macro is the most effective way to automate this formatting.
By default, Microsoft Excel applies 'No Scaling' to new sheets. To override this automatically without navigating through the print menu every time, you can execute a short VBA script that configures the active sheet's Page Setup properties instantly.
Press ALT + F11 on your keyboard to launch the Visual Basic for Applications editor.
Click on 'Insert' in the top menu and select 'Module' to create a blank script window.
Copy and paste the following code: Sub SetDefaultPrintSettings(): ActiveSheet.PageSetup.Zoom = False: ActiveSheet.PageSetup.FitToPagesWide = 1: ActiveSheet.PageSetup.FitToPagesTall = 1: End Sub
Close the VBA editor. Whenever you need to scale a sheet, press ALT + F8, select 'SetDefaultPrintSettings', and click 'Run' before printing.

Manually Adjust Print Scaling Settings
If you do not want to use VBA macros, you can quickly adjust the scaling for the current worksheet directly from the print preview screen.
Print Your Spreadsheets Flawlessly with WPS Office
WPS Office Spreadsheet provides an intuitive page layout and highly accessible print preview tools, making it incredibly simple to scale your worksheets perfectly without needing complex VBA macros.
- 1. Open Your Spreadsheet: Launch WPS Office and open your spreadsheet file.
- 2. Access Print Preview: Go to the 'Page Layout' tab on the top ribbon and click the 'Print Preview' icon.
- 3. Adjust Scaling: In the Print Preview toolbar, locate the 'Scaling' drop-down menu and select 'Fit All Columns on One Page'.
- 4. Print or Export: Once the layout looks perfect, click 'Print' to send it to your printer, or use 'Export to PDF' to save a digital copy.

Frequently Asked Questions
Is it possible to make 'Fit to one page' the permanent default in Excel without macros?
No, Excel does not offer a built-in application-level setting to change the default print scaling for all future or existing workbooks. The default will always revert to 'No Scaling'.
Why does my text become unreadable when fitting columns to one page?
When you force a large number of columns onto a single page width, the software must shrink the font and cell sizes proportionally. To make the text larger and more readable, try changing the page orientation from Portrait to Landscape.
Can I fit rows to one page just like columns?
Yes. In both the print settings drop-down and in VBA (using FitToPagesTall = 1 while leaving FitToPagesWide as False), you can instruct the software to scale the height of the document so all rows fit onto a single printed page.




