标签:VBA,PowerPoint编程
下面,我们先制作一份填空测验的PPT。
在这份PPT中,允许学生在幻灯片放映模式下的文本框中输入答案。后续,他们还可以验证自己的答案,并看到一份报告,其中包含他们正确和错误的问题数量。
老师可以创建任意数量的问题幻灯片,并在每张幻灯片中添加多个空格。一种实现方法是,在同一张幻灯片外放置每个空格对应的正确答案;然后,告诉VBA代码匹配这两个答案,也就是学生的作答和幻灯片外的文本,并评估答案。这种方法可以让教师快速修改模板并编辑正确答案,而无需修改任何VBA宏代码。
步骤1:创建标题幻灯片
创建一个标题幻灯片,其中有一个含有“开始测试”文本的形状,示例幻灯片如下图1所示。当然,你可以在幻灯片中添加其他图片或形状来进一步美化幻灯片。
图1
步骤2:添加问题幻灯片
插入一张新幻灯片,在其中输入要回答的问题,并且添加一个含有“下一题”的形状,示例幻灯片如下图2所示。
图2
步骤3:添加文本框
单击功能区“开发工具”选项卡“控件”组中的“文本框”控件,在幻灯片中绘制一个空白文本框并置顶,如下图3所示。
图3
选取该文本框,单击功能区“开发工具”选项卡“控件”组中的“属性”,将其名称命名为“AA”,其内容保持为空。
步骤4:放置正确答案
在该幻灯片外面,再插入一个“文本框”控件,将其名称命名为“CA”,并在里面输入正确答案,示例幻灯片如下图4所示。
图4
重复步骤2-步骤4,添加其他幻灯片,下面图5是又添加的一张示例幻灯片。
图5
步骤5:编写VBA代码
在VBE中,插入一个标准模块,在其中输入下面的代码:
Sub Initialise()
Dim i As Long
For i = 2 To 3 '可根据实际调整数量
ActivePresentation.Slides(i).Shapes("AA").OLEFormat.Object.Value = ""
Next i
ActivePresentation.SlideShowWindow.View.Next
End Sub
Sub CheckAnswer()
Dim CS As Slide
'表示当前幻灯片,而不是幻灯片编号
Set CS = ActivePresentation.SlideShowWindow.View.Slide
If UCase(CS.Shapes("AA").OLEFormat.Object.Value) = UCase(CS.Shapes("CA").OLEFormat.Object.Value) Then
MsgBox "答案正确"
ActivePresentation.SlideShowWindow.View.Next
Else
MsgBox "答案错误. 请重试!"
End If
End Sub
步骤6:将代码与幻灯片关联
在上图1所示的幻灯片中,选取含有“开始测试”文本的形状,单击功能区“插入”选项卡“链接”组中的“动作”按钮,在弹出的“操作设置”对话框中,选取“运行宏”,然后在其下拉列表中选取要关联的宏,本例中为Initialise,如下图6所示。
图6
同样,对于下面的问题幻灯片中,将含有“下一题”文本的形状关联宏CheckAnswer。
至此,一份填空测验PPT制作完成。
单击功能区“幻灯片放映”选项卡“从头开始”,即可开始测验。
未完待续……