我想用 word VBA 制作一份1o道选择题,10道填空题的试卷,每道题5分,共100分。
要求: 输入名字、班别的文本框;
单选题得分;
填空题得分;
总分;
单选题答对情况反馈
填空题答对情况反馈
点击上面按钮后,能自动得分。
word vba 试卷
weishi 发表于: 2009-9-16 11:31 来源: 扑奔PPT网
大家对 word vba 试卷 的评论
最新PPT模板
最新贴子
PPT热贴
第二步:为了能记录考生做各个题目的答案和统计其得分,要定义公用变量和数组,双击“输入姓名”按钮进入VBA代码编写窗口,选择菜单项“插入\模块”,在模块编辑窗口输入代码:
public xm as string
public aw(50) as string
public sm(50) as integer
其中xm变量用于记录考生姓名,数组aw(50)用于记录考生各题所选择的答案,sm(50)数组用于记录各个答案的得分。这里设置的数组上界是50,如果题目更多,可加大这个上界。
用InputBox()函数记录考生输入的姓名,输入代码:
Private Sub CommandButton1_Click()
xm = InputBox("输入考生姓名...")
End Sub
第三步:为每题目的各个答案输入记录答案和得分代码,双击答案A选项按钮,输入代码,其中aw(1)用于记录第1题答案,sm(1)用于记录第1题得分,答案B中的sm(1)=2表示它是正确答案,选择这个答案得2分,其它答案得0分。到这里,试卷的考生姓名输入和第一题就做好了,接着插入一张空白幻灯片做第二题,除了不用“姓名输入”按钮外,其它的制作过程与第一张类似,只要改变题目内容,答案记录用aw(2),得分记录用sm(2)即可,依此类推,其它各题幻灯片类似制作。
第四步:制作交卷按钮:在最后一题的幻灯片中加入一个“交卷”按钮,双击这个按钮,输入如下代码:
Private Sub CommandButton1_Click()
Dim i, j, s, nf As Integer
nf = FreeFile
s = 0
For i = 1 To 50 ’累加各题得分。
s = s + sm(i)
Next
Open xm & ".txt" For Append As nf ’用输入的姓名作文件名,在当前文件夹中建立一个文本文件。
For j = 1 To 50 ’把各个题号和所选择的答案按顺序写入到这个文本文件中去。
Print #nf, Str(j) & aw(j);
Next j
Print #nf, Str(s) ’把得分写入到这个文本文件的最后。
Close nf
End Sub
这段代码使用VBA的文本文件功能,记录考生各个题目所选择的答案,并累计得分,实现自动改卷,其中语句后面的解释部份可不用输入;如果要把记录答案和得分的文本文件保存的指定的文件夹中,只要把其中建立文本文件的Open语句加上相应路径即可,例如“Open "d:\test" & xm & ".txt" For Append As nf ”可在D盘的test文件夹中建立这个文本文件。最后,为了防止考生使用幻灯片考卷时看到其中的代码,在代码编写视图下选择菜单项“视图\工程资源管理器”,用鼠标右键点“VBAProject(考卷)”,在其属性对话框中选择“保护”标签选项输入密码实现密码保护。
至此考卷制作完成,使用时考生在PowerPoint中打开这个“考卷.ppt”文件,按F5键放映浏览各题的幻灯片,点选各题所选择的答案按钮,完成后按“交卷”按钮。考生交卷后,教师打开上述Open语句指定文件夹中以考生姓名作文件名的文本文件,其中记录有考生的各题答案和考试得分。