VBA宏命令:批量检索替换/修改word中指定多个关键词的格式内容等

发布于 2015年04月11日 更新于 2015年04月11日 

最近帮别人做一个词性词频统计工具,顺便又有一个小需求:需要在word中设置个宏命令,用来根据本地指定txt(如word.txt)中的多个词语,检索word中所有出现的词语,宏命令需要对这些词加粗/颜色/背景色或者替换成其它内容,突出高亮显示该词。打开word后,只需要按一下快捷键即可自动执行操作。

宏命令简介:即在office中可以进行批量辅助操作的工具,可通过自带的vba编写。其优点是可视化操作、不需要另外开发软件来进行一些小型且有逻辑性的批量处理需求,比较小巧方便。(不是每个需求都要搞个软件出来,效率易用很重要)

当然宏命令有缺点,功能没有一般编程语言那么强大,且因为是vb语法,写起来很dt,而且自动补全竟然还和搜狗输入法冲突,只能通过点击菜单来自动补全,对新手来说,完全没有pycharm中的流畅感。。。还好学习成本不高,研究一会儿大致就能鼓捣个功能出来。

VBA其实并不复杂,门槛比较低,刚接触这块可能会比较陌生,推荐下我的快速学习方法,直接在word中录制宏,随便执行几个操作,然后在vba里查看脚本的代码,分析一下语法,需要什么功能谷歌一下不要用百度,找找差不多代码了解下原理基本就OK了。

好了,脚本如下,有此类需求的可以拿去直接修改修改就能用了。

脚本说明:其中ActiveDocument.Path是获取doc所在的当前目录;word.txt为存放待查找的词语文件(格式为一行一个);fso为创建的对象,nr为读取txt的文本内容,vbCrLf为vb里规定的回车符+换行符,arr为词语的数组形式,UBound是取数组最大下标,玩过按键精灵的可能比较熟悉,通过arr(i)来定位每一个元素,之后执行一个for循环,设定待查找文本.Text = arr(i),wdReplaceAll全部替换成另外的格式,Selection.Find.Replacement.Font里各参数表示替换后的格式,可以是各种姿势以达到你的需求。

使用方法:直接复制到你的宏命令里,然后在word的自定义功能里,给这个宏添加个快捷键,这样就可以通过快捷键自动执行了。

我这里衍生一下,这个脚本可以衍生成一个文章的“伪原创”工具,比如同义词批量替换,反义词替换等等,只需要设定好要替换的内容。

好了,废话太多了,周末愉快~


Sub 宏1()
'
' 宏1 宏
'
'
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.opentextfile(ActiveDocument.Path + "\word.txt") '打开文件流
nr = f.readall
arr = Split(nr, vbCrLf) '分割数组

 Selection.Find.ClearFormatting
 Selection.Find.Replacement.ClearFormatting
 With Selection.Find.Replacement.Font
 .Bold = True
 .Color = wdColorRed
 End With

Dim i As Long
For i = 0 To UBound(arr)
 With Selection.Find
 .Text = arr(i)
 .Replacement.Text = ""
 .Forward = True
 .Wrap = wdFindContinue
 .Format = True
 .MatchCase = False
 .MatchWholeWord = False
 .MatchByte = True
 .MatchWildcards = False
 .MatchSoundsLike = False
 .MatchAllWordForms = False
 End With

Selection.Find.Execute Replace:=wdReplaceAll
Next

Set fso = Nothing
Set f = Nothing

End Sub

看了此文的人貌似还看了这些:

  • excel中批量添加带图片批注的vba宏命令 2015-06-04
  • 斗牛http状态码批量查询工具 V3.0(支持多级查询,全网首发URL跳转次数、跳转情况查询、首次/最终着陆页查询) 2013-10-03
  • 西祠推广小精灵V1.29(帖子监控、发回贴、一键顶贴、群发飞语、版块采集、在线人数查看)-by simon 2013-09-18
  • 斗牛SERP标题描述预览工具V2.0(一键生成title描述预览,标题写的好不好,预览先知道) 2013-10-22
  • 多平台Web页面兼容性测试工具 -by simon 2013-09-29
  • 斗牛百度指数批量查询工具V3.3(支持多关键词批量查询、多账号cookies提取功能等等) 2014-01-02
  • 斗牛页面URL一键提取器V3.1(支持正则、多页面采集,简单、快捷) 2013-11-04
  • 一键同步修改电脑系统时间V1.1软件 By Simon 2013-09-07
  • 关于SEO工具反馈 2013-10-27
  • 斗牛关键词排名批量查询工具V7.1(支持百度、360,免费无查询限制,一次查询N万,支持多站点竞争对手查询及智能延时) 2013-09-22
  • 1 Comments For This Post

    1. 威客兼职 Says:

      赞一个!

    发表评论

    Time limit is exhausted. Please reload CAPTCHA.

       我相信你,不会发广告!

    斗牛SEO工具