PrintableRect Property
The document is archived and information here might be outdated

Printer.PrintableRect Property

Office 2007
Returns a PrintableRect object that represents the printer sheet area within which the specified printer will print. Read-only.

Version Information
 Version Added:  Publisher 2007



expression   A variable that represents a Printer object.

Return Value


The printable rectangle is determined by the printer based on the sheet size specified. The printable rectangle of the printer sheet should not be confused with the area within the margins of the publication page. The printable rectangle might be larger or smaller than the publication page.

Aa438422.vs_note(en-us,office.12).gif  Note
When the printer sheet and the publication page size are identical, the publication page is centered on the printer sheet and none of the printer's marks print, even if they are selected.


The following Microsoft Visual Basic for Applications (VBA) macro shows how to use the PrintableRect property to get the boundaries of the printable rectangle for the printer sheet of the active printer.

Visual Basic for Applications
Public Sub PrintableRect_Example()

    Dim pubInstalledPrinters As Publisher.InstalledPrinters
    Dim pubApplication As Publisher.Application
    Dim pubPrinter As Publisher.Printer
    Set pubApplication = ThisDocument.Application
    Set pubInstalledPrinters = pubApplication.InstalledPrinters

    For Each pubPrinter In pubInstalledPrinters
        If pubPrinter.IsActivePrinter Then
            With pubPrinter.PrintableRect
                Debug.Print "Printable area is " & PointsToInches(.Width) & " by " & PointsToInches(.Height) & " inches."
                Debug.Print "Left Boundary: " & PointsToInches(.Left) & " inches (from left)."
                Debug.Print "Right Boundary: " & PointsToInches(.Left + .Width) & " inches (from left)."
                Debug.Print "Top Boundary: " & PointsToInches(.Top) & " inches(from top)."
                Debug.Print "Bottom Boundary: " & PointsToInches(.Top + .Height) & " inches (from top)."
            End With
        End If

End Sub

© 2016 Microsoft