Español
Continue in the app
Be The First To Get Support Updates
Want to know about the latest technical content and software updates?

Cómo: Exportar las entidades seleccionadas a un shapefile mediante programación

Resumen

Este artículo muestra cómo exportar un conjunto seleccionado de entidades en ArcMap a un nuevo shapefile utilizando VBA y ArcObjects.

Nota: 
La información de este artículo solo se aplica a las versiones 9.x de ArcGIS. Visual Basic para Aplicaciones (VBA) para ArcMap y ArcCatalog se ha quedado obsoleto en ArcGIS 10.

Procedimiento

  1. Abra ArcMap.
  2. Abra el Editor de Visual Basic.
  • En ArcMap, seleccione Herramientas > Macros > Editor de Visual Basic.
  1. En la ventana Explorador del proyecto, expanda la carpeta Proyect y seleccione ThisDocument. Haga clic con el botón derecho y seleccione Ver código.
    [O-Image] Visual Basic Project  Explorer
    Nota:
    El código del módulo de código ThisDocument solo se ejecuta en el documento de mapa actual. Para almacenar el código en todos los documentos de mapa, abra el código en el módulo de código ThisDocument de Normal.mxt. 
  2. Pegue el siguiente código en el módulo de código.
    Código:
    Sub ExportFeatureClass()
    
        Dim pDoc As IMxDocument
        Dim pMap As IMap
        Dim pFLayer As IFeatureLayer
        Dim pFc As IFeatureClass
        Dim pINFeatureClassName As IFeatureClassName
        Dim pDataset As IDataset
        Dim pInDsName As IDatasetName
        Dim pFSel As IFeatureSelection
        Dim pSelSet As ISelectionSet
        Dim pFeatureClassName As IFeatureClassName
        Dim pOutDatasetName As IDatasetName
        Dim pWorkspaceName As IWorkspaceName
        Dim pExportOp As IExportOperation
    
        Set pDoc = ThisDocument
        Set pMap = pDoc.FocusMap
        Set pFLayer = pMap.Layer(0)
        Set pFc = pFLayer.FeatureClass
    
        'Obtenga el FcName de la clase de entidad
        Set pDataset = pFc
        Set pINFeatureClassName = pDataset.FullName
        Set pInDsName = pINFeatureClassName
    
        'Obtenga el conjunto de selección
        Set pFSel = pFLayer
        Set pSelSet = pFSel.SelectionSet
    
        'Defina el nombre de la clase de entidad de salida
        Set pFeatureClassName = New FeatureClassName
        Set pOutDatasetName = pFeatureClassName
        pOutDatasetName.Name = "TestExport"
        Set pWorkspaceName = New WorkspaceName
        pWorkspaceName.PathName = "c:\temp"
        pWorkspaceName.WorkspaceFactoryProgID = _
              "esriCore.shapefileworkspacefactory.1"
        Set pOutDatasetName.WorkspaceName = pWorkspaceName
        pFeatureClassName.FeatureType = esriFTSimple
        pFeatureClassName.ShapeType = esriGeometryAny
        pFeatureClassName.ShapeFieldName = "Shape"
    
        'Exporte
        Set pExportOp = New ExportOperation
        pExportOp.ExportFeatureClass pInDsName, Nothing, _
               pSelSet, Nothing, pOutDatasetName, 0
    
    End Sub
  3. Si es necesario, modifique la instrucción pWorkspaceName.PathName para señalar una carpeta en la que se debe crear el nuevo shapefile.
  4. Cierre el Editor de Visual Basic.
  5. Agregue una clase de entidad a ArcMap y seleccione algunas entidades que desee exportar.
    Nota:
    La primera capa del mapa debe ser una capa vectorial. De lo contrario, se producirá un error de "tipo no coincidente".
  6. Ejecute el código.
    1. Haga clic en Herramientas > Macros > Macros para mostrar el cuadro de diálogo Macros.
    2. Seleccione una macro y haga clic en Ejecutar. Mire en la carpeta que especificó en el ajuste PathName para ver los shapefiles creados. Agregue el shapefile al documento de mapa para ver las entidades que se crearon.

Información relacionada

Última modificación: 2/21/2019

Id. de artículo: 000004964