余姝華
摘 要:教師一般應(yīng)用Word來命制試卷,但收集試題和排版工作量非常繁重,利用VBA在Word中的應(yīng)用,開發(fā)一個自帶試題庫,教師可以對題庫進(jìn)行添加、修改和刪除試題等功能;并能夠?qū)λx擇的題目進(jìn)行自動排版。教師可以高效完成一份高質(zhì)量的試卷,徹底減輕教師命制試題的工作量。
關(guān)鍵詞:Word;VBA;自動排版
目前大多數(shù)學(xué)校、教師利用Word命制試卷,需要花費大量的時間來收題、排版,而且排版后的試卷格式也不標(biāo)準(zhǔn)。通過VBA for Word開發(fā)一款自帶試題庫和試卷排版功能的系統(tǒng),教師可以
對題庫中的試題進(jìn)行添加、修改和刪除等管理,對選好的試題進(jìn)行自動排版,生成標(biāo)準(zhǔn)的、統(tǒng)一的試卷,每位教師都可以在短時間內(nèi)高效地完成一份高質(zhì)量的試卷。
一、試卷結(jié)構(gòu)分析
以語文試卷為例,紙型為A3,方向為橫向,版面分左右兩欄,左邊最上面一般為一級標(biāo)題并居中顯示某次語文考試試卷。試卷正文大致包括:基礎(chǔ)知識、現(xiàn)代文、文言文和寫作四大塊內(nèi)容?;A(chǔ)知識部分主要是:選擇和填空,在試卷排版中題目需要左縮;現(xiàn)代文部分主要包含:正文內(nèi)容和正文后的習(xí)題,正文內(nèi)容標(biāo)題需要居中,正文首行縮進(jìn)2個字符;文言文部分的排版和現(xiàn)代文基本相同;寫作部分排版比較麻煩的是作文格子的編排,它是上下行之間要空開一行的表格。
二、系統(tǒng)功能模塊分析
本系統(tǒng)主要有三大功能模塊:添加試題、修改試題(包括修改和刪除)和試卷自動生成。數(shù)據(jù)庫采用Access,主要考慮它移植方便、便于管理。試題存放在數(shù)據(jù)庫中,在對大量試卷分析時發(fā)現(xiàn),一個大題中有若干個小題,而每個大題所含的小題數(shù)都是不同的,所以在設(shè)計數(shù)據(jù)庫時采用了多表并建立關(guān)系。
三、系統(tǒng)功能的實現(xiàn)
1.添加試題
在系統(tǒng)設(shè)計需求分析中考慮到教師在命制試卷時,收集試題耗時,試題的保密性差,所以在本系統(tǒng)中直接設(shè)計了試題庫。題庫可以對試題進(jìn)行有效地保密,因為題庫量很大,組卷時按條件隨機(jī)組卷,猜題押寶命中概率很小。有了題庫,可以馬上啟用備用的平行試卷,或在考試前的最后時刻隨機(jī)決定平行試卷中的一套作為正式考卷,從而達(dá)到出其不意的效果。試題庫極大地方便了實現(xiàn)計算機(jī)科學(xué)的管理(修改、增刪、試卷合理生成、瀏覽、打印等),又因試卷的隨機(jī)生成,提高了試卷的保密程度,從而進(jìn)一步提高了考試的效果,充分體現(xiàn)出考試的嚴(yán)肅性和公平性。
2.修改試題
該模塊主要實現(xiàn)兩個功能:刪除和修改。教師對該系統(tǒng)庫中的試題可以做出相應(yīng)的修改,或者對不必要的試題進(jìn)行刪除操作。
這一模塊與上面的添加試題模塊都是引用ADO連接ACCESS數(shù)據(jù),并對數(shù)據(jù)保存、修改和刪除。
3.自動排版并生成試卷
該模塊主要有兩塊內(nèi)容:試卷版面設(shè)置和試卷試題設(shè)置。
(1)試卷版面設(shè)置
用戶可以在“試卷紙張大小”下拉框中選擇相應(yīng)的紙型,程序中主要是通過VBA的Application對象的ActiveDocument.PageSetup.PaperSize屬性設(shè)置試卷紙張的大?。辉凇罢堓斎朐嚲泶髽?biāo)題”文本框中輸入將要生成試卷的標(biāo)題。比如,“2013學(xué)年第二學(xué)期九年級第一次語文月考”,我們在程序中是通過Application對象的如
下屬性實現(xiàn):
.ActiveDocument.PageSetup.PaperSize=papType(“A3”)
‘設(shè)置試卷頁面紙型
With Selection.PageSetup.TextColumns
‘對頁面進(jìn)行分欄
.SetCount numcolumns:=2
.EvenlySpaced=True
.LineBetween=False
.Width=CentimetersToPoints(5.84)
.Spacing=CentimetersToPoints(2.96)
End With
.Selection.Style=ActiveDocument.Styles(“標(biāo)題1”)
‘設(shè)置為“標(biāo)題1”
.Selection.Font.Name=“黑體” ‘字形
.Selection.ParagraphFormat.Alignment=wdAlignParagraphCenter
‘對標(biāo)題居中對齊
.Selection.Font.Size=18 ‘標(biāo)題字號18號
.Selection.TypeText “2013學(xué)年第二學(xué)期九年級第一次月考+Chr(10)” ‘設(shè)置一級標(biāo)題,Chr(10)為換行
(2)試卷試題設(shè)置
該模塊分為四大塊:基本知識(選擇題和填空題)、現(xiàn)代文、文言文(文言文閱讀和古詩)和寫作。教師按照試卷的要求選擇需要的題型,在對應(yīng)題型下輸入題數(shù),若輸入的題數(shù)大于系統(tǒng)庫中的題數(shù),則系統(tǒng)會有相應(yīng)提示。
試題是從試題庫中隨機(jī)抽取的,并要求不能再次抽中,所以,在隨機(jī)生成函數(shù)Rnd前加上Randomize函數(shù),這樣可以避免抽到的試題被重復(fù)抽中。
(3)試卷的卷面內(nèi)容排版
試卷的排版主要包括試卷的標(biāo)題、字體大小及段落格式等方面。這些都可以利用Application對象中的以下性能來實現(xiàn)自動
排版。
.Selection.Style=ActiveDocument.Styles(“標(biāo)題2”)
‘設(shè)置二級標(biāo)題
.Selection.Font.Size=12
‘二級標(biāo)題字號為12號
.Selection.Font.Name=“黑體”
‘二級標(biāo)題字體為宋體
.Selection.TypeText“一、基礎(chǔ)知識”+Chr(10)
‘設(shè)置二級標(biāo)題
以上代碼主要是對二級標(biāo)題設(shè)置
.Selection.Style=ActiveDocument.Styles(“正文”)
‘設(shè)置正文
.Selection.Font.Size=10
‘設(shè)置正文字號為10號
.Selection.Font.Name=“宋體”
‘設(shè)置正文字體為宋體
With Selection.ParagraphFormat
.CharacterUnitLeftIndent=2
‘正文內(nèi)容左縮進(jìn)2字符
.CharacterUnitFirstLineIndent=-2
‘正文內(nèi)容首行懸掛-2字符
End With
.Selection.TypeText num & "、" & rs(0)。Value+Chr(10)
With Selection.ParagraphFormat
.CharacterUnitLeftIndent=4
‘正文內(nèi)容左縮進(jìn)4字符
.CharacterUnitFirstLineIndent=-2
End With
Word應(yīng)用程序是目前應(yīng)用最廣泛的排版軟件,但是大部分人只能使用它的常規(guī)功能來排版。利用VBA for Word可以實現(xiàn)繁瑣、機(jī)械的日常排版工作自動化。用VBA擴(kuò)展功能可以完成各種高級排版功能的軟件開發(fā)。
參考文獻(xiàn):
[1]楊曉亮.Word VBA高效排版范例應(yīng)用[M].北京:中國青年出版社,2005.
[2]Guy Hart-Davis.VBA從入門到精通[M].第二版.北京:電子工業(yè)出版社,2008.
[3]李政,海英梁,李昊.VBA應(yīng)用基礎(chǔ)與實例教程[M].北京:國防工業(yè)出版社,2009.
[4]卓宗雄.學(xué)用VBA提高Office效率[M].北京:人民郵電出版社,1996.
[5]徐國平.VBA中文版程序設(shè)計與應(yīng)用[M].北京.清華大學(xué)出版社,1998.
|編輯 溫雪蓮