王 超
(臨泉縣委黨校,安徽臨泉236400)
MSWord是當今流行的電子文檔編輯、排版軟件之一,已成為辦公人員的得力助手,被廣泛應用于社會的各個領域。筆試應用于各行各業,在教育教學領域最為頻繁,出卷任務是教師例行之事。現階段很多學校由于沒有現成的統一試卷模板格式,導致卷面設計一個教師一種版式,一輪考試下來,出現了各式各樣的卷面樣式,有失考試的嚴肅性和規范性,同時在格式設計和排版上也花費教師大量的時間和精力。這就需要一款能夠設計出一套統一、規范、標準的試卷模板格式的軟件系統來解決這一問題。
試卷模板是具有統一格式、一定相同內容的試卷樣式。在Word中,利用VBA技術的處理能力自動實現試卷模板生成系統的意義在于卷面格式的統一、標準、規范,可以快速高效地生成試卷。在同一部門、同一所學校出卷時同時使用該系統,不僅使卷面格式統一,設計規范,還能美化卷面。現階段,教師完成一套出卷任務,快者1-2小時,慢者則需要數小時,僅在卷面格式設計和排版方面就要花很多時間,而利用研究的試卷模板生成系統能在4秒內完成模板設計,即使加上部分內容的修改及試題填充,最遲也能在15分鐘內呈現出一套規范的,標準的,完整的試卷,大大減輕教師出卷的壓力,提高出卷效率。它與自動排版系統的區別在于先生成模板,后套用模板格式;優點在于設計更加規范,格式更加統一,卷面更加美觀,操作更加便捷,完成更加高效。
Visual Basic for Applications,簡稱 VBA,依托微軟Windows系統的應用程序(如MSOffice)為平臺,對其進行二次開發以便擴展其功能,同時也是其自帶內嵌的功能研發平臺。VBA一旦脫離該平臺就無法運行,實現不了其功能,發揮不了其作用,就失去它存在的價值和意義。在MSOffice中,VBA提供了大量訪問對象(如頁面設置PageSetup、表格設置Tables、段落設置Paragraph、字體設置Font等),由于它具有強大的對象控制能力,功能的擴展及定制能力,突破了MSOffice的自身極限,完成MSOffice本身無法完成的功能[1]。通過對這些對象的屬性設置、方法使用和事件驅動,實現對微軟Word 2010的再次開發,自動完成對文檔的一系列操作,從而實現一鍵試卷模板生成的功能。
基于VBA技術的試卷模板生成系統的設計與實現是以Word 2010為平臺(MSOffice具有強大的通用性和兼容性,Word 2000以上版本都可以使用VBA技術,目前大多數用戶選擇安裝MSOffice 2010,就以此版本為例)。首先在電腦中安裝Word 2010軟件,然后通過創建宏的方式編寫VBA代碼,最后實現一鍵試卷模板系統生成。為進一步推廣使用該系統,可以將實現該功能的VBA程序代碼保存起來,粘貼到所需電腦Word軟件的宏里。會運行宏就會使用它,操作簡單,使用方便,無需對使用者進行任何操作培訓。簡便易行的操作方式能讓教師在很短的時間內設計出優秀的試卷模板格式。
根據試卷模板格式設置步驟和方式,試卷模板生成系統的主模塊分成六個子模塊來實現(如圖1所示)。每個子模塊完成其各自的功能,這樣設計的目的是使系統層次清晰,增強系統可讀性;每個功能模塊不僅功能獨立,減少交叉及代碼重復,還有利于程序重復調用[2]。該系統采用自定義快捷鍵、自定義選項卡及添加到快速訪問工具欄等方式來解決一鍵實現試卷模板生成問題。

圖1 系統模塊設計結構圖
卷面設置模塊主要設置卷面紙張大小,頁邊距及版式等。按照試卷常規設計具體參數:紙張A3;上下左右邊距分別為2 cm,2 cm,4.4 cm,1.8 cm;奇偶頁的頁眉頁腳各不相同;每個頁面分兩欄;多頁時采用“對稱頁邊距”;為了實現卷面屬性設置的自動化,需要調用PageSetup對象。為了更好的卷面布局設計,利用TableGridlines設置表格虛框線的顯示。由于厘米轉換函數“Centimeter?sToPoints”在代碼編寫中需要輸入若干次,為了減少字符數量,重新定義一個函數“CTP”來取代“CentimetersToPoints”。利用VBA技術,實現自動卷面屬性設置程序如下:


外裝訂線位于奇數頁卷面的左側,左邊距位置。將卷面左邊距設置為4.4 cm,是為了在此位置設計卷面的裝底線。該位置除了有裝訂線的標志外,還有考生需要填寫的個人相關信息(以學校為例,如學校、姓名、班級、考號等)。為了編輯試卷內容時裝訂線不受影響,將裝訂線以頁眉內容的方式添加。裝訂線共有3個文本框組成(如圖2所示),上起第一個為外裝訂線的外邊緣欄,第二個為考生信息欄,第三個為裝訂線的內邊緣欄。在該模塊中用到對象TextFrame設置文本框屬性,Shapes及AddTextbox來創建文本框。由于系統中要多次清除頁眉或頁腳,在此模塊中自定義了一個函數“Clear_HeaderFooter”。

圖2 外裝訂線設置效果圖
利用VBA技術,實現自動外裝訂線設置的程序如下:



內裝訂線位于偶數頁卷面的右側,右邊距位置。在卷面屬性設置程序中,用“MirrorMargins=True”來設置“多頁對稱頁邊距”,與外裝訂線卷面形成對稱,試卷正反打印時為同一位置。內裝訂線的第二個文本框不再是考生信息欄,而是提醒信息欄,讓考生書寫時不要越過內邊緣裝訂線。由于內裝訂線設置在偶數頁頁眉中,當設置內裝訂線時,先確保卷面頁數至少是兩頁,否則激活不了偶數頁頁眉,實現不了內裝訂線設置。在程序開始部分利用BuiltInDocumentProperties(wdProper?tyPages).Value來判斷卷面頁數,少于2時插入一個分頁符,形成兩個頁面。在內裝訂線設置完成返回主文檔之后,再調用子程序“Clear_Char”,清除文檔中的分頁符和空段落。
利用VBA技術,實現自動內裝訂線設置的程序如下:



頁碼顯示在卷面的下方,頁面的頁腳位置。因為卷面是A3紙張并分為兩欄,所以用“◎”作為兩欄的分界符。在分界符左邊居中位置插入域“PAGES*2-1”和“SECTIONPAGES*2”,獲取左邊(奇數頁)頁碼和本節總頁碼,在右邊插入域“PAG?ES*2”和“SECTIONPAGES*2”,獲取右邊(偶數頁)頁碼和本節總頁碼。通過程序運行后,在卷面的首頁分界符左邊頁碼顯示“第1頁共2頁”,右邊顯示“第2頁共2頁”。
利用VBA技術,實現自動頁碼設置的程序如下:


卷頭內容設置模塊主要是在試卷的開頭部分設置通用信息(如圖3所示)。試卷生成后,教師可以根據實際情況,進行信息的修改。在此模塊中自定義了一個函數“Font_Setup”和子程序“Move_Down”。“Font_Setup”的作用是設置不同的字體,字號,字形等信息。“Move_Down”的作用是另起一行,從下一行的行首開始。

圖3 卷首內容設置效果圖
利用VBA技術,實現自動生成試卷開頭內容的程序如下:



常見的考題類型有選擇題、填空題、問答題等。試題類型設置模塊功能是以表格的形式自動設計出這些常見的考題類型。為滿足其他題型的需要,最后還設計一個自定義考題類型,教師可以利用復制粘貼的功能設計更多的題型。各題型除內容不同外,其格式一致,由于反復調用,創建了自定義函數“Question_Type_Setup”。通過該模塊的主程序“Question_Type”多次調用“Ques?tion_Type_Setup”來設計選擇題,填空題,問答題等。在自定義函數“Question_Type_Setup”中,主要是創建三個表格(如圖4所示)。

圖4 選擇題設計效果圖
利用VBA技術,實現自動生成試題類型的程序如下:



主程序包含六個子模塊,按照試卷模板設計的先后順序依次調用。教師在出卷之前,只需運行該系統的主程序“試卷模板生成系統”,程序會按照先后順序自動運行,一套統一、規范、標準的試卷模板格式就呈現在眼前。
利用VBA技術,實現自動生成試卷模板系統的程序如下:

運行“試卷模板生成系統”生成試卷模板后,教師利用刪除、復制粘貼的功能,先確定題數及類型,然后在相應類型試題框內輸入考題,修改試題分值及說明信息、卷頭信息,一套規范、標準的試卷就呈現出來。
為進一步簡化操作步驟實現一鍵生成試卷模板,可以將“試卷模板生成系統”命令置于在Word窗口的最顯眼、最易操作的地方[3]。
方法一:添加到快速訪問工具欄
快速訪問工具欄位于Word功能區上方,運行菜單“文件∕選項∕快速訪問工具欄”從下拉列表中選擇“宏”,找到“Normal.NewMacros.試卷模板生成系統”,點擊右側的“添加”按鈕后,通過下方的“修改”命令,將其標簽更改為“試卷模板生成系統”,將其圖標更改自己喜歡的符號。
方法二:添加到自定義選項卡
運行菜單“文件∕選項∕自定義功能區”在對話框右側“自定義功能區”下拉列表中,選擇“主選項卡”,在“開發工具”下面,通過“新建選項卡”命令按鈕添加“新建選項卡”,命名為“出卷”,將其下面的“新建組”命名為“試卷模板”,并選中;在對話框左側“從下列位置選擇命令”的下拉列表中選中“宏”,從文件名中找到“Normal.NewMacros.試卷模板生成系統”宏,單擊右側“添加”按鈕完成添加,再單擊“重命名”按鈕,將“Normal.NewMacros.試卷模板生成系統”改成“試卷模板生成系統”,同時也可以更改其默認的圖標符號。操作完成后,在“出卷”選項卡“試卷模板”組中,就可以看到“試卷模板生成系統”(如圖5所示)。

圖5 自定義選項卡設置圖
方法三:自定義快捷鍵方式
運行菜單“文件∕選項∕自定義功能區”在“鍵盤快捷方式”的右側有個“自定義”按鈕,打開“自定義”對話框,在類別列表中選擇“宏”,并在其右側列表框中選擇“試卷模板生成系統”,點擊下方“請按新快捷鍵”,定義一個快捷鍵(如:F4),點擊“指定”命令,在“當前快捷鍵”欄,就看到F4了,最后關閉對話框。今后需要出卷時,僅需按一次F4鍵,4秒內就能自動生成試卷模板。
研究環境以Word2010為平臺,利用其嵌入的VBA編程語言,開發出自動生成試卷模板功能的系統。在同一部門、同一所學校同時使用該系統進行出卷,不僅使卷面格式統一,設計規范,還能美化卷面,強化考試的嚴肅性。該系統大大減輕教師出卷的壓力,減少工作量和出錯率,提高出卷效率。該系統生成的是一套通用的試卷模板,不僅適用于使用最為頻繁的教育教學場所的學校,將外裝訂線考生信息欄的“學校”改為“單位”或其他名稱,還適用于各行各業的筆試出卷。由于VBA編程語言嵌入在MSOffice 2000軟件以上各個版本中,編寫的程序之間相互兼容,因此在Word2010平臺研發的該系統也可以在其他各個版本上運行,達到同樣的目的。在Office辦公軟件中,VBA具有強大命令擴展功能。為滿足日常工作的需要,減少重復操作,降低工作強度,結合工作實際,可以研發出更為復雜、高級的文檔自動化處理程序。