吳文
(黃山學院 現代教育技術中心,安徽 黃山 245041)
基于ASP及VBA技術實現畢業論文格式規范自動化
吳文
(黃山學院 現代教育技術中心,安徽 黃山 245041)
畢業論文管理類的自由軟件越來越多,但結合MS Word實現論文格式在線審改功能的卻很少。文章利用VBA技術,展示對于Word文檔的文本格式自動化審改的思路、方法與關鍵代碼。
VBA;畢業論文在線管理;格式規范自動化
畢業論文的管理是一項極其繁瑣的系統性的工程,隨著計算機技術和網絡技術的普及與發展,高校已基本在一定程度上實現了畢業論文的計算機管理或網絡化管理,顯著提高了畢業論文管理的效率,釋放了管理人員大量的精力與時間。原本紙質材料的交流轉化為電子文檔的交流,如論文撰寫規范、進度安排等規定與要求的下發與收閱,都大大節約了管理成本。然而幾乎所有高校目前采用的基于計算機或網絡的論文管理系統,其設計與開發的指導思想,只是為了把畢業論文常規工作中浩繁的組織管理工作集約化和平臺化,因而呈現的主要是組織管理方面的功能,如論文選題的審定、指導任務的分配和論文成績的統計。這樣的管理系統,最終是僅僅為組織管理人員服務的,難以做到真正地全程管理。
畢業論文管理工作的主要進程是師生間的互動,具體任務是指導畢業生完成合乎規范要求的畢業論文。因此,一個好的畢業論文管理系統,必須是全過程的,也必須是多面向的。多面向是指不僅面向管理人員的組織工作,也應面向師生間的互動,面向畢業論文的規范要求,面向教師具體指導進程中的便利。畢業生(尤其是英語專業畢業生用英語)撰寫畢業論文,難免因格式不規范,給具體的指導進程帶來煩擾。最為常見的是,學生不善設置各級標題的大綱級別,因而導致目錄不能自動生成。而面向畢業論文的規范要求,面向具體指導的便利,就要求管理系統能夠實現論文格式規范性的在線審改。
畢業論文一般都是用文字處理軟件MS WORD撰寫,該軟件具有可定制性和編程開放性,可通過VBA(Visual Basic for Application)進行功能的擴展和對文檔中所含對象如字符、段落、圖表等進行編輯操控。
VBA是基于VB(Visual Basic)發展而來的,是VB的一個子集,是微軟專門針對于MS Office設計的開發語言,主要用于拓展MS Office的功能,僅由MS Office的組件如MS Word,MS Excel等稱為VBA的宿主(host)的應用程序來調用,也就是說,不能在一個獨立地環境中運行VBA,也不能使用它創建獨立的應用程序。
VBA具有其特有的對象、屬性和方法,如:Document對象用來引用一個文檔,Characters、Words、Sentences、Paragraphs等對象分別用來引用文檔中的字符、單詞、句子和段落集合,而Sections對象用來引用文檔中的節的集合,等等;各個對象都有一系列的屬性和方法,通過訪問這些屬性或調用這些方法即可實現對各個對象的操作。
畢業論文的格式規范化方面,雖然各高校各學科的規定要求不盡相同,甚或不同屆別之間也有調整和變化。但對于某一特定高校的特定學科而言,對于所有當屆畢業生的畢業論文撰寫,在格式上都會有統一的規范要求,實質上是一個格式文本。就格式而言,論文格式規范的基本要件大都是:目錄、中英文摘要及關鍵詞、各級標題、正文及圖表、參考文獻等部分。
對于VBA編程來說,畢業論文的頁面、頁眉、頁腳、圖片、表格、圖表等都是文檔所含的不同類型的一個個對象,各個類型的所有對象可進行相同設置或按奇偶頁分別設置。但文檔主體的文字部分如各分級標題和正文段落的逐一識別與區分卻似乎是個難題。其實,摘要、關鍵詞、注釋和參考文獻等部分已有可識別的顯著標記,如“摘要:(Abstract:)”、“關鍵詞:(Key Words:)”等。至于各分級標題,也都存在著較為顯著的可識別標記:各分級標題自成一段,且始于特定序號,如一級標題通常始于“1”,二級標題通常始于“1.1”等等,而無標記的段落則視為正文段落。
本文將以英語專業本科論文的格式為例,演示VBA操控Word文檔實現自動審改論文格式的程序。限于篇幅,本文將僅呈現關鍵代碼部分。該功能為我校英語專業畢業論文在線管理系統中的一部分,管理系統的運行環境為ASP.Net2.0,編程語言為VB。
代碼中設wdDoc為正操作的MS Word文檔,且所有屬性或方法都以wdDoc.Application.Selection為操作對象。
審改文檔格式的規范性,首先要考慮到學生有可能存在的不良編輯習慣。如通過空格實現似是而非的首行縮進或居中,又如通過連擊回車以連續空白段落塞至新一頁實現換頁,等等。因此,第一步就是要刪除冗余字符,以下為刪除連續半角空格字符的實例。替代相應的查找字串(FindText)和替換字串(ReplaceWith),即可刪除連續的換行符等其它冗余字符。

畢業論文封面單獨成頁,也應在Word文檔中單獨成節,且要素明確,一般包括題目、學生姓名、系別、專業、學號、班級、指導老師及完稿年月。這些要素,作為畢業論文在線管理系統,后臺數據庫里當然都有準確數據。因此,學生提交的文檔中如不含封面頁,完全可通過VBA程序自動配上。文檔中如已含封面頁,為確保數據格式的精確統一,也可刪除而另配。可在服務器端存放一預制的空白封面頁文檔(姑且稱之封面模板),以備調用。
封面模板以表格嵌套方式制作(如圖1),各空白單元格為各項待填數據,務須選中整個單元格進行字段樣式的設置,以使各部分皆可精確定位,確保版式美觀。各空白單元格內設定書簽,以便于程序自數據庫中讀取并插入相應項目的待填數據,且使程序代碼更加簡潔。

圖1 封面模板
1.檢查并刪除已有封面:

填入全部數據后,全選、復制、關閉wdFMDoc、轉入wdDoc適當處粘貼,即可完成封面頁的插入。關鍵代碼如下:

畢業論文的主體部分,如我校英語專業的本科畢業論文,是按順序由下列部分構成:致謝、英文摘要及關鍵詞、中文摘要及關鍵詞、正文和參考文獻。
3.2.1 各組成部分的判斷
通過整數變量如nStart及nEnd對應所選區域的始末位置。
致謝(Acknowledgements)、中英文摘要(包括關鍵詞)及參考文獻(WorksCited)三部分各為統一規定的標題行,因此,可通過執行Find.Execute命令得到的返回值(布爾值)來判斷主體部分中是否存在相應的部分。當然,在判斷時,還要考慮到英文異體詞如Acknowledgements的異體詞為Acknowledgments,以及學生的誤寫或別體,如Works Cited被寫成Works cited或 Work cited或 WorksCited等形式。判斷參考文獻的關鍵代碼為:

VBA中字段格式的操作對象分別為 font和paragraph,各有系列屬性用于設置或獲取相應的值。如:


畢業論文在幾大組成要件如封面、致謝、摘要、正文(含參考文獻)等齊全時,整個文檔應至少分為三節:①封面獨立成節,無頁眉頁腳,自然就沒有頁碼;②致謝、中英文摘要及目錄組成第二節,頁腳應為小寫羅馬數字的頁碼;③正文(含參考文獻)構成第三節,頁腳為阿拉伯數字頁碼。各節的頁眉頁腳必須斷開與前一節的鏈接。
分節分頁符審改例舉:
文中查找字串“Acknowledgements”,找到時該字串處于選中狀態,方法.Collapse()可使光標處于選定區域的起始位置,即“A”之前;獲取當前光標位置即.Start值,如大于2,則前有封面頁;通過方法.SetRange(nStart,nEnd)選定之前一個字符,判斷是否分節符或分頁符;如僅為分頁符則刪除之,插入分節符.InsertBreak(Type:=WdBreakType.wdSection-BreakNextPage)。
同理,在正文標題前再插入一分節符,在必要的地方插入分頁符 (將上一方法中的Type值改為WdBreakType.wdPageBreak)。
頁眉頁腳審改例舉(第二節頁腳設置的關鍵代碼):

畢業論文的目錄部分一般處于固定位置,例如處于第二節之末,第三節即正文之前。這一部分本應在設置各標題段落相應的大綱級別之后,通過插入目錄由MS Word自動生成的。但很大一部分學生不善于設置段落的大綱級別和頁面的頁眉頁腳,因此,這也是學生排版最易失之規范的部分。不少學生手工輸入目錄,且不說左端縮進隨意,右端更難對齊,更大的弊端是,一旦其它部分出現與標題或頁碼相關聯的改動,難以反饋給目錄的更新,致使目錄及所標頁碼與實際情況失去對應。本文主張采用封面頁的對策,即檢查是否已有目錄,如已存在,則刪除,再由VBA程序自動生成在規定位置。
關鍵代碼如下:


畢業論文管理一類的程序編寫起來并不難,但真正做到全程管理的卻不多,而這應該也正是論文管理系統類軟件的趨勢所在。畢業論文組織管理工作雖千頭萬緒、極其繁雜,但數據統計、任務分配與驗收之外,更加長線的卻在于與Word之類的文字處理軟件的親密接觸。論文的撰寫與審閱固然離不開Word軟件,指導教師最終按要求提交的匯總材料又何嘗離得開Word類型的文字處理軟件。
本文旨在拋磚引玉,所依據的畢業論文在線管理系統雖然已在使用之中,卻仍然存在諸多問題,例如格式審改中對于參考文獻的標注的審改功能尚不具備。然而,無可否認,一方面,畢業論文本身是一種格式文本、教師上報的匯總材料亦應為格式文本。另一方面,MS Word具有良好的功能拓展開放性,以及VBA與之無縫銜接的操控性能,兩者的結合,使得論文管理系統本應發揮出更加強大的功用。此外,隨著Google、Software等公司越來越積極主動的技術貢獻,在線文字處理功能越來越得到淋漓盡致的發揮,筆者堅信,畢業論文在線管理系統將會主動承擔越來越多低智能的操作,剩下給老師的只是對于論文邏輯的理性的評判。
[1]邵小兵,廖慧芬.利用VBA實現Word自動排版[J].中國教育技術裝備,2005,(10):45-46.
[2]楊曉亮.Word VBA高效排版范例應用[M].北京:中國青年出版社,2005:109-127.
[3]符謀松、李富蕓.基于VBA技術的本科畢業論文質量監控系統研究[J].現代計算機,2009,(9):142-145.
[4]吳建軍.基于.Net和WebService的本科畢業論文全程管理系統的設計與實現[D].成都:電子科技大學,2008.
On VBA-based and ASP-based Textual Format Automation of Graduation Thesis
Wu Wen
(Modern Educational Technology Center,Huangshan University,Huangshan 245041,China)
Although more and more free softwares concerning graduation thesis management are being developed,few can fulfill textual format automation based on MS Word.The paper shows how to achieve VBA-based textual format automation in terms of its idea,method and key codes.
VBA;online management of graduation thesis;textual format automation
TP391
A
1672-447X(2010)04-0087-05
2010-02-20
吳 文(1966-),安徽休寧人,黃山學院現代教育技術中心實驗師,研究方向為計算機應用。
胡德明