wokao98 发表于 2012-1-3 23:39:54

如何用WORD.AU3获取WORD中的蓝色字体文本呢?

大家好,小弟看了下WORD.AU3的_WordDocFindReplace 函数,没有按颜色来搜索的。
好像C#和VBA都是通过对象模型来获取的。AU3应该怎么做呢?谢谢各位。

80ren 发表于 2012-1-4 09:03:47

对WORD相关操作不熟悉,帮顶

epac 发表于 2012-1-5 09:06:45

不懂帮顶,

kevinch 发表于 2012-1-5 17:42:48

$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改写了一下录制的宏,加了点注释,希望对楼主有帮助

fastidium 发表于 2012-1-5 18:01:24

回复 4# kevinch


    牛人啊!!调用宏来完成,太好了!!!
   我思考半天,也没有想到有什么方法可以做到颜色查找,学习,感谢!

itljl 发表于 2012-1-6 21:22:07

回复 4# kevinch


    学习了。

零度深蓝 发表于 2012-1-6 23:10:01

不错,研究学习下
页: [1]
查看完整版本: 如何用WORD.AU3获取WORD中的蓝色字体文本呢?