Programmatically change layout templates in ArcMap using ArcObjects

Last Published: April 25, 2020


Instructions provided describe steps to programmatically change layout templates in ArcMap using ArcObjects.


  1. Start ArcMap.
  2. Open the Visual Basic Editor.

    In ArcMap, select Tools > Macros > Visual Basic Editor.

  3. In the Project Explorer window, expand Project.mxt and select ArcMap Objects > ThisDocument then right-click and select View Code.
    [O-Image] Visual Basic Project  Explorer

    Code in the Project's ThisDocument code module will only run in the current map document. If you want to store the code in all your map documents open the Normal.mxt ThisDocument code module instead.

  4. Copy the following code into the code module. Change the path to match your MXT.
    Sub SwitchLayout()

    Dim pGxFile As IGxFile
    Set pGxFile = New GxMap
    pGxFile.Path = "C:\arcgis\Bin\Templates\USA\centralusa.mxt"

    Dim pGxPageLayout As IGxMapPageLayout
    Set pGxPageLayout = pGxFile

    Dim pPageLayout As IPageLayout
    Set pPageLayout = pGxPageLayout.PageLayout

    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    pPageLayout.ReplaceMaps pMxDoc.Maps

    Set pMxDoc.PageLayout = pPageLayout

    End Sub

  5. Close the Visual Basic Editor.
  6. Run the code.

    A. Click Tools > Macros > Macros to display the Macros dialog box.
    B. Select a macro and click Run.

Article ID:000007581

  • ArcMap 8 x
  • ArcMap 9 x

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options

Related Information

Discover more on this topic