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