'-----------------------------------------------
'Exact Visible Range RECT relative to the Screen
'-----------------------------------------------
Function ExactVisibleRangeRECTToScreen(Window As Window) As RECT
    Dim EVRRS As RECT
    Dim LastVisibleRangeCell As Range
    Dim LastXPixelVisible As Long
    Dim LastYPixelVisible As Long
    
    With Window.Panes(Window.Panes.Count)
        Set LastVisibleRangeCell = .VisibleRange.Cells(.VisibleRange.Cells.Count).Offset(-1, -1)
        LastXPixelVisible = .PointsToScreenPixelsX(LastVisibleRangeCell.Left)
        LastYPixelVisible = .PointsToScreenPixelsY(LastVisibleRangeCell.Top)
    
        EVRRS.Left = .PointsToScreenPixelsX(.VisibleRange.Left)
        
        Do While Not .Parent.RangeFromPoint(LastXPixelVisible, LastYPixelVisible) Is Nothing
            LastXPixelVisible = LastXPixelVisible + 1
        Loop
        LastXPixelVisible = LastXPixelVisible - 1
            
        EVRRS.Right = LastXPixelVisible + 1
                
        EVRRS.Top = .PointsToScreenPixelsY(.VisibleRange.Top)
        
        Do While Not .Parent.RangeFromPoint(LastXPixelVisible, LastYPixelVisible) Is Nothing
            LastYPixelVisible = LastYPixelVisible + 1
        Loop
        LastYPixelVisible = LastYPixelVisible - 1
    
        EVRRS.Bottom = LastYPixelVisible + 1
    End With
    
    'Return value
    ExactVisibleRangeRECTToScreen = EVRRS
End Function