Si estás utilizando el enfoque ArcObjects/VBA macro en ArcMap, puedes hacer lo siguiente (lo siento, algunos de los ejemplos de código están en .NET, pero la idea es la misma):
para el número 2 usa ArcMap Command Zoom to Selected Features:
Dim pUID As New UID
Dim pCmdItem As ICommandItem
Dim pApp As IApplication
' Usa el GUID del comando Save
pUID.Value = "esriArcMapUI.ZoomToSelectedCommand"
pUID.SubType = 3
pCmdItem = pApp.Document.CommandBars.Find(pUID)
pCmdItem.Execute()
para el número 3:
Dim pLayoutS As IPageLayout2
Dim pGCS As IGraphicsContainer
Dim pTS As ITextElement
Dim pAvS As IActiveView
Dim pElPropS As IElementProperties
Dim pElementS As IElement
pLayoutS = CType(m_pMxDoc2.PageLayout, IPageLayout2)
pGCS = CType(pLayoutS, IGraphicsContainer)
pAvS = CType(pLayoutS, IActiveView)
pGCS.Reset()
pElementS = pGCS.Next
'Obtener gráfico de fecha existente y actualizar hora y fecha.
Do Until pElementS Is Nothing
pElPropS = CType(pElementS, IElementProperties)
If pElPropS.Name = "Current Text" Then
pTS = CType(pElementS, ITextElement)
pTS.Text = "Nuevo Texto"
pAvS.PartialRefresh(esriViewDrawPhase.esriViewGraphics, pElementS, Nothing)
End If
pElementS = pGCS.Next
Loop
para el número 4, ¿puedes apagar las capas que no deseas mostrar en la leyenda:
Dim pMap As IMap = Nothing
Dim pLayer As ILayer
Dim pGroupLayer As IGroupLayer = Nothing
Dim i As Integer
Dim pGrphcon As IGraphicsContainer = Nothing
Dim pElem As IElement = Nothing
Dim pTxtElem As ITextElement = Nothing
'Dim pElPropS As IElementProperties
Dim pAvS As IActiveView = Nothing
Dim pPageLayout As IPageLayout
pPageLayout = m_pMxDoc2.PageLayout
m_pMxDoc2.ActiveView = pPageLayout
pMap = m_pMxDoc2.FocusMap
Dim pContentsView As IContentsView
pContentsView = m_pMxDoc2.CurrentContentsView
For i = 0 To pMap.LayerCount - 1
If pMap.Layer(i).Name = "Mi Capa para apagar" Then
pLayer = pMap.Layer(i)
If TypeOf pLayer Is IGroupLayer Then
pGroupLayer = pLayer
pContentsView.SelectedItem = pLayer
'Apagar la capa aquí en el TOC
pGroupLayer.Visible = False
strLayerName = pLayer.Name
m_pMxDoc2.UpdateContents()
m_pMxDoc2.ActiveView.Refresh()
End If
End If
Next i
para el número 5:
Ver este ejemplo - Exportar Active View a JPEG