小秘书的福音——使用Word VBA打造自动排版工具
????????本人辦公室的秘書一枚。公文處理是我的日常,公文排版是我最基礎的工作之一。文字排版其實是件無聊的工作,字體,字號、行距被規定得死死的,我們的工作就是識別,然后去設置。然而,這種機械式重復工作,做不得幾下就膩了,我決定借助工具的輔助,幫我快速的完成工作。
????????經過一番折騰,終于做出了這一版,效果是這樣的:
?
排版助手的流程講解:
????????一、遍歷選區內的每一個段落、或者直接遍歷全部文檔:
For Each para In Selection.Paragraphs ... NextFor 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.ParagraphsIf Matches一級標題.Count > 0 Thenstrlen = 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%,甚至大多數文員,連手動排版都覺得困難。這是一個超級工具遍布各個角落的時代,人與人之間的差距,很大程度上,就是掌握復雜工具的能力之間的差距。
????????今天這個工具,看起來只有小小幾段代碼,但是對一個需要每天都對公文進行排版的文員,絕對是炸彈級別的助手。如果你正好是公務員、政府兩辦的朋友,絕對要透徹的研究一下。
總結
以上是生活随笔為你收集整理的小秘书的福音——使用Word VBA打造自动排版工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并行计算总结
- 下一篇: 51单片机毕业设计题目大全