小秘书的福音——使用Word VBA打造自动排版工具
????????本人辦公室的秘書一枚。公文處理是我的日常,公文排版是我最基礎(chǔ)的工作之一。文字排版其實是件無聊的工作,字體,字號、行距被規(guī)定得死死的,我們的工作就是識別,然后去設(shè)置。然而,這種機械式重復(fù)工作,做不得幾下就膩了,我決定借助工具的輔助,幫我快速的完成工作。
????????經(jīng)過一番折騰,終于做出了這一版,效果是這樣的:
?
排版助手的流程講解:
????????一、遍歷選區(qū)內(nèi)的每一個段落、或者直接遍歷全部文檔:
For Each para In Selection.Paragraphs ... NextFor Each para In ActiveDocument.Paragraphs ... next????????二、使用正則表達式,尋找文章中各個元素的特征(大標題、一級標題、二級標題),記錄他的長度,得出它的位置,然后設(shè)置它的字體。如:
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????????三、以上代碼就是這個排版助手的知識核心。其中,最重要的部分,就是正則表達式的編寫。它定義了你認為的“一級標題”應(yīng)該是什么樣子。比如我的這個匹配的模式:
"^[一二三四五六七八九十]{1,3}、[^。,,]+[,,、]?[^。,,]+\s*(。|$)"????????能夠匹配以“一、”開頭,中間有一個或者沒有逗號,結(jié)尾為句號或者設(shè)么都沒有的情況:
一、會議說明(匹配)
二、參會人員。XXX,OOO、YYY(匹配)
三、會議強調(diào),要嚴格執(zhí)行黨內(nèi)法規(guī),堅持把紀律規(guī)矩擺在前面。(不匹配,因為有2個逗號)
????????四、結(jié)束語
? ? ? ? 第一次在CSDN上分享我自己的小知識。自己原來是學(xué)計算機的,但是工作后,在辦公室做了秘書,技術(shù)荒廢了好久。但是,轉(zhuǎn)念一想,自己既然是學(xué)計算機的,為什么不用自己的電腦技術(shù),為實際的工作提供助力呢?
????????Word軟件無疑是世界上使用最廣泛的軟件之一,它功能強大,但是并不是每一個人都能掌握。據(jù)我觀察,普通文員掌握程度最多20%,甚至大多數(shù)文員,連手動排版都覺得困難。這是一個超級工具遍布各個角落的時代,人與人之間的差距,很大程度上,就是掌握復(fù)雜工具的能力之間的差距。
????????今天這個工具,看起來只有小小幾段代碼,但是對一個需要每天都對公文進行排版的文員,絕對是炸彈級別的助手。如果你正好是公務(wù)員、政府兩辦的朋友,絕對要透徹的研究一下。
總結(jié)
以上是生活随笔為你收集整理的小秘书的福音——使用Word VBA打造自动排版工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并行计算总结
- 下一篇: logistic模型预测人口python