FAQ
ArcMapのTOCに表示されているすべてのレイヤをエクスポートする方法

ナレッジ番号:5483 | 登録日:2023/07/27 | 更新日:2024/12/02

【概要】

ArcMapのTOCに表示されているすべてのレイヤをエクスポートする方法を以下に示します。


【手順】

  1. ArcMapを起動します。

  2. Visual Basic Editorを開きます。

  3. プロジェクト・エクスプローラ・ウィンドウで、Projectの下にあるArcMap Objects > ThisDocumentをダブルクリックし、コード・ウィンドウを開きます。

  4. コード・モジュールに次のコードをペーストします。

    
    Public Sub ExportAll_TOC
    
      Dim pDoc As IMxDocument
      Dim pEnumLayer As IEnumLayer
      Dim pLayer As IFeatureLayer
      Dim pName As IName
      Dim pLayerSet As ISet
      Dim pMap As IMap
      Dim pFC As IFeatureClass
      Dim pINFeatureClassName As IFeatureClassName
      Dim pDataset As IDataset
      Dim pInDSName As IDatasetName
      Dim pFields As IFields
      Dim pField As IField
      Dim pGeometryDef As IGeometryDef
      Dim pFeatureClassName As IFeatureClassName
      Dim pOutDatasetName As IDatasetName
      Dim pWorkspaceName As IWorkspaceName
      Dim pExportOp As IExportOperation
      Dim i As Integer
    
    Dim X As Integer Set pDoc = Application.Document Set pMap = pDoc.FocusMap Set pEnumLayer = pMap.Layers Set pLayerSet = New esriSystem.Set pEnumLayer.Reset Set pLayer = pEnumLayer.Next Do Until pLayer Is Nothing 'TOCに表示されているレイヤをループ処理し、各フィーチャクラスからFeatureClassNameを取得します Set pFC = pLayer.FeatureClass Set pDataset = pFC Set pINFeatureClassName = pDataset.FullName Set pInDSName = pINFeatureClassName Set pFields = pFC.Fields Set pField = pFields.Field(pFields.FindField("Shape")) Set pGeometryDef = pField.GeometryDef Set pFeatureClassName = New FeatureClassName Set pOutDatasetName = pFeatureClassName 'エクスポートされる各レイヤに名前をつけます pLayerSet.Add pLayer For i = 0 To pLayerSet.Count - 1 X = pLayerSet.Count - 1 pOutDatasetName.Name = pDataset.Name & "_Export" Next i Set pWorkspaceName = New WorkspaceName pWorkspaceName.PathName = "C:\temp" pWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory" Set pOutDatasetName.WorkspaceName = pWorkspaceName 'TOCに表示されているレイヤをエクスポートします Set pExportOp = New ExportOperation pExportOp.ExportFeatureClass pInDSName, Nothing, Nothing, pGeometryDef, _ pOutDatasetName, hWnd Set pLayer = pEnumLayer.Next Loop 'TOCを再描画します pDoc.UpdateContents End Sub
  5. Visual Basic Editorを閉じます。

  6. コードを実行します。

    A:ArcMapで、ツール > マクロ > マクロと選択し、マクロ・ダイアログを表示します。

    B:マクロを選択し、実行をクリックします。

メタデータ

種類

機能

製品