VBAで引き出し線付き文字を作図
お世話になっております。
VBAで引き出し線と、Mtextが別々になった引き出し線付き文字を作図する際に、
a.引き出し線の位置をマウスクリックしたら文字位置は自動で決定するようにしたい
b.文字はMtextで左上を文字の基準点とする
c.引き出し線の上に文字が1行で、2行目以降は文字は引き出し線の下にしたい
という条件にしたいのですが、文字のY座標の補正がうまくできません。
教えていただきたい内容は
1.異尺度対応を「いいえ」に設定するコード
2.段組みを「なし」に設定するコード
3.Y座標を補正するコード
で、特に3です。
Y座標補正をしようとしても、ずれてしまいうまくいきません。
どのようにすればよいか教えていただきたいです。
※文字スタイルは存在していて同じもので作図していますが、行間隔分の補正の式がわからずうまくできませんでした。
With oMText
If MTextStyleCheck("TEXT-MSPG") = True Then
.styleName = "TEXT-MSPG" ' 文字スタイルをTEXT-MSPGに設定
End If
' .Annotative = gcAnnotativeNo ' 異尺度対応(Annotative)を「いいえ」に設定
.AttachmentPoint = gcAttachmentPointTopLeft ' 位置合わせ(Justify)を左上に設定
.Width = 0 '定義幅
If Sansyoflg = True Then
'参考図の場合
.Height = 2.5 '文字の高さ
Else
.Height = 3.6
End If
.Rotation = 0 ' 回転角度
.LineSpacingFactor = 0.9 ' 行間幅の尺度
If Sansyoflg = True Then
'施工図の場合
.LineSpacingDistance = 3.75 ' 行間幅の距離
Else
.LineSpacingDistance = 5.4
End If
.LineSpacingStyle = gcLineSpacingStyleAtLeast ' 行間隔のスタイル(最小)
.BackgroundFill = False ' 背景マスク
'ColumnType = gcNoColumns ' 段組み なし
'.Frame = False ' 文字枠(IJCADは未サポートのためコメントアウト)
End With
arr_dPos(1) = arr_dPoints(UBound(arr_dPoints) - 1) + oMText.Height
' 補正した座標へMoveメソッドで移動
Dim basePoint As Variant, targetPoint As Variant
basePoint = oMText.InsertionPoint
targetPoint = arr_dPos
oMText.Move basePoint, targetPoint
arr_dPoints(UBound(arr_dPoints) - 1) 引き出し線のY座標
arr_dPos(1) 文字のY座標
よろしくお願いいたします。




-
3番目に関しましては、"a" & vbCrLf & "a"というような2行の文字を作成し、
GetBoundingBoxで高さを取得して割る2にすることで解決いたしました。
0
サインインしてコメントを残してください。
コメント
1件のコメント