雷群泌
(湖南環境生物職業技術學院,湖南 衡陽 421005)
Word文字處理軟件是目前世界上使用最為廣泛的辦公軟件之一。使用Word文檔最基本的操作便是對一些重要文件進行編輯和排版,例如公文、論文、標書以及項目申報書等,這類文件對排版有很多非常嚴格的規范和要求。以公文為例,2012年4月中共中央辦公廳、國務院辦公廳聯合印發了《黨政機關公文處理工作條例》,隨后國家質量監督檢驗檢疫總局和國家標準化管理委員會又聯合發布了《黨政機關公文格式》國家標準,從制度和標準的角度對我國黨政機關、企事業單位使用公文的規范提出了要求,該標準成為目前我國廣大文秘工作者處理公文的根本遵循。對文秘工作者來說,按照公文格式要求對文檔進行排版并不難,麻煩的是要用手工排版的方式對大量機械重復的公文格式進行編輯,采用手工排版不僅費時費力、效率低下,而且還容易出錯,不能保證排版的質量,從而會影響公文處理的效果。
與手工排版方法相對應的是自動排版方法。顯然,可以開發專門的排版軟件來實現對文檔的自動排版,但是對于廣大普通用戶來說,這既不經濟,也不現實。因此,有必要開發經濟適用且適合普通用戶使用的自動排版方法;其中比較有效的1種方法是使用Word VBA或宏技術,已經有一些學者對該方法進行了初步研究。
文獻[1]研究了通過VBA平臺來限制和規范文檔編輯的過程,避免在文檔編輯的過程中因人為因素而導致出現不規范和錯誤的操作,有效地降低了手工編輯的出錯幾率和查錯糾錯的工作量,極大地提高了文檔編輯的效率。文獻[2]針對期刊編輯日常工作中需要完成大量重復的工作,使用Word VBA開發了一些編輯加工功能,可以快速形成格式規范稿件,提高了期刊的編輯質量。文獻[3]則利用VBA編程解決了Word 2010中對藏文進行排版時存在無法對齊左右邊界的問題,實現了藏文文檔排版的規范化。文獻[4]針對高校畢業論文復雜的排版要求,利用Word宏代碼和Delphi語言開發了論文自動排版系統,實現了對畢業論文的自動排版。由于公文是1種應用非常廣泛的重要文書,要起草和編輯公文就離不開排版,特別是對于廣大文秘工作者來說,按要求對公文進行排版和格式審核已經成為1項頗費精力的重要工作。但是,目前對按照最新公文格式規范要求進行自動排版的技術的研究還非常有限。
按照《黨政機關公文處理工作條例》和《黨政機關公文格式》國家標準的要求,并結合筆者單位的實際情況,公文格式總體上包括以下4個方面。
上邊距為3.0 cm,下邊距為3.0 cm,左邊距為2.5 cm,右邊距為2.4 cm;使用A4紙,寬度為21.0 cm,高度為29.7 cm;頁眉頁腳奇偶頁不同、首頁不同,頁眉距邊界1.5 cm,頁腳距邊界2.2 cm;指定行與字符網格,每行28個字符數,每頁22行。
公文標題為二號方正小標宋簡體;正文內容為三號仿宋_GB2312;正文一級標題為三號黑體;二級標題為三號楷體_GB2312;三級標題為三號仿宋_GB2312;西文字體為Times New Roman。
公文的標題設置為居中對齊,無首行縮進,段前、段后間距為0行,行距為固定值32磅;公文正文部分設置為兩端對齊,首行縮進2字符,段前、段后間距為0行,行距為固定值30磅;所有段落取消孤行控制。
頁碼使用阿拉伯數字左右各加1條一字線,字體為四號宋體;其中,奇數頁的頁碼在頁面底端的右側,偶數頁的頁碼在頁面底端左側,首頁不顯示頁碼。
VBA是Visual Basic for Applications的簡稱,也就是通常所講的新一代標準宏語言,它是1種基于Visual Basic的程序設計語言,通過嵌入到Office辦公軟件中,實現對Office辦公軟件的控制、功能擴展和定制。VBA以面向對象的方式提供了文檔對象Document、頁面設置對象Pagesetup、段落對象Paragraph以及字體對象Font等很多對象,文檔編輯工作者只需要按照具體的排版要求定義好這些對象的屬性和方法,就可以完成對文檔的排版,即通過VBA編程,將排版要求代碼化,并嵌入到Word模板中,那么當要對文檔進行排版時,只需要執行該VBA程序,就可以完成對Word文檔的自動排版。
3.2.1 進入VBA編程環境
VBA的使用門檻不高,之所以沒有任何編程基礎的人也可以快速掌握VBA,是因為Word內置了1個Visual Basic程序編輯器,可以通過創建宏的方式打開該編輯器,該編輯器便是VBA程序的開發工具,使用它不僅可以編寫VBA程序,還可以對VBA程序進行調試。
單擊Word 2010“視圖”選項卡下面的“宏”命令按鈕,彈出“宏”對話框,如圖1所示,在“宏名”下面的編輯框中輸入宏名稱“公文排版”,選擇“宏的位置”中的“所有活動模板和文檔”,再單擊“創建”按鈕就可以創建1個宏,同時打開Visual Basic編輯器,在該編輯器中可以看到已經創建了1個VBA過程“Sub 公文排版()”,如圖2所示。

圖1 宏對話框
3.2.2 公文格式的代碼化
由于Word VBA是以宏的形式來實現的,因此可以通過錄制宏的方式來實現從公文編輯到VBA代碼的轉化,再到Visual Basic編輯器中對代碼進行適當修改,就可以快速地完成對VBA自動排版程序的編寫。以頁面設置為例,按照公文格式要求,在對頁面設置的同時同步錄制宏,就可以創建1個“公文排版_頁面設置()”的VBA過程,具體代碼如下。


在上述代碼中,PageSetup是VBA提供的頁面設置對象,該對象具有很多屬性,例如TopMargin、BottomMargin分別表示頁面設置操作中的上邊距和下邊距,通過定義這些屬性就可以完成對頁面中頁邊距、紙張、版式以及文檔網格等的設置。按照同樣的方法,可以對公文格式對字體、段落等其他方面的要求一一轉換成VBA代碼,從而實現公文格式排版要求的代碼化。其中,插入頁碼的操作相對比較復雜,需要考慮奇、偶數頁頁碼的差異,具體程序流程如圖3所示。
要通過運行1次VBA程序完成所有排版格式的自動設置,還需要把前面實現的頁面設置、字體設置以及段落設置等VBA過程全部設置為“Sub 公文排版()”這個過程的子過程,這樣排版時只需要執行“Sub 公文排版()”,所有的子過程就會依次自動執行。將其他過程設置為“Sub 公文排版()”的子過程的方法如下。


圖2 Visual Basic編輯器

圖3 插入頁碼的VBA程序流程圖
用Word 2010打開1個格式非常混亂的文檔或者使用“清除格式”功能清除文檔的所有格式;再單擊視圖選項卡下的“宏/查看宏”,選擇“公文排版”,單擊“運行”按鈕,就可以快速地完成文檔的自動排版。通過對比,發現該方法已經自動按照公文格式要求完成了對文檔頁面、字體、段落以及頁碼的設置,特別是對文章標題、正文中標題(一級標題、二級標題和三級標題)以及正文其他內容的字體、字號、首行縮進、對齊方式、段間距和行間距等參數的設置也都滿足公文格式的要求,該方法不僅排版效率高,而且排版效果也非常好。實驗表明,該文提出的自動排版方法是可行、有效的。
該文提出的Word VBA自動排版方法有效地實現了公文自動排版,極大地提升了文檔編輯的效率,對其進行推廣應用有利于減少文秘工作者對于公文進行格式編輯的工作量,可以把工作重心和主要精力集中到對公文內容的審核,從而提高公文處理工作和公文的質量。