概要 - 1 行文字を位置合わせする(VBA/ActiveX)

1 行文字を左右および上下に位置合わせすることができます。左寄せが既定です。水平および垂直位置合わせオプションを設定するには、Alignment プロパティを使用します。

1 行文字を位置合わせする

次の例は、Text オブジェクトと Point オブジェクトを作成します。Point オブジェクトを文字の位置合わせ点に設定し、見やすくなるよう赤の十字形に変更します。文字の位置合わせを変更し、マクロの実行が中止されるようにメッセージ ボックスを表示します。このようにすることで、文字の位置合わせの変更による影響を確認することができます。

Sub Ch4_TextAlignment()
  Dim textObj As AcadText
  Dim textString As String
  Dim insertionPoint(0 To 2) As Double
  Dim height As Double

  ' Define the new Text object
  textString = "Hello, World."
  insertionPoint(0) = 3
  insertionPoint(1) = 3
  insertionPoint(2) = 0
  height = 0.5

  ' Create the Text object in model space
  Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)

  ' Create a point over the text alignment point,
  ' so we can better visualize the alignment process
  Dim pointObj As AcadPoint
  Dim alignmentPoint(0 To 2) As Double
  alignmentPoint(0) = 3
  alignmentPoint(1) = 3
  alignmentPoint(2) = 0
  Set pointObj = ThisDrawing.ModelSpace.AddPoint(alignmentPoint)
  pointObj.Color = acRed

  ' Set the point style to crosshair
  ThisDrawing.SetVariable "PDMODE", 2

  ' Align the text to the Left
  textObj.Alignment = acAlignmentLeft
  ThisDrawing.Regen acActiveViewport
  MsgBox "The Text object is now aligned left"

  ' Align the text to the Center
  textObj.Alignment = acAlignmentCenter

  ' Align the text to the point (necessary for
  ' all but left aligned text.)
  textObj.TextAlignmentPoint = alignmentPoint

  ThisDrawing.Regen acActiveViewport
  MsgBox "The Text object is now centered"

  ' Align the text to the Right
  textObj.Alignment = acAlignmentRight
  ThisDrawing.Regen acActiveViewport
  MsgBox "The Text object is now aligned right"
End Sub