You code will be along these lines --
Dim pTop as long
Dim pLeft as long
Dim pHeight as long
Dim pWidth as long
Dim pErr as long
on error resume next
ActiveWindow.GetPoint pLeft, pTop, pWidth, pHeight, Selection.Range
pErr = err.number
on error goto 0
if pErr <> 0 then
.... ??? off-screen in normal or outline view
else
If pTop < 0 then
.... Selection is off-screen above the current display (ie user has
scrolled DOWN from the selection)
elseif pTop > ActiveWindow.Height then
... Selection is off-screen below the current display (user has
scrolled UP)
end if
end if
This is a seriously quirky function, and I'd be very wary of it. It seems
reliably to work in Print Layout view; it fails if the selection (? or any
part of it) is off-screen in normal or outline view, but with a trappable
error.