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
  • 一键同步修改电脑系统时间V1.1软件 By Simon 2013-09-07
  • 斗牛SEO工具VIP版V11.1已发布 – SEOer的瑞士军刀! 2014-05-17
  • 斗牛爱站关键词采集/长尾词挖掘工具V4.0发布!(支持多站点,多关键词批量获取) 2013-10-08
  • 斗牛NLPIR中文分词工具V1.1 – 支持目录级文件的批量分词、新词识别 2014-05-19
  • 西祠推广小精灵V1.29(帖子监控、发回贴、一键顶贴、群发飞语、版块采集、在线人数查看)-by simon 2013-09-18
  • 关于SEO工具反馈 2013-10-27
  • 斗牛谷歌PR/搜狗SR/爱站/站长/百度权重批量查询工具V3.0 (支持万级量的URL查询) 2013-09-29
  • 多平台Web页面兼容性测试工具 -by simon 2013-09-29
  • 斗牛SERP标题描述预览工具V2.0(一键生成title描述预览,标题写的好不好,预览先知道) 2013-10-22
  • 1 Comments For This Post

    1. 威客兼职 Says:

      赞一个!

    发表评论

    Time limit is exhausted. Please reload CAPTCHA.

       我相信你,不会发广告!

    斗牛SEO工具