FAQ
フィールドを固定する方法

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

【概要】

ArcMapでテーブルを開き、1つ以上のフィールドを右クリックし「カラムの固定/解除」を選択すると、
固定フィールドがテーブル・ウィンドウの左側に移動し固定されます。

以下のサンプル・コードはArcObjectsを使用してこの処理を実行する方法を示します。
このコードでは属性テーブル内に以下の順序でフィールドが追加されていると仮定しています。

OBJECTID, SHAPE, NAME, FEA_CODE, SHAPE_LENGTH

またマップドキュメント内には1つのテーブルのみ含まれているとします。複数のテーブルが含まれている場合、
IEnumTablePropertiesインタフェースを使用してループ処理を行います。


【手順】

  1. ArcMapを起動します。

  2. Visual Basic Editorを開きます。

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

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

    
    Public Sub freezeFields()
      ' テーブル・ウィンドウに表示されるフィーチャレイヤを取得するところから開始します。
      Dim pMxDoc As IMxDocument
      Dim pFeatLayer As IFeatureLayer
      Set pMxDoc = ThisDocument
      Set pFeatLayer = pMxDoc.FocusMap.Layer(0)
      ' フィーチャレイヤのテーブル・ウィンドウを開きます。
      Dim pTableWindow As ITableWindow
      Set pTableWindow = New TableWindow
      Set pTableWindow.FeatureLayer = pFeatLayer
      Set pTableWindow.Application = Application
      pTableWindow.ShowAliasNamesInColumnHeadings = True
      ' テーブルを開きます。
      pTableWindow.Show True
      ' テーブル・ウィンドウのプロパティを取得します。
      Dim pTableProperties As ITableProperties
      Dim pEnumTableProperties As IEnumTableProperties
      Dim pTableProperty As ITableProperty
      Set pTableProperties = pMxDoc.TableProperties
      Set pEnumTableProperties = pTableProperties.IEnumTableProperties
      pEnumTableProperties.Reset
      Set pTableProperty = pEnumTableProperties.Next
      ' テーブル・ウィンドウの左側に固定するためにフィールドの順序を並べ替えます。
      pTableProperty.FieldOrder = "NAME, FEA_CODE, OBJECTID, Shape, Shape_Length"
      ' 固定したいフィールドの数を、左端からの個数で指定します。
      pTableProperty.FrozenFields = 2 ' 0に設定するとフィールドは固定されません。
      ' テーブル・ウィンドウを再描画します。
      ' このコードではNAMEフィールドとFEA_CODEが固定されます。
      Dim pTableControl As ITableControl
      Set pTableControl = pTableWindow.TableControl
      pTableControl.Redraw
    End Sub
    
    
  5. Visual Basic Editorを閉じます。

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

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

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

メタデータ

種類

機能

製品