Every office I have ever worked in has been an equipment battleground. It didn’t matter what the equipment was; it just had to be better than everybody else. A new keyboard, a bigger screen, even a mouse mat with a wrist rest was enough to make everyone else jealous. I was once lucky enough to be the recipient of a new, bigger screen. Wow, what a day that was! I set about creating bigger dashboards with more charts and tables, more space meant more insight, right?!? I was sure the praise would come flooding in.
But it wasn’t long until my new screen was causing me problems. Actually . . . it was causing my managers problems and therefore causing me problems. I had created a dashboard which fitted nicely on my new big screen, but my managers, had a mix of screen sizes. Some lucky enough to have the same as me, while others had the older smaller ones. Would the small screen managers have to scroll, or would the big screen managers have a lot of white space? That was a tough choice. It was a lose-lose situation. But, I wasn’t about to be defeated . . .
Here are the four stages of my thought process:
- Manually zoom in/out
- Manually zoom to selection
- Click a button to resize the spreadsheet
- Auto resize on open
Let’s consider each of these one by one
Manually zoom in/out
There is a zoom setting on Excel, which each user can apply themselves. This setting is available in three places:
(1) The Ribbon
The zoom setting is available on the View Ribbon. View -> Zoom
After clicking on the button, the Zoom window will appear.
There are multiple preset options, plus a Custom option to select any size between 10% and 400%. Entering a custom size outside of this range will trigger the following error message.
(2) The Status Bar
The zoom setting is also available on the Status Bar
The [+] and [-] buttons will move the zoom level by 10% increments. By clicking and dragging the slider it is possible to get any size between 10% and 400%.
(3) Mouse scroll wheel
If you have a mouse with a scroll wheel (which most do) there is another option. Hold the Ctrl key while moving the scroll wheel backward and forward. The spreadsheet will zoom in and out.
Whilst manually resizing the spreadsheet was an option, it wasn’t quite the seamless user experience I was looking for.
Manually Zoom to Selection
A slightly better option for this situation was Zoom to Selection. The user selects the range of cells to fill the screen, then clicks the Zoom to Selection button.
This option also exists within the Zoom window, but for a reason which is unknown to me, it is called by a different name Fit to selection.
Now, we’re on to something. If we could automate this feature, it would be a pretty good solution.
Click a button to resize the spreadsheet
If you’re not a VBA-wiz, we can turn to the Macro recorder to automate the process of selecting a range then using Zoom to Selection.
You will need to use the Developer Tab, follow these instructions if you have not already enabled it.
Click the Record Macro button within the Developer Tab.
Select the range of cells then click View -> Zoom to Selection.
Click in Cell A1 to return the selection to a single cell.
Click the Stop Recording button from the Developer Tab.
Next, create a button using Developer -> Insert -> Form Control -> Button (Form Control).
Assign the macro created above to that button.
Now it is possible to resize the spreadsheet to the window just by clicking the button. That’s almost an acceptable solution, but we can go one step further.
Auto resize on open
Finally, we get to the good stuff. Let’s make the resizing happen automatically.
View the recorded macro code within the Visual Basic Editor (Developer -> Visual Basic Editor)
The code will look something like this
Sub Macro3() ' ' Macro3 Macro ' ' Range("A1:I15").Select ActiveWindow.Zoom = True Range("A1").Select End Sub
Copy that code, and insert it into the Workbook Open event for ThisWorkbook
Delete the recorded macro and the button, as we no longer need them.
Save the file as a macro-enabled workbook, the close it.
Whenever the file opens, the Workbook Open event triggers first, which resizes the spreadsheet to fit the window. That’s a much better solution.