Word技巧雜記(二)——批量修改修訂格式並接受


今天的題目好奇怪啊,呵呵,起因如下:

今天老婆在修改論文,她的老板提出一個非常**的要求——把Word中所有修訂后的文字用特殊的字體(藍色)標出來,然后再接受修訂。我勒個去,明明有修訂后的模式啊,為什么還要這么做,簡直就是變態。我只能說,中國人的想法真TMD奇怪,每天都在做浪費時間的事情。

哎,老婆既然提出來了,作為一個程序員,怎能不滿足老婆的各種無理要求呢?於是有了今天這篇小文章(和馬伊琍沒有關系哦~~~)

這種批量修改的問題一般來說有兩種方案,一是看Word有沒有提供相應的功能(主要是用樣式),Google了一圈,發現沒有。於是只能展開第二方案,也就是我們的老本行——編程。對於Word編程,其實筆者不是很熟悉,但是有一個基本的思路:

1.找到修訂部分

2.更改格式

這不是純屬廢話嗎,其實也不盡然。雖然筆者自己不會VBA,但是Word自身確是會自己給自己寫程序呢(這算不算元編程?),這個功能就是大名鼎鼎的“錄制宏”,使用該功能后,就能看到VBA的腳本是如何編寫的了吧。說干就干:

1)首先在工具欄上加載“審閱工具”,這一步主要是考慮之后錄制的方便

2)接下來錄制宏:“工具->宏->錄制新宏”,填好相應的參數(包括宏的名字啊,快捷鍵啊等等一系列內容)

3)好了,此時千萬不要做其他的操作了,點擊“審閱工具”中的“后一處修訂或批注”,待選中插入部分的字符后,修改字體顏色,最后接受修訂

4)一氣呵成之后,停止錄宏

此時,打開剛才編輯好的宏(“工具->宏->宏”)

在“宏名”處搜索剛才錄入的宏名,選中之后,點右側的編輯

就會打開錄制好的程序了。

Sub Macro1()    WordBasic.NextChangeOrComment
    Selection.Font.Color = wdColorBlue
    Selection.Range.Revisions.AcceptAll
    WordBasic.AcceptChangesSelected
End Sub

當筆者直接運行這段代碼的時候,執行到最后一步總是報錯。由於沒時間仔細琢磨,而且這只是給老婆應急的,所以狠狠心,直接刪掉了。這樣一來就不在報錯了,而且完全滿足了老婆大人的需求。提交給老婆大人的最終代碼如下:

Sub Macro1()
    WordBasic.NextChangeOrComment
    Selection.Font.Color = wdColorBlue
    Selection.Range.Revisions.AcceptAll
End Sub

【后記】目前這個程序只能單步運行,無法批量搞定整篇文檔的內容。我的想法是如果WordBasic.NextChangeOrComment能夠返回一個boolean,那就能使用While循環來做了,可是事實上這個函數好像不返回,查找了半天,網上也沒有一些說法。好在用戶對這個程序已經非常滿意了,不過還是在此留一個懸念吧,如果以后有機會再仔細研究。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM