伙伴云客服论坛»论坛 S区 S产品资讯 查看内容

0 评论

0 收藏

分享

小秘书的福音——使用Word VBA打造自动排版工具

自己办公室的秘书一枚。公文处置是我的日常,公文排版是我最根底的工作之一。文字排版其实是件无聊的工作,字体,字号、行距被规定得死死的,我们的工作就是识别,然后去设置。然而,这种机械式反复工作,做不得几下就腻了,我决定借助工具的辅助,帮我快速的完成工作。
        经过一番折腾,终于做出了这一版,效果是这样的:
小秘书的福音——使用Word VBA打造自动排版工具-1.gif


排版助手的流程讲解:
        一、遍历选区内的每一个段落、或者直接遍历全部文档:
  1. For Each para In Selection.Paragraphs
  2. ...
  3. Next
  4. For Each para In ActiveDocument.Paragraphs
  5. ...
  6. next
复制代码
       二、使用正则表达式,寻找文章中各个元素的特征(大标题、一级标题、二级标题),记录他的长度,得出它的位置,然后设置它的字体。如:
  1. Dim RegEx一级标题, Matches一级标题 As Object
  2. Set RegEx一级标题 = CreateObject("vbscript.regexp")
  3. RegEx一级标题.Pattern = "^[一二三四五六七八九十]{1,3}、[^。,,]+[,,、]?[^。,,]+\s*(。|$)"
  4. For Each para In Selection.Paragraphs
  5.     If Matches一级标题.Count > 0 Then
  6.         strlen = Len(Matches一级标题.Item(0).Value)
  7.         ActiveDocument.Range(Start:=para.Range.Start, End:=para.Range.Start + strlen).Font.Name = "黑体"
  8.     end if
  9. next
复制代码
       三、以上代码就是这个排版助手的知识核心。其中,最重要的部分,就是正则表达式的编写。它定义了你认为的“一级标题”应该是什么样子。比如我的这个匹配的形式:
  1. "^[一二三四五六七八九十]{1,3}、[^。,,]+[,,、]?[^。,,]+\s*(。|$)"
复制代码
       可以匹配以“一、”开头,中间有一个或者没有逗号,结尾为句号或者设么都没有的情况:
一、会议说明(匹配)
二、参会人员。XXX,OOO、YYY(匹配)
三、会议强调,要严格执行党内法规,坚持把纪律规矩摆在前面。(不匹配,因为有2个逗号)
        四、完毕语
        第一次在网站上分享我自己的小知识。自己原来是学计算机的,但是工作后,在办公室做了秘书,技术荒废了好久。但是,转念一想,自己既然是学计算机的,为什么不用自己的电脑技术,为实际的工作提供助力呢?
        Word软件无疑是世界上使用最广泛的软件之一,它功能强大,但是并不是每一个人都能掌握。据我观察,普通文员掌握水平最多20%,甚至大多数文员,连手动排版都觉得困难。这是一个超级工具普及各个角落的时代,人与人之间的差距,很大水平上,就是掌握复杂工具的才干之间的差距。
        今天这个工具,看起来只要小小几段代码,但是对一个需要每天都对公文停止排版的文员,绝对是炸弹级别的助手。假设你正好是公务员、政府两办的朋友,绝对要透彻的研究一下。

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

脱又极端
注册会员
主题 15
回复 17
粉丝 0
|网站地图
快速回复 返回顶部 返回列表