如何用WORD.AU3获取WORD中的蓝色字体文本呢?
大家好,小弟看了下WORD.AU3的_WordDocFindReplace 函数,没有按颜色来搜索的。好像C#和VBA都是通过对象模型来获取的。AU3应该怎么做呢?谢谢各位。 对WORD相关操作不熟悉,帮顶 不懂帮顶, $wordapp=ObjGet("","word.application")
If IsObj($wordapp) Then
;ConsoleWrite("找到word进程"&@CRLF)
If $wordapp.documents.count>0 then
;ConsoleWrite("有打开的文档"&@CRLF)
$wordapp.activedocument.range.select;这里设置要查找的文件块位置,本例全选整个文档内容
;MsgBox(0,"","全选文档")
With $wordapp.selection.find;在活动文档中查找
.clearformatting;先清空一下原来的查找设置
.font.color=-553582593;在这里修改查找的颜色值,可以在word中的vba编辑器的立即窗口查询一下颜色值
.Text = "";要查找的文本内容,本例置为空是因为是要查找的是蓝色字体的
.Replacement.Text = "" ;替换文字(查找与替换是同一功能的不同用法)
.Forward = True;向下查找
.Wrap = 0 ;到末尾后是否返回头部再查找
.Format = True ;查找格式(查找颜色的话本项一定要是true)
.MatchCase = False ;匹配大小写
.MatchWholeWord = False;匹配整个单词
.MatchByte = True;依字节匹配
.MatchWildcards = False;匹配全角字符
.MatchSoundsLike = False;匹配同音字
.MatchAllWordForms = False ;这个不太明白啦
do;循环执行
$again=.execute;将查找结果逻辑值返回给变量
If $again Then ConsoleWrite(.parent.range.text&@CRLF) ;如果有找到就输出当前找到的字符内容
Until $again=False;当未找到时退出循环
EndWith
EndIf
$wordapp=0
EndIf改写了一下录制的宏,加了点注释,希望对楼主有帮助 回复 4# kevinch
牛人啊!!调用宏来完成,太好了!!!
我思考半天,也没有想到有什么方法可以做到颜色查找,学习,感谢! 回复 4# kevinch
学习了。 不错,研究学习下
页:
[1]