YouTube | Facebook | X(Twitter) | RSS

データ フレーム内のすべてのフィーチャ レイヤで指定したフィールドの表示を切り替え

2010/6/11 (金)

ArcMapでアクティブなデータ フレーム内の全てのフィーチャ レイヤから指定したフィールドの表示を切り替えるVBAマクロです。

アクティブなデータ フレーム内はすべてフィーチャ レイヤであることが前提です。

Sub ShowHideField()

'フィールド名の設定
Dim vrnFieldName As Variant
vrnFieldName = Array("<フィールド名1>", _
"<フィールド名2>", _
"<フィールド名3>", _
"<フィールド名4>", _
"<フィールド名5>", _
"※必要なフィールド数だけカンマで区切って設定して下さい")

Dim pMxDocument As IMxDocument
Dim pMap As IMap
Dim pEnumLayer As IEnumLayer
Dim pLayerFields As ILayerFields
Dim pFieldInfo As IFieldInfo
Dim i As Long
Dim lngLayerIndex As Long

'MxDocumentの取得
Set pMxDocument = ThisDocument

'Mapの取得
Set pMap = pMxDocument.FocusMap

'Layerリストの取得
Set pEnumLayer = pMap.Layers()

'FeatureLayerの取得
Set pLayerFields = pEnumLayer.Next

Do Until pLayerFields Is Nothing

'インデックス番号の取得
For i = 0 To UBound(vrnFieldName)
lngLayerIndex = pLayerFields.FindField(vrnFieldName(i))
Set pFieldInfo = pLayerFields.FieldInfo(lngLayerIndex)
pFieldInfo.Visible = Not pFieldInfo.Visible
Next i

Set pLayerFields = pEnumLayer.Next

Loop

MsgBox "Done!"

End Sub
Do Until pLayerFields Is Nothing
  • この記事を書いた人

羽田 康祐

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、元青山学院大学非常勤講師を兼務。日本地図学会第31期常任委員。発言は個人の見解です。

-プログラミング, ArcGIS
-