FAQ
IHistogram::GetHistogramを使用して、あるフィールドの値と頻度を返す方法

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

【概要】

VBAとArcObjectsを使用して、
ArcMap内で数値フィールドに対してFrequencyコマンドと同じ機能を実行する方法を示します。
Frequencyコマンドは数値やテキストフィールドに対して
個別値と頻度のリストを返すArcInfo Workstationのコマンドです。


【手順】

  1. ArcMapを起動します。

  2. Visual Basic Editorを開きます。

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

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

    
    Sub TestHistogram()
      Dim pDoc As IMxDocument
      Set pDoc = ThisDocument
      Dim pMap As IMap
      Set pMap = pDoc.FocusMap
    
      Dim pLayer As IFeatureLayer
      Set pLayer = pMap.Layer(0)
      Dim pTable As ITable
      Set pTable = pLayer.FeatureClass
    
      Dim pTableHistogram As ITableHistogram
      Set pTableHistogram = New TableHistogram
    
      Dim pHistogram As IHistogram
      Set pHistogram = pTableHistogram
    
      ' 最上位レイヤ内にあるSTATE_FIPSフィールドの値と頻度を取得します。
      pTableHistogram.Field = "STATE_FIPS"
      Set pTableHistogram.Table = pTable
    
      Dim dataFrequency As Variant
      Dim dataValues As Variant
      pHistogram.GetHistogram dataValues, dataFrequency
    
      ' GetHistogramメソッドによって返される配列をループ処理します。
      Dim i As Integer
      For i = LBound(dataValues) To UBound(dataValues)
        Debug.Print dataValues(i) & " " & dataFrequency(i)
      Next i
    End Sub
    
    

  5. Visual Basic Editorを閉じます。

  6. マクロを実行します。

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

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

■関連情報 

Scripting Dictionaryを使用して数値やテキスト型フィールドから値と頻度を取得する方法

メタデータ

種類

機能

製品