Excel操作題也能自動(dòng)評(píng)分(excel考試怎么評(píng)分)
快速判斷學(xué)生做Excel操作題的對(duì)錯(cuò),一直是很多老師頭疼的問(wèn)題。筆者研究發(fā)現(xiàn),可以利用VBA實(shí)現(xiàn)對(duì)操作題的自動(dòng)評(píng)分,及時(shí)反應(yīng)學(xué)生對(duì)Excel的掌握情況。
我們分析一下,做Excel操作題目,實(shí)際上是對(duì)Excel文件的某些內(nèi)部屬性值進(jìn)行設(shè)置,如字體、顏色、對(duì)齊方式等。如果能夠通過(guò)某種方法獲取這些屬性的變化情況或變化值,再借助VBA編程來(lái)做出判斷就可以為Excel操作題目進(jìn)行評(píng)分了。究竟這些屬性的變化情況如何獲取呢?
實(shí)例描述:
在Sheet1工作表中完成如下操作:(1)A1:E1內(nèi)單元格跨列居中,字體設(shè)置為黑體、18磅、藍(lán)色;(2)按公式:學(xué)期成績(jī)=期中成績(jī)*30% 期末成績(jī)*70%,計(jì)算學(xué)期成績(jī);(3)表格數(shù)據(jù)區(qū)域單元格外邊框紅色雙線,內(nèi)邊框藍(lán)色雙線,水平、垂直居中,底紋為黃色。
要求:在Sheet1工作表中操作題目能夠清楚顯示,有“交卷評(píng)分”按鈕,并能自動(dòng)反饋對(duì)答題結(jié)果的評(píng)價(jià)情況及具體分?jǐn)?shù)。
題目及評(píng)分結(jié)果顯示區(qū)域設(shè)計(jì)
這個(gè)過(guò)程主要完成如何在Sheet1工作表中顯示題目、顯示評(píng)分結(jié)果。首先,在Sheet1工作表中插入一個(gè)文本框,將操作題的題目輸入或粘貼到文本框中。由于插入的文本框無(wú)背景而影響顯示效果,所以我們可以對(duì)文本框的格式進(jìn)行設(shè)置。在文本框的邊框處擊右鍵選擇“設(shè)置文本框格式”,在彈出的“設(shè)置文本框格式”窗口中選擇“顏色與線條”選項(xiàng)卡,對(duì)文本框的邊框與填充色根據(jù)需要進(jìn)行設(shè)置。同理,我們?cè)谶@個(gè)文本框的下面再插入一個(gè)比其高一些的文本框,同樣對(duì)它進(jìn)行邊框與填充色的設(shè)置,并在其中輸入“評(píng)分結(jié)果”,將字體設(shè)置大些,顏色為紅色。調(diào)整好兩個(gè)文本框與工作表中數(shù)據(jù)的位置關(guān)系(圖1)。
“交卷評(píng)分”按鈕設(shè)計(jì)
這個(gè)過(guò)程主要完成如何在Sheet1工作表中插入一個(gè)“交卷評(píng)分”的按鈕。首先,在Sheet1工作表中選擇“視圖→工具欄→窗體”菜單,在彈出的窗體工具欄中選擇“按鈕”,鼠標(biāo)變?yōu)椤笆?,然后在工作表的合適位置按住鼠標(biāo)左鍵畫(huà)出一個(gè)按鈕。這時(shí),會(huì)彈出一個(gè)“指定宏”的窗口,這是為按鈕指定一個(gè)事件,即單擊按鈕時(shí)觸發(fā)什么事件。由于我們還沒(méi)有編輯評(píng)分事件,我們可以先選擇“取消”按鈕。我們?cè)摪粹o的標(biāo)簽改為“交卷評(píng)分”,最后再工作表的空白處單擊一下即可(圖2)。
利用VBA編寫(xiě)評(píng)分過(guò)程
首先,我們選擇“工具→宏→Visual Basic編輯器”菜單,這時(shí)就會(huì)彈出Microsoft Visual Basic程序窗口,也就是VBA的編輯器,在左側(cè)可以看到“工程”和“屬性”面板,右側(cè)則是代碼編輯區(qū)域。如果沒(méi)有這些窗口,你可以選擇“視圖”菜單來(lái)調(diào)出這些窗口,并且可以拖這些窗口的邊框?qū)⒋翱诜糯蠡蚴强s小。在窗口左邊雙擊“Sheet1”,這時(shí)在窗口右邊就會(huì)出現(xiàn)代碼編輯區(qū)域,我們可以嘗試著輸入圖中代碼(圖3)。
看著這些代碼,你有些摸不著頭腦了吧!沒(méi)關(guān)系,看了解釋?zhuān)憔蜁?huì)豁然開(kāi)朗。
在這段代碼中用了“Sub…End Sub”定義了一個(gè)事件過(guò)程,過(guò)程的名字是“評(píng)分過(guò)程()”。
在代碼中首先用了一個(gè)名為zf的變量用來(lái)記錄得分,并把它的初值設(shè)置為0;
一個(gè)工作簿由若干個(gè)工作表構(gòu)成,一個(gè)工作表又由若干個(gè)單元格構(gòu)成,像工作表、單元格等這些都是一個(gè)事物的構(gòu)成元素即對(duì)象,每個(gè)元素都有它的屬性、方法,比如單元格它的文字大小、底紋顏色屬性。代碼中用With…End With來(lái)操作一個(gè)元素,用“.”表示一個(gè)元素所具有的屬性。Range()代表某一單元格、某一行、某一列、某一選定區(qū)域。用.Range(\”A1:E1\”).HorizontalAlignment來(lái)表示A1至E1范圍單元格的水平對(duì)齊方式值,如果值與xlCenter Across Selection相等就給分,否則不給分,并用一個(gè)變量(xsh)來(lái)記錄每一步的評(píng)分顯示內(nèi)容。If (條件) Then…Else…End If這個(gè)語(yǔ)句就是用來(lái)進(jìn)行判斷的,表示如果條件成立就怎么樣,否則就怎么樣。代碼中的Chr(10)代表?yè)Q行,也就是在每條評(píng)分結(jié)果后要換行。代碼最后“.Shapes(2).TextFrame.Characters.Text”表示第二個(gè)文本框中的文本內(nèi)容。
也許你要問(wèn)我又怎么知道某個(gè)元素的屬性是什么,每個(gè)屬性的代碼又是什么呢?不要著急,我教你一個(gè)輕松獲取元素屬性的方法。
用宏錄制策略獲取VBA代碼
這個(gè)過(guò)程主要教你如何輕松獲取元素屬性的VBA代碼。如果你不知道如何編寫(xiě)判斷一個(gè)題目做的對(duì)錯(cuò)的話,你可以自己先做一遍正確的并錄制下來(lái),這怎么做呢?這就需要用到VBA的神秘助手“錄制宏”。首先,我們打開(kāi)Excel做題文件,選擇“工具→宏→錄制宏”菜單,然后開(kāi)始按照題目要求進(jìn)行操作。操作完畢后保存文件,停止宏錄制。再選擇“工具→宏→Visual Basic編譯器”菜單,展開(kāi)模塊,雙擊模塊項(xiàng)即可得到宏錄制代碼。比如我們錄制一下設(shè)置實(shí)例第3題的過(guò)程(圖4)。
代碼中的Range(\”A2:E9\”)就代表設(shè)置的區(qū)域,.Borders(xlEdgeLeft)就代表設(shè)置區(qū)域的左邊框,.LineStyle = xlDouble代表邊框線型,.ColorIndex = 3代表邊框顏色代碼是3。其它的相信你能夠看懂的。你只需把這些代碼復(fù)制到If這個(gè)語(yǔ)句中進(jìn)行相應(yīng)的修改就可以了。如判斷區(qū)域左邊框的線型和顏色是否符合要求,可以把代碼改寫(xiě)為:
If Range(\”A2:E9\”).Borders(xlEdgeLeft) .LineStyle = xlDouble and Range(\”A2:E9\”).Borders(xlEdgeLeft) . ColorIndex = 3 Then
這樣你編寫(xiě)VBA代碼還用發(fā)愁嗎?趕快試試吧!
給按鈕賦予評(píng)分過(guò)程事件
這個(gè)過(guò)程主要是按鈕指定“評(píng)分過(guò)程”這個(gè)事件,當(dāng)單擊它是能夠?yàn)镋xcel自動(dòng)評(píng)分,并顯示結(jié)果。我們只需要右擊“交卷評(píng)分”按鈕選擇“指定宏”菜單,在彈出的窗口中選擇“評(píng)分過(guò)程”這個(gè)過(guò)程,點(diǎn)擊“確定”即可(圖5)。
代碼的運(yùn)行
我們可以通過(guò)網(wǎng)絡(luò)教室的軟件把這個(gè)Excel文件發(fā)送給學(xué)生,為了能夠使VBA代碼起作用,我們還需要要求學(xué)生設(shè)置本機(jī)Excel宏的安全性,需要選擇“工具→宏→安全性”,在彈出的窗口中將宏的安全性設(shè)置為“低”,保存后,再次打開(kāi),這樣才能夠使VBA代碼順利運(yùn)行。學(xué)生按照題目操作完后,點(diǎn)擊“交卷評(píng)分”按鈕就能自動(dòng)評(píng)分了。我們看看Excel自動(dòng)評(píng)分的效果怎么樣吧(圖6)!
總體來(lái)說(shuō),VB與宏錄制相結(jié)合制作Excel操作題目評(píng)分軟件的核心思想是:利用宏錄制。在宏錄制代碼中得出正確的屬性變化情況或變化值,再用VB編程獲取做題文件相應(yīng)的屬性變化情況或變化值并與正確值進(jìn)行比較,得出評(píng)分結(jié)果。對(duì)于Excel題目其他操作項(xiàng)目的評(píng)分也是如此,可以根據(jù)宏錄制代碼進(jìn)行分析處理,自由發(fā)揮。