使用ppt进行交互式测验

时间:2013-04-25 12:11:42

标签: vba powerpoint powerpoint-vba

我之前发布了一个关于此的垃圾问题,并且已经离开并做了一些工作来重新询问。基本上我做了一个ppt测验,计算一个人给出了多少正确和错误的答案。然后,它会在最后将此信息反馈给用户。然而,我现在想要发生的是我希望存储结果,以便我可以返回并查看每个用户在测验中的表现。理想情况下,我希望它可以在6个联网计算机上工作,将所有测验结果存储在一个地方。但如果需要,我可以从6台计算机中的每台计算机中取出一个文件。

到目前为止我的代码看起来像这样:

Dim username As String
Dim numberCorrect As Integer
Dim numberWrong As Integer

Sub YourName()
username = InputBox(prompt:="Type your Name")
MsgBox " Get Ready to begin " + username, vbApplicationModal, " Orange 1C Book 7"
End Sub

Sub correct()
numberCorrect = numberCorrect + 1
ActivePresentation.SlideShowWindow.View.Next
End Sub

Sub incorrect()
numberWrong = numberWrong + 1
ActivePresentation.SlideShowWindow.View.Next
End Sub

Sub Start()
numberCorrect = 0
numberWrong = 0
YourName
ActivePresentation.SlideShowWindow.View.Next
End Sub

Sub Results()
MsgBox "Well done " & username & " You got " & numberCorrect & " out of " & numberCorrect + numberWrong, vbApplicationModal, "Orange 1C Book 7"

End Sub'

非常感谢任何帮助。不确定从下一步开始的位置。

1 个答案:

答案 0 :(得分:1)

这里有一个选项...但首先要解释一下。此代码将创建TXT文件。每当有人到达Results宏时,它都会将结果添加到文件中。因此,一个文件将保留所有结果,直到您不删除它们(或文件)。因此,我添加了分隔线和日期/时间信息,以便您轻松找到合适的结果。

Sub Save_Results_To_Txt()

    'set file results location to activepresentation path
    'or could be changed to any path string
    Dim strWhere As String
        strWhere = ActivePresentation.Path
    'let's set name of the file separately
    Dim strName As String
        strName = "\results.txt"

    Dim ff As Long
    ff = FreeFile

    Open strWhere & strName For Append As #ff

    Write #ff, Now & vbTab & username
    Write #ff, numberCorrect & vbTab & vbTab & numberWrong
    Write #ff, String(30, "-")

    Close #ff

End Sub

您需要将Save_Results_To_Txt添加到Results子广告,可能在MsgBox行之前。

您的results.txt文件如下所示:

"2013-04-25 16:11:05    Tom"
"10     11"
"------------------------------"
"2013-04-25 16:11:23    Mark"
"11     10"
"------------------------------"