ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-02-01 17:32:27  阅读:394  来源: 互联网

标签:VBA Word 一级 para 标题 Each 匹配 小秘书 排版


        本人办公室的秘书一枚。公文处理是我的日常,公文排版是我最基础的工作之一。文字排版其实是件无聊的工作,字体,字号、行距被规定得死死的,我们的工作就是识别,然后去设置。然而,这种机械式重复工作,做不得几下就腻了,我决定借助工具的辅助,帮我快速的完成工作。

        经过一番折腾,终于做出了这一版,效果是这样的:

排版助手的流程讲解:

        一、遍历选区内的每一个段落、或者直接遍历全部文档:

For Each para In Selection.Paragraphs
...
Next

For Each para In ActiveDocument.Paragraphs
...
next

        二、使用正则表达式,寻找文章中各个元素的特征(大标题、一级标题、二级标题),记录他的长度,得出它的位置,然后设置它的字体。如:

Dim RegEx一级标题, Matches一级标题 As Object
Set RegEx一级标题 = CreateObject("vbscript.regexp")
RegEx一级标题.Pattern = "^[一二三四五六七八九十]{1,3}、[^。,,]+[,,、]?[^。,,]+\s*(。|$)"

For Each para In Selection.Paragraphs
    If Matches一级标题.Count > 0 Then
        strlen = Len(Matches一级标题.Item(0).Value)
        ActiveDocument.Range(Start:=para.Range.Start, End:=para.Range.Start + strlen).Font.Name = "黑体"
    end if
next

        三、以上代码就是这个排版助手的知识核心。其中,最重要的部分,就是正则表达式的编写。它定义了你认为的“一级标题”应该是什么样子。比如我的这个匹配的模式:

"^[一二三四五六七八九十]{1,3}、[^。,,]+[,,、]?[^。,,]+\s*(。|$)"

        能够匹配以“一、”开头,中间有一个或者没有逗号,结尾为句号或者设么都没有的情况:

一、会议说明(匹配)

二、参会人员。XXX,OOO、YYY(匹配)

三、会议强调,要严格执行党内法规,坚持把纪律规矩摆在前面。(不匹配,因为有2个逗号)

        四、结束语

        第一次在CSDN上分享我自己的小知识。自己原来是学计算机的,但是工作后,在办公室做了秘书,技术荒废了好久。但是,转念一想,自己既然是学计算机的,为什么不用自己的电脑技术,为实际的工作提供助力呢?

        Word软件无疑是世界上使用最广泛的软件之一,它功能强大,但是并不是每一个人都能掌握。据我观察,普通文员掌握程度最多20%,甚至大多数文员,连手动排版都觉得困难。这是一个超级工具遍布各个角落的时代,人与人之间的差距,很大程度上,就是掌握复杂工具的能力之间的差距。

        今天这个工具,看起来只有小小几段代码,但是对一个需要每天都对公文进行排版的文员,绝对是炸弹级别的助手。如果你正好是公务员、政府两办的朋友,绝对要透彻的研究一下。

标签:VBA,Word,一级,para,标题,Each,匹配,小秘书,排版
来源: https://blog.csdn.net/hementer/article/details/122764383

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有