Private Declare Function GetCursorPos& Lib "user32" (pos As lpPoint)
Private Type lpPoint: X As Long: y As Long: End Type
Sub ZoomPlus()
Const ZoomPct = 40 ' 0..100
Dim X#, y#, p As lpPoint
On Error Resume Next
GetCursorPos p
ActiveWindow.ScreenToDocument p.X, p.y, X, y
With ActiveWindow.ActiveView
.SetViewPoint .OriginX + (X - .OriginX) * ZoomPct / 100, _
.OriginY + (y - .OriginY) * ZoomPct / 100, _
.Zoom * (100 + ZoomPct) / 100
End With
End Sub