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