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

How To: Programmgesteuertes Exportieren von ausgewählten Features in ein Shapefile

Zusammenfassung

In diesem Artikel erfahren Sie, wie Sie mehrere in ArcMap ausgewählte Features mithilfe von VBA und ArcObjects in ein neues Shapefile exportieren können.

Hinweis: 
Die Informationen in diesem Artikel gelten nur für die ArcGIS-Versionen 9.x. Visual Basic for Applications (VBA) für ArcMap und ArcCatalog werden in ArcGIS 10 nicht mehr unterstützt.

Vorgehensweise

  1. Öffnen Sie ArcMap.
  2. Öffnen Sie den Visual Basic-Editor.
  • Wählen Sie in ArcMap Werkzeuge > Makros > Visual Basic-Editor aus.
  1. Erweitern Sie im Fenster Project Explorer den Ordner Project, und wählen Sie ThisDocument aus. Klicken Sie mit der rechten Maustaste darauf, und wählen Sie View Code aus.
    [O-Image] Visual Basic Project  Explorer
    Hinweis:
    Der Code im Codemodul "ThisDocument" wird nur im aktuellen Kartendokument ausgeführt. Um den Code in allen Kartendokumenten zu speichern, öffnen Sie den Code im Codemodul "ThisDocument" der Datei "Normal.mxt". 
  2. Fügen Sie den folgenden Code in das Codemodul ein.
    Code:
    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
    
        'Get the FcName from the featureclass
        Set pDataset = pFc
        Set pINFeatureClassName = pDataset.FullName
        Set pInDsName = pINFeatureClassName
    
        'Get the selection set
        Set pFSel = pFLayer
    Set pSelSet = pFSel.SelectionSet
    
        'Define the output feature class name
        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"
    
        'Export
        Set pExportOp = New ExportOperation
        pExportOp.ExportFeatureClass pInDsName, Nothing, _
               pSelSet, Nothing, pOutDatasetName, 0
    
    End Sub
  3. Ändern Sie bei Bedarf die Anweisung "pWorkspaceName.PathName", sodass sie auf einen Ordner verweist, in dem das neue Shapefile erstellt werden soll.
  4. Schließen Sie den Visual Basic-Editor.
  5. Fügen Sie ArcMap eine Feature-Class hinzu, und wählen Sie die Features aus, die exportiert werden sollen.
    Hinweis:
    Der erste Layer in der Karte muss ein Vektor-Layer sein. Andernfalls tritt ein "Typkonflikt"-Fehler auf.
  6. Führen Sie den Code aus.
    1. Klicken Sie hierzu auf Werkzeuge > Makros > Makros, um das Dialogfeld Makros anzuzeigen.
    2. Wählen Sie ein Makro aus, und klicken Sie auf Ausführen. Zeigen Sie die erstellten Shapefiles in dem Ordner an, den Sie in der Einstellung "PathName" angegeben hatten. Fügen Sie das Shapefile dem Kartendokument hinzu, um die erstellten Features anzuzeigen.

Referenzinformationen

Zuletzt geändert: 2/21/2019

Artikel-ID: 000004964