浪迹天涯追月 发表于 2015-1-12 15:43:32

VBA如何将多行文字转为大小相同的单行文字

本帖最后由 浪迹天涯追月 于 2015-1-14 11:46 编辑

   多行文本击碎后, 我需要它完美的和原图形重合 ,包括图层颜色都不变   
问题1 :炸碎方法,vba 如何调用explode 击碎多行文字 ? 击碎后文字的定位点可能会变 ,调整定位点后 ,文字的位置会变
问题2 :删除重生方法, 重新生成文字 但它的宽度因子 无法从原多行文字那里得到信息 , 有什么办法可以得到么?调整定位点后它的位置也是会变的,如何才能一模一样的?   请高手出招啊。。。。。。。

zzyong00 发表于 2015-1-12 21:34:34

宽度因子不是width属性吗?
多测试一下以下两个属性,会有结果的
InsertionPoint
AttachmentPoint (mtext)/Alignment (text)

浪迹天涯追月 发表于 2015-1-14 08:36:21

zzyong00 发表于 2015-1-12 21:34 static/image/common/back.gif
宽度因子不是width属性吗?
多测试一下以下两个属性,会有结果的
InsertionPoint


谢谢支招 ,发帖前都已经测试好几天了....width是多行文本的宽度属性,并非构成多行文本的文字的宽度因子 。有空接着测试吧 先忙别的

zzyong00 发表于 2015-1-14 10:24:42

浪迹天涯追月 发表于 2015-1-14 08:36 static/image/common/back.gif
谢谢支招 ,发帖前都已经测试好几天了....width是多行文本的宽度属性,并非构成多行文本的文字的宽度因子 ...


Public Sub ss()
Dim objMT As AcadMText, pnt(2) As Double
Set objMT = ThisDrawing.ModelSpace.AddMText(pnt, 1, "asdf")
Dim objTS As AcadTextStyle
Set objTS = ThisDrawing.TextStyles(objMT.StyleName)
Debug.Print "宽度因子:"; objTS.Width

End Sub

浪迹天涯追月 发表于 2015-1-14 11:51:20

zzyong00 发表于 2015-1-14 10:24 static/image/common/back.gif
Public Sub ss()
Dim objMT As AcadMText, pnt(2) As Double
Set objMT = ThisDrawing.ModelSpace.Ad ...

感谢支招,不过麻烦的是 , 同一种字体类型 文本使用的宽度因子有的是1 ,有的是0.8 , 并非获得样式这么简单。像上图红框框里面的, 测试结果一样, 实际上文本的宽度因子是不一样的 、

浪迹天涯追月 发表于 2015-1-14 15:56:47

谢谢 受教了

mikewolf2k 发表于 2015-1-20 09:15:32

关注下。以前也研究过类似问题,mtext里面有控制符,都不会获取文本内容。
页: [1]
查看完整版本: VBA如何将多行文字转为大小相同的单行文字