明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2226|回复: 13

清除CAD多行文字所有格式-(VBA)

[复制链接]
发表于 2018-12-13 15:11 | 显示全部楼层 |阅读模式
  1. Private Sub SelectAllText(ByVal App As Object, objSset As Object, Optional ByVal strSsetname As String = "SELECTION~TEXT~1111")
  2.     On Error GoTo err1
  3.     Dim flag As Boolean
  4.     flag = False
  5.     For Each objSset In App.SelectionSets
  6.         If objSset.Name = strSsetname Then
  7.             flag = True
  8.             Exit For
  9.         End If
  10.     Next
  11.     If flag Then objSset.Delete      '创建集合,如集存在,则删除,再新建
  12.     Set objSset = App.SelectionSets.Add(strSsetname)
  13.     Dim gpCode(0) As Integer
  14.     Dim dataValue(0) As Variant
  15.     gpCode(0) = 0
  16.     dataValue(0) = "text,mtext"
  17.     Dim groupCode As Variant, dataCode As Variant
  18.     groupCode = gpCode
  19.     dataCode = dataValue
  20.     objSset.SelectOnScreen groupCode, dataCode
  21.     Exit Sub
  22. err1:
  23.     Debug.Print Err.Description
  24.     Err.Clear
  25. End Sub

  26. Sub TT()
  27.     Dim tstr As String, objSset As Object, objtrans As Object, reg As RegExp, objEntArr As New Collection, i As Integer, j As Integer
  28.     Set Acdoc = AcadApplication.ActiveDocument
  29.     SelectAllText Acdoc, objSset
  30.     Set reg = CreateObject("Vbscript.RegExp")
  31.     For i = 0 To objSset.Count - 1
  32.         tstr = objSset.Item(i).TextString
  33.         Debug.Print tstr
  34.         reg.IgnoreCase = False
  35.         reg.Global = True
  36.         '替换\\字符
  37.         reg.Pattern = "\\\"
  38.         tstr = reg.Replace(tstr, Chr(1))
  39.         '替换\{字符
  40.         reg.Pattern = "\\{"
  41.         tstr = reg.Replace(tstr, Chr(2))
  42.         '替换\}字符
  43.         reg.Pattern = "\\}"
  44.         tstr = reg.Replace(tstr, Chr(3))
  45.         '删除段落缩进格式
  46.         reg.Pattern = "\\pi(.[^;]*);"
  47.         tstr = reg.Replace(tstr, "")
  48.         '删除制表符格式
  49.         reg.Pattern = "\\pt(.[^;]*);"
  50.         tstr = reg.Replace(tstr, "")
  51.         '删除堆迭格式
  52.         reg.Pattern = "\\S(.[^;]*)(\^|#|\\)(.[^;]*);"
  53.         tstr = reg.Replace(tstr, "")
  54.         '删除字体、颜色、字高、字距、倾斜、字宽、对齐格式
  55.         reg.Pattern = "(\\F|\\f|\\C|\\H|\\T|\\Q|\\W|\\A)(.[^;]*);"
  56.         tstr = reg.Replace(tstr, "")
  57.         '删除下划线、删除线格式
  58.         reg.Pattern = "(\\L|\\O|\\l|\\o)"
  59.         tstr = reg.Replace(tstr, "")
  60.         '删除不间断空格格式
  61.         reg.Pattern = "\\~"
  62.         tstr = reg.Replace(tstr, "")
  63.         '删除换行符格式
  64.         '.Pattern = "\\P"
  65.         '.Replace tstr, "\r\n"
  66.         '删除{}
  67.         reg.Pattern = "({|})"
  68.         tstr = reg.Replace(tstr, "")
  69.         '替换回\\,\{,\}字符
  70.         reg.Pattern = "\x01"
  71.         tstr = reg.Replace(tstr, "")
  72.         reg.Pattern = "\x01"
  73.         tstr = reg.Replace(tstr, "{")
  74.         reg.Pattern = "\x01"
  75.         tstr = reg.Replace(tstr, "}")
  76.     Next i
  77.     Debug.Print tstr
  78. End Sub



 楼主| 发表于 2018-12-14 09:15 | 显示全部楼层
mikewolf2k 发表于 2018-12-14 09:11
清理格式符号那段的确很像以前网上发布的代码,值得一提的是,那段代码有一处错误,我修正了。

我在论坛搜了,用了还是出现错误
发表于 2018-12-14 09:11 | 显示全部楼层
fangmin723 发表于 2018-12-14 08:10
难道版主以前写过???

清理格式符号那段的确很像以前网上发布的代码,值得一提的是,那段代码有一处错误,我修正了。
 楼主| 发表于 2018-12-14 09:18 | 显示全部楼层
zzyong00 发表于 2018-12-13 17:40
看着太熟悉了。。。

论坛里面确实有一个,但是有错误,我就把我之前收集的发上来了!

点评

也发现了啊,握个爪~  发表于 2018-12-14 09:31
发表于 2018-12-13 17:40 | 显示全部楼层
看着太熟悉了。。。
 楼主| 发表于 2018-12-14 08:10 | 显示全部楼层
zzyong00 发表于 2018-12-13 17:40
看着太熟悉了。。。

难道版主以前写过???

点评

感觉在本论坛看到过类似代码  发表于 2018-12-14 08:56
发表于 2020-8-4 18:36 | 显示全部楼层
多谢楼主分享源码
发表于 2021-6-4 16:48 | 显示全部楼层
这个源码应该是一本书上的,前几天看到过
发表于 2021-11-13 15:45 | 显示全部楼层
群主你们说的错误修改好了吗
发表于 2021-11-14 15:43 | 显示全部楼层
这个怎么编程dvb程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 09:44 , Processed in 0.632311 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表