摘要:VBA 作為一種新一代的標(biāo)準(zhǔn)宏語(yǔ)言,具有跨越多種應(yīng)用軟件并且具有控制應(yīng)用軟件對(duì)象的能力,該文基于EXCEL VBA設(shè)計(jì)自動(dòng)出題系統(tǒng),使教師只需利用EXCEL表能輕松建立題庫(kù)及隨機(jī)抽題功能,提高了工作效率。
關(guān)鍵詞:EXCEL VBA;抽題題庫(kù)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)15-0056-02
Microsoft Office Excel是目前辦公軟件電子表格處理最流行的軟件之一,它簡(jiǎn)單易學(xué)實(shí)用性強(qiáng),數(shù)據(jù)處理功能強(qiáng)大受到廣大民眾的喜愛(ài),作為老師,模擬試題、練習(xí)等組卷是教學(xué)常規(guī)工作,手工組卷工作量很大,如何能省時(shí)省力呢?利用EXCEL宏的VBA功能,還能編寫實(shí)用性強(qiáng)的應(yīng)用程序,對(duì)于沒(méi)有計(jì)算機(jī)知識(shí)的老師使用起來(lái)也不是問(wèn)題,本文所設(shè)計(jì)的自動(dòng)抽題系統(tǒng)設(shè)計(jì)解決了試題庫(kù)建設(shè)及抽題自動(dòng)組卷功能,讓老師的組卷工作效率提高。
1 系統(tǒng)分析
小學(xué)教師教學(xué)任務(wù)重,經(jīng)常需要出題進(jìn)行一天一練等組卷工作,本系統(tǒng)針對(duì)小學(xué)數(shù)學(xué)練習(xí)或考試,讓教師輕松組卷。系統(tǒng)分別設(shè)計(jì)試卷生成工作表,另外每種題型分別對(duì)應(yīng)一張工作表,表中錄入對(duì)應(yīng)的題庫(kù)信息,題庫(kù)類型有:填空題、判斷題、選擇題、計(jì)算題、解決問(wèn)題,其中計(jì)算題再設(shè)置四個(gè)小題:口算題、列豎式計(jì)算、脫式計(jì)算、列式計(jì)算。
1.1 系統(tǒng)功能實(shí)現(xiàn)
新建一個(gè)EXCEL工作簿,本系統(tǒng)共有10個(gè)工作表,分別命名為“試卷”、“題型數(shù)量”、“填空題”、“判斷題”、“選擇題”、“口算題”、“列豎式計(jì)算”、“脫式計(jì)算”、“列式計(jì)算”、“解決問(wèn)題”,“試卷”工作表中設(shè)計(jì)兩個(gè)按鈕,可以根據(jù)需要分別生成“WORD試卷”、“生成EXCEL試卷”;“題型數(shù)量”工作表中只輸入兩列內(nèi)容,分別是“題型”、“數(shù)量”,輸入試卷設(shè)置的題型及各題型數(shù)量即可。其他各題型工作表中分別輸入“序號(hào)”、“題目”、“標(biāo)志”3列內(nèi)容,其中“標(biāo)志”列用“*”號(hào)表示,用來(lái)記錄已抽取過(guò)的題目,可以在練習(xí)時(shí)避免重復(fù)抽題。
1.2 VBA關(guān)鍵技術(shù)
1.2.1 VBA特點(diǎn)
Visual Basic For Application(VBA)是微軟開(kāi)發(fā)出來(lái)的應(yīng)用程序共享一種通用的自動(dòng)化語(yǔ)言,可以認(rèn)為VBA是非常流行的應(yīng)用程序開(kāi)發(fā)語(yǔ)言VISUAL BASIC 的子集,實(shí)際上VBA是寄生于VB應(yīng)用程序的版本。
VBA具有開(kāi)發(fā)速度快、完整的開(kāi)發(fā)文檔以及實(shí)例、知識(shí)的繼承、窗體制作的效率高、與應(yīng)用軟件有很好的接口等特點(diǎn)而受到廣大電腦愛(ài)好者的喜愛(ài)。有了VBA 以后,多種應(yīng)用程序共用一種宏語(yǔ)言,節(jié)省了程序人員的學(xué)習(xí)時(shí)間,提高了不同應(yīng)用軟件間的相互開(kāi)發(fā)和調(diào)用能力。
1.2.2 關(guān)鍵技術(shù)
1)Application對(duì)象是Excel對(duì)象模型中最高層級(jí)的對(duì)象,代表Excel應(yīng)用程序自身,也包含組成工作簿的許多部分,包括工作簿、工作表、單元格集合以及它們包含的數(shù)據(jù)。如Application的DisplayAlerts屬性表示屏蔽提示信息而保存工作表。
2)Worksheets工作表對(duì)象,該對(duì)象的下一級(jí)對(duì)象是Range對(duì)象。Range對(duì)象可以是某個(gè)單元格、某一行某一列或者多個(gè)相鄰或不相鄰單元格區(qū)域?qū)ο?。Cell屬性可以引用某個(gè)單元格,Cells(I,J)就表示第i行、J列處的單元格。
Rows.Count 當(dāng)前活動(dòng)工作表的行數(shù),Cells(Rows.Count,1)定位到第一列的最后一行cell。Range.End 屬性是返回一個(gè)range對(duì)象,End屬性返回的單元格就相當(dāng)于在源單元格按住Ctrl鍵+上(或下、左、右)方向鍵所得到的單元格,XlToLeft :向左移動(dòng),相當(dāng)于在源區(qū)域按Ctrl+左方向鍵;XlToRight:向右移動(dòng),相當(dāng)于在源區(qū)域按Ctrl+右方向鍵;XlUp:向上移動(dòng),相當(dāng)于在源區(qū)域按Ctrl+上方向鍵;XlDown:向下移動(dòng),相當(dāng)于在源區(qū)域按Ctrl+下方向鍵。如END(XLUP)等同于END MODE下+UP鍵或CTRL+UP。
3)Offset屬性,可以以初始值所設(shè)定的單元格區(qū)域?yàn)槠瘘c(diǎn)來(lái)相對(duì)移動(dòng)任意的行或列,從而定位到新的單元格區(qū)域。
4)RESIZE屬性可以讓用戶能夠基于當(dāng)前活動(dòng)單元格修改區(qū)域大小,還可以根據(jù)需要?jiǎng)?chuàng)建一個(gè)新的區(qū)域。
5)UBOUND():返回?cái)?shù)組的指示維度的最大值。
2 代碼實(shí)現(xiàn)
1)生成試卷模塊
2)如果希望生成WORD文檔試卷,那么可以在“生成試卷”模塊修改,增加調(diào)用“生成WORD試卷”過(guò)程。
3 結(jié)束語(yǔ)
EXCEL是目前最流行應(yīng)用最廣泛的軟件之一,對(duì)于計(jì)算機(jī)專業(yè)知識(shí)了解較少的老師使用也沒(méi)有障礙,隨時(shí)可以使用,本系統(tǒng)能實(shí)現(xiàn)輕松組卷功能,教師只需建設(shè)充實(shí)各類型題庫(kù),就可以隨心所欲地生成EXCEL或WORD格式的卷子,提高了教師的工作效率,因本系統(tǒng)只針對(duì)中小學(xué)生試卷使用,基本上是筆試為主,所以還未考慮在線考試時(shí)間控制。
參考文獻(xiàn):
[1] 王凡帆.基于EXCEL VBA的自動(dòng)生成試卷系統(tǒng)設(shè)計(jì)[J]. 電腦知識(shí)與技術(shù), 2010(4).
[2] 蔣勇.基于EXCEL VBA的計(jì)算機(jī)理論知識(shí)無(wú)紙化考試系統(tǒng)設(shè)計(jì)[J]. 軟件導(dǎo)刊, 2012(2).
[3] 李萍. 基于 ExcelVBA 實(shí)現(xiàn)自動(dòng)成績(jī)分析的實(shí)踐[J]. 中國(guó)教育信息化, 2014(1).