ArcGISのアノテーション フィーチャを編集するには,[アノテーション]ツールバーを使用しますが,これをArcObjectsで操作する方法は以下のとおり。各フィーチャの属性値にテキストやフォントサイズなどが格納されてますが,これは閲覧に用いるだけで,本質的な情報は,"ELEMENT"フィールド内にBlob型で格納されているバイナリがそれに該当します。この中身はIAnnotationFeature::AnnotationプロパティからTextElementオブジェクトとして取得することができます。これを更新することで,他のフィールドに格納された属性値も更新されます。
以下はサンプルコード
Sub ChangeAnnotation() Dim pMxDocument As IMxDocument Set pMxDocument = ThisDocument Dim pMap As IMap Set pMap = pMxDocument.FocusMap Dim pFeatureLayer As IFeatureLayer Set pFeatureLayer = pMap.Layer(0) Dim pFeatureClass As IFeatureClass Set pFeatureClass = pFeatureLayer.FeatureClass Dim pFeature As IFeature Set pFeature = pFeatureClass.GetFeature(0) '該当のアノテーション フィーチャからQI Dim pAnnotationFeature As IAnnotationFeature Set pAnnotationFeature = pFeature 'AnnotationプロパティからTextElementオブジェクトを取得 Dim pTextElement As ITextElement Set pTextElement = pAnnotationFeature.Annotation Dim pSymbolCollectionElement As ISymbolCollectionElement Set pSymbolCollectionElement = pTextElement 'エレメントの移動 Dim pTransform2D As ITransform2D Set pTransform2D = pTextElement pTransform2D.Move 10, 10 'アノテーションの色を変更 Dim pRGBColor As IRgbColor Set pRGBColor = pSymbolCollectionElement.Color pRGBColor.RGB = RGB(255, 0, 0) pSymbolCollectionElement.Color = pRGBColor 'アノテーションの角度を変更 Dim pTextSymbol As ITextSymbol Set pTextSymbol = pTextElement.Symbol pTextSymbol.Angle = 90 pTextElement.Symbol = pTextSymbol 'アノテーションの描画を更新 Dim pGraphicsContainer As IGraphicsContainer Set pGraphicsContainer = pMap pGraphicsContainer.UpdateElement pTextElement '再描画 pMxDocument.ActiveView.Refresh End Sub