YouTube | Facebook | Twitter  Feed

ArcMap の TOC で複数の選択マップやレイヤーを取得する方法

2016/9/1 (木)

Sub GetSelectedItems()
    Dim pMxDocument As IMxDocument
    Set pMxDocument = ThisDocument
     
    Dim pContentsView As IContentsView
    Set pContentsView = pMxDocument.ContentsView(0) '最上位データフレーム
     
    Dim mySet As ISet
    Set mySet = New esriSystem.Set
     
    Dim pVariant As Variant
    Set pVariant = pContentsView.SelectedItem
     
    Dim pUnknown As IUnknown
    Dim pMap As IMap
    Dim pLayer As ILayer
    Dim i As Long
     
    'データフレーム
    If TypeOf pVariant Is IMap Then
        Set pMap = pVariant
        Debug.Print pMap.Name
     
    'レイヤ
    ElseIf TypeOf pVariant Is ILayer Then
        Set pLayer = pVariant
        Debug.Print pLayer.Name
     
    '複数データフレーム/レイヤ
    ElseIf TypeOf pVariant Is ISet Then
        Set mySet = pVariant
         
        For i = 0 To mySet.Count - 1
             
            Set pUnknown = mySet.Next
                                
            If TypeOf pUnknown Is IMap Then
                Set pMap = pUnknown
                Debug.Print pMap.Name
                 
            ElseIf TypeOf pUnknown Is ILayer Then
                Set pLayer = pUnknown
                Debug.Print pLayer.Name
                 
            End If
        Next
         
    End If
     
End Sub

関連記事

  • この記事を書いた人

羽田 康祐

Esri認定インストラクター、GIS上級技術者、測量士補、潜水士。GISy / GISc とその関連分野である地理学・地図学について日々の出来事で学んだ記憶を記録するためにブログを書いています。行動原理は伊達と酔狂。好きな地形は圏谷。好きな地図投影法はパースクインカンシャル図法。呉市生まれ広島市出身。GIS を使った自己紹介はこちら

-プログラミング, ArcGIS
-,

© 2020 WINGFIELD since1981