概要 - 属性定義を編集する(VBA/ActiveX)

Attribute オブジェクトのプロパティとメソッドを使用して、属性を編集することができます。

属性のプロパティには、次のものがあります。

Alignment
属性の水平および垂直位置合わせを指定します。
Backward
属性文字の方向を指定します。
FieldLength
属性のフィールド長を指定します
Height
属性の高さを指定します。
InsertionPoint
属性の挿入点を指定します。
Mode
属性のモードを指定します。
PromptString
属性のプロンプト文字列を指定します。
Rotation
属性の回転角度を指定します。
ScaleFactor
属性の尺度係数を指定します。
TagString
属性のタグ文字列を指定します。

属性の編集に使用できるメソッドには、次のものがあります。

ArrayPolar
円形状配列を作成します。
ArrayRectangular
矩形状配列複写を作成します。
Copy
属性をコピーします。
Erase
属性を削除します。
Mirror
属性を鏡像化します。
Move
属性を移動します。
Rotate
属性を回転します。
ScaleEntity
属性の尺度を設定します。

属性を再定義する

次の例では、ブロックを作成し、そのブロックに属性を追加します。次に、ブロックを図面に挿入します。次に、属性文字を逆方向で表示するよう更新します。

Sub Ch10_RedefiningAnAttribute()
 ' Define the block
 Dim blockObj As AcadBlock
 Dim insertionPnt(0 To 2) As Double
 insertionPnt(0) = 0
 insertionPnt(1) = 0
 insertionPnt(2) = 0
 Set blockObj = ThisDrawing.Blocks.Add _
 (insertionPnt, "BlockWithAttribute")
 
 ' Add an attribute to the block
 Dim attributeObj As AcadAttribute
 Dim height As Double
 Dim mode As Long
 Dim prompt As String
 Dim insertionPoint(0 To 2) As Double
 Dim tag As String
 Dim value As String
 height = 1
 mode = acAttributeModeVerify
 prompt = "New Prompt"
 insertionPoint(0) = 5
 insertionPoint(1) = 5
 insertionPoint(2) = 0
 tag = "New Tag"
 value = "New Value"
 Set attributeObj = blockObj.AddAttribute(height, mode, _
 prompt, insertionPoint, tag, value)
 ' Insert the block, creating a block reference
 ' and an attribute reference
 Dim blockRefObj As AcadBlockReference
 insertionPnt(0) = 2
 insertionPnt(1) = 2
 insertionPnt(2) = 0
 Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
 (insertionPnt, "BlockWithAttribute", 1#, 1#, 1#, 0)
 
 ' Redefine the attribute text to display backwards.
 attributeObj.Backward = True
 attributeObj.Update
End Sub