You can try this
Note that if you have data in A:K (the ws .UsedRange) but that only fills 1/2 the screen, the zoom will fit A:K across the screen -- is that what you want?
Option Explicit
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub zoomOutGrow()
Dim zoomSelection As Long, zoomOriginal As Long
Dim oSelection As Object
'remember start zoom
zoomOriginal = ActiveWindow.Zoom
'remember what was selected
Set oSelection = Selection
'zoom to data
Application.ScreenUpdating = False
ActiveSheet.UsedRange.EntireColumn.Select
ActiveWindow.Zoom = True
zoomSelection = ActiveWindow.Zoom
ActiveWindow.Zoom = zoomOriginal
Application.ScreenUpdating = True
If zoomSelection > ActiveWindow.Zoom Then
Do While ActiveWindow.Zoom < zoomSelection
ActiveWindow.Zoom = ActiveWindow.Zoom + 1
Sleep 100 ' 1/10 sec
DoEvents
Loop
ElseIf zoomSelection < ActiveWindow.Zoom Then
Do While ActiveWindow.Zoom > zoomSelection
ActiveWindow.Zoom = ActiveWindow.Zoom - 1
Sleep 100 ' 1/10 sec
DoEvents
Loop
End If
oSelection.Select
End Sub