From the link i posted in the comment, i have come up with this code
Sub temp()
Dim zoomRatio As Integer
zoomRatio = 100
Do While (Not (CellIsInVisibleRange(ActiveSheet.Range("Z1"))))
zoomRatio = zoomRatio - 1
ActiveWindow.Zoom = zoomRatio
Loop
End Sub
Function CellIsInVisibleRange(cell As Range)
CellIsInVisibleRange = Not Intersect(ActiveWindow.VisibleRange, cell) Is Nothing
End Function
Update:
Revised the subroutine to Zoom in if more than column Z is visible and Zoom out if less than Col Z is visible
Sub temp()
Dim zoomRatio As Integer
zoomRatio = ActiveWindow.Zoom
Do While (Not (CellIsInVisibleRange(ActiveSheet.Range("Z1"))))
zoomRatio = zoomRatio - 2
ActiveWindow.Zoom = zoomRatio
Loop
Do While (CellIsInVisibleRange(ActiveSheet.Range("AA1")))
zoomRatio = zoomRatio + 2
ActiveWindow.Zoom = zoomRatio
Loop
End Sub