做教師的少不了為學(xué)生制作各種各樣的考試卷子,市面上雖有各種模擬考試系統(tǒng),卻因程序制作復(fù)雜,將老師們拒之門外。其實(shí)根本不需要懂編程,用Excel2003你也可以制作一個(gè)類似的系統(tǒng)。一個(gè)可以自動(dòng)出題、驗(yàn)證考號(hào)、答題后自動(dòng)評(píng)分、保存記錄的模擬考試系統(tǒng),當(dāng)然你也可以給它加上其他功能。()
系統(tǒng)設(shè)計(jì)
1.建立題庫
打開Excel2003,建立“單選題”工作表(如圖1),在A2輸入公式=ROW()-1&"."以自動(dòng)生成序號(hào),在D2輸入=IF(C2="","",RAND()),選中A2:D2拖動(dòng)其填充柄向下復(fù)制到其他單元格,大概有幾百行也就夠了,剩下的需要時(shí)再?gòu)?fù)制。按住Ctrl鍵拖動(dòng)工作表標(biāo)簽復(fù)制出兩份,分別重命名為多選題、判斷題。
圖1
2.設(shè)計(jì)試卷
建立“試卷”工作表,你可以按需要設(shè)置試卷,并輸入單選題、多選題、判斷題三個(gè)大題目,多選題需注明錯(cuò)、漏、多選均不得分。并留出相應(yīng)的題目位置,單選題30題(A5:C34),多選題40(A36:C75),判斷題30題(A77:C106)。
用“自選圖形/基本形狀”中的棱臺(tái)畫一個(gè)按鈕,選中在名稱框中輸入“出題按鈕”4字回車,把它命名為“出題按鈕”。再右擊此按鈕選擇“添加文字”,在按鈕上輸入“出題”2字。同樣再畫一個(gè)按鈕,把它命名為“評(píng)分按鈕”,添加文字“評(píng)分”。(如圖2)
圖2
3.顯示題目
在A5輸入公式=INDIRECT("單選題!R"&ROW()-3&"C"&COLUMN(),0),選中A5復(fù)制,再選中A5:C34進(jìn)行粘貼。同樣在A36輸入公式=INDIRECT("多選題!R"&ROW()-34&"C"&COLUMN(),0)并復(fù)制到A36:C75,在A77輸入公式=INDIRECT("判斷題!R"&ROW()-75&"C"&COLUMN()并復(fù)制到A77:C106。在E4單元格輸入公式=IF(D4=C4,1,0),這公式用來判斷如果D4中的答案與C4的標(biāo)準(zhǔn)答案一致就得1分否則為0分。
A5的公式表示對(duì)單選題工作表中同列、行數(shù)差3的單元格(A2)的引用,公式中使用了R1C1格式的單元格編號(hào),其中3、34、75是由第一題所在的行數(shù)減2得來。這公式實(shí)現(xiàn)的是絕對(duì)位置引用,即不管在單選題工作表中進(jìn)行插入、刪除行或排序,A5顯示的始終都是你從單選題A2中直接看到的內(nèi)容。因此A5:C34、A36:C75、A77:C106三個(gè)區(qū)域?qū)⒎謩e與相應(yīng)題庫中最前面的30(或40)題的內(nèi)容保持一致。
4.答案限制
選中D5:D34單擊“數(shù)據(jù)/有效性”,在“允許”中選擇“系列”,選中“提供下拉箭頭”復(fù)選項(xiàng),在“來源”中輸入“A,B,C,D”,不含引號(hào)且其中逗號(hào)為半角格式(如圖1)。切換到“出錯(cuò)警告”選項(xiàng)卡,輸入錯(cuò)誤信息為“只能輸入A、B、C、D中的一項(xiàng),其他任何符號(hào)或空格均為非法。”,選中“輸入無效數(shù)據(jù)時(shí)顯示警告”復(fù)選項(xiàng),選擇樣式為“停止”(如圖2),確定完成設(shè)置。
圖1
圖2
同樣對(duì)多選題D36:D75,判斷題D77:D106設(shè)置數(shù)據(jù)有效性,只是“來源”要分別換成“A,B,C,D,B,AC,AD,BC,BD,CD,ABC,ACD,BCD,ABCD”和“√,×”。“出錯(cuò)警告”也要做相應(yīng)修改,特別是多選題一定要說明必須按ABCD的順序輸入多選項(xiàng),否則無法正確評(píng)分,若覺得多選題要輸入這一大串有效性設(shè)置太麻煩,不設(shè)置有效性也是可以,你只要在題目中注明不按順序的不給分不就行了。
5.準(zhǔn)考證號(hào)驗(yàn)證
建一個(gè)“考生名單”工作表,在A、B、C列分別輸入序號(hào)、準(zhǔn)考證號(hào)、考生姓名,選中B列在名稱框中輸入“考號(hào)”,回車確定把B列命名為考號(hào)(如圖3)?;氐?#8220;試卷”工作表選中要輸入準(zhǔn)考證號(hào)的D2單格,單擊“數(shù)據(jù)/有效性”,在“允許”中選擇“系列”,取消“提供下拉箭頭”復(fù)選項(xiàng),在“來源”中輸入=INDIRECT("考號(hào)")。切換到“出錯(cuò)警告”選項(xiàng)卡,輸入錯(cuò)誤信息為“你輸入的準(zhǔn)考證號(hào)并不存在,請(qǐng)重新輸入”,選中“輸入無效數(shù)據(jù)時(shí)顯示警告”,并設(shè)置樣式為“停止”。在F3單元格輸入公式=IF(D2="","",VLOOKUP(D2,考生名單!B:C,2,FALSE)),這公式會(huì)在輸入準(zhǔn)考證號(hào)后自動(dòng)顯示考生姓名。
圖3
6.隨機(jī)抽題
右擊“出題”按鈕,選擇“指定宏”,在彈出窗口中,輸入宏名為“出題”,單擊“新建”按鈕,編輯如下代碼:
Sub 出題()
If Range("D2").Value = 0 Then
提示 = MsgBox("請(qǐng)先輸入準(zhǔn)考證號(hào)")
GoTo 重來
End If
'如果D2為空則彈出提示要求輸入準(zhǔn)考證號(hào)并直接跳到后面的“重來:”處。
Sheets("單選題").Range("A:D").Sort Key1:=Sheets("單選題").Range("D2"), Order1:=xlAscending,
Header:=xlGuess
Sheets("多選題").Range("A:D").Sort Key1:=Sheets("多選題").Range("D2"), Order1:=xlAscending,
Header:=xlGuess
Sheets("判斷題").Range("A:D").Sort Key1:=Sheets("判斷題").Range("D2"), Order1:=xlAscending,
Header:=xlGuess
'這三行分別是對(duì)單選、多選和判斷題工作表的A:D區(qū)域按D列隨機(jī)數(shù)升序排序。
Columns("B:B").Rows.AutoFit
'對(duì)B列設(shè)置最適合行高,以完整顯示題目。
Range("D5").Select
'定位到D5以便輸入答案
ActiveSheet.Shapes("出題按鈕").Visible = False
'隱藏出題按鈕以防重復(fù)選題
ActiveSheet.Shapes("評(píng)分按鈕").Visible = True
'顯示評(píng)分按鈕
重來:
End Sub
試卷中的題目總是顯示各題庫最前面的N題,而在此對(duì)各題庫按隨機(jī)數(shù)進(jìn)行隨機(jī)排序后最前面的N題自然是隨機(jī)的,也就相當(dāng)于是隨機(jī)抽題了。
7.成績(jī)記錄表
新建一個(gè)“成績(jī)記錄”工作表(如圖4),在A2輸入公式=NOW(),并選中A列右擊從“設(shè)置單元格格式”中設(shè)置為日期格式以顯示當(dāng)前時(shí)間。B2、C2分別輸入=試卷!D2和=試卷!F2以顯示相應(yīng)數(shù)據(jù)。D2輸入公式=SUM(E2:G2)對(duì)后面三個(gè)得分進(jìn)行合計(jì),E2、F2、G2則分別輸入公式=SUM(試卷!E5:E34)、=SUM(試卷!E36:E75)、=SUM(試卷!E77:E106)分別對(duì)相應(yīng)題型得分進(jìn)行合計(jì)。
圖4
8.評(píng)分和記錄保存
右擊“評(píng)分”按鈕,選擇“指定宏”,輸入宏名“評(píng)分”,單擊“新建”按鈕,編輯如下代碼:
Sub 評(píng)分()
Sheets("成績(jī)記錄").Rows("3:3").Insert Shift:=xlDown
'在成績(jī)記錄工作表第3行前插入一行
Sheets("成績(jī)記錄").Rows("2:2").Copy
'復(fù)制成績(jī)記錄工作表第2行
Sheets("成績(jī)記錄").Range("A3").PasteSpecial Paste:=xlPasteValues
'以數(shù)值方式粘貼到成績(jī)記錄工作表A3
得分 = MsgBox("最終得分" & Range("成績(jī)記錄!D2").Value & "其中:單選題" &Range("成績(jī)記錄!E2").Value & "、多選題" & Range("成績(jī)記錄!F2").Value&"、判斷題" & Range("成績(jī)記錄!G2").Value &, , "評(píng)分結(jié)果")
'彈出信息框顯示成績(jī)記錄!D2、E2、F2、G2的數(shù)據(jù),標(biāo)題為"評(píng)分結(jié)果"
Range("D2,D5:D34,D36:D75,D77:D106").ClearContents
'清除試卷工作表中輸入的內(nèi)容
Rows("3:106").RowHeight = 0
'設(shè)置題目區(qū)行高為0,以隱藏所有題目
ActiveSheet.Shapes("出題按鈕").Visible = True
ActiveSheet.Shapes("評(píng)分按鈕").Visible = False
'顯示出題按鈕,隱藏評(píng)分按鈕
ActiveWorkbook.Save
'保存
End Sub
9.其他設(shè)置
選中A4單擊“窗口/凍結(jié)空格”以始終顯示1:3行的標(biāo)題和按鈕。右擊C、E列選擇隱藏。為答題區(qū)以外單元格設(shè)置填充色以示區(qū)別,把評(píng)分按鈕重疊到出題按鈕上(如圖1)。
圖1
選中D5:D34右擊選擇“設(shè)置單元格格式”,在“保護(hù)”選項(xiàng)卡中單擊取消“鎖定”選項(xiàng),對(duì)于同樣需要添寫的D2,D36:D75,D77:D106區(qū)也同樣取消鎖定設(shè)置。然后單擊“工具/保護(hù)/保護(hù)工作表”,在中間“允許此工作表所有用戶進(jìn)行”列表中只選中“選定未鎖定單元格”和“設(shè)置行格式”兩個(gè)選項(xiàng),輸入密碼(如圖2),單擊確定把工作表保護(hù)起來,這樣考生就無法修改試題等相應(yīng)單元格了。單擊評(píng)分以隱藏所有題目,同時(shí)顯示出題按鈕,把文件保存為“模擬考試.xls”,退出。
圖2
系統(tǒng)維護(hù)
1.資料輸入
直接在前面做好的單選題、多選題、判斷題工作表中輸入題目和答案即可,按Alt+回車鍵換行,用空格進(jìn)行水平定位。答案輸入時(shí)注意不要有多余字符,特別是多選題一定要按ABCD的順序輸入多選項(xiàng),否則無法正確評(píng)分,建議參照一4步操作對(duì)C列單元格設(shè)置有效性。若以后還想用到當(dāng)前的題目順序可在最后面增加一列(E列)填充序列號(hào),需要時(shí)按此列排序即可。在“考生記錄”工作表中輸入姓名和準(zhǔn)考證號(hào),這可以直接從相關(guān)工作表中復(fù)制過來。
2.隱藏工作表
把除試卷外的其他工作表隱藏起來以免考生看到。單擊“工具/宏/VisualBasic編輯器”,在彈出窗口左側(cè)選中要隱藏的工作表名,如:Sheet4(判斷題),在屬性窗口中把Visible項(xiàng)的值設(shè)置為0-xlsheetHidden(如圖3)即可隱藏該工作表,重復(fù)這一步把除試卷外的其他工作表全部隱藏。以后如需顯示只要按這操作把Visible改回-1-xlsheetVisible即可。若看不到屬性窗口可按F4鍵顯示。
圖3
為防止學(xué)生修改,還得右擊VBAProject(模擬考試.xls)選擇“VBAProject 屬性”,在“保護(hù)”選項(xiàng)卡中選中“查看時(shí)鎖定工程”,并輸入密碼(如圖4),確定保存文檔退出。這樣以后沒有密碼就別想修改這些內(nèi)容了。
圖4
如何考試
打開“模擬考試.xls”就只有一張“試卷”工作表,先輸入準(zhǔn)考證號(hào)回車確認(rèn),正確的話就顯示姓名否則會(huì)要求你重輸。單擊出題按鈕即可顯示題目,同時(shí)出題按鈕會(huì)變成評(píng)分按鈕。考生可在D列選中相應(yīng)單元格直接輸入答案或單擊單元格后的下拉按鈕從列表中選擇輸入(如圖5)。題目做完后,單擊“評(píng)分”按鈕即可顯示最后得分,確定后自動(dòng)保存,并回復(fù)到最初狀態(tài)。
圖5
小提示
叩開Excel的安全門
按照上面方法制作的模擬考試系統(tǒng)在運(yùn)行時(shí)有一個(gè)問題,Excel2003的默認(rèn)設(shè)置會(huì)把宏的安全性設(shè)置為高,表現(xiàn)為運(yùn)行時(shí)出現(xiàn)“安全性提示”對(duì)話框。解決方法是,打開Excel文檔,依次單擊“工具→宏→安全性”,選擇“中”并“確定”,關(guān)閉并重新打開Excel文檔后,選擇“啟用宏”即可。
系統(tǒng)修改
在電腦上能直接處理的題型就只有這三種,所以能改的也只有各種題的數(shù)量而已。這只要三步即可:
1.撤消工作表保護(hù),在相應(yīng)題目中選中N行,右擊選擇“復(fù)制”再選擇“插入復(fù)制單元格”,如果要減少則右擊選擇“刪除”就OK。
2.選中B:D列右擊選擇“取消隱藏”,按一.3中介紹的規(guī)則修改復(fù)制二、三大題各題目區(qū)域的公式。然后重新隱藏C列和保護(hù)工作表。分?jǐn)?shù)記錄中的公式會(huì)自動(dòng)調(diào)整可不必修改。
3.修改一.8評(píng)分的宏代碼中最后
Range("D2,D5:D34,D36:D75,D77:D106").ClearContents
Rows("3:106").RowHeight = 0
中的區(qū)域范圍即可。
本文中的兩個(gè)宏代碼其實(shí)最主要部分就只是排序、設(shè)置行高、插入行、復(fù)制、選擇性粘貼等基本操作而已,如果你不喜歡編代碼,那么大可使用錄制宏直接錄制相應(yīng)操作,基本的出題和評(píng)分功能都同樣可以實(shí)現(xiàn),只是會(huì)少一些提示窗口和按鈕限制而已。
聯(lián)系客服