How To: Zoom to selected features using ArcObjects


In ArcMap you can zoom to the selected features for a layer by right-clicking the layer and selecting Selection > Zoom to Selected Features. This article shows how to do this task using VBA and ArcObjects.



  1. Start ArcMap.
  2. Create a new UIButtonControl: How To: Create a new UIButtonControl​
    For more information on creating a UIControl, see the ArcGIS Desktop Help topic: 'Creating custom commands with VBA and UI Controls'
  3. Right-click the UIButtonControl and select View Source.
  4. Copy this code into the UIButtonControl's click event.
    Dim pDoc As IMxDocument
    Set pDoc = ThisDocument
    Dim pMap As IMap
    Set pMap = pDoc.FocusMap
    Dim pLayer As IFeatureLayer
    Dim pFSel As IFeatureSelection
    Set pLayer = pMap.Layer(0)
    Set pFSel = pLayer
    'Get the selected features
    Dim pSelSet As ISelectionSet
    Set pSelSet = pFSel.SelectionSet
    Dim pEnumGeom As IEnumGeometry
    Dim pEnumGeomBind As IEnumGeometryBind
    Set pEnumGeom = New EnumFeatureGeometry
    Set pEnumGeomBind = pEnumGeom
    pEnumGeomBind.BindGeometrySource Nothing, pSelSet
    Dim pGeomFactory As IGeometryFactory
    Set pGeomFactory = New GeometryEnvironment
    Dim pGeom As IGeometry
    Set pGeom = pGeomFactory.CreateGeometryFromEnumerator(pEnumGeom)
    pDoc.ActiveView.Extent = pGeom.Envelope