第三节 用 VBA 制作智能交互型的课件 如果课件要求智能反馈,如填空题、选择题或判断题等,可利用控件搭建环境,利用 VBA 编程,来实现复杂的智能交互。 一、 VBA 编程基础 (一)常用控件的属性设置 1. 复选框 ( CheckBox ) 可以选择多个选项,常用来设计多选题;其属性设置: AutoSize :有两个值, True 表示根据字的多少调整复选框大小, False 表示复选框为固定大小; BackColor :设置复选框的背景颜色,单击该属性框出现下拉按钮,选择“调色板”选项卡后选择颜色; Caption :控件的名称,把默认值删除后,再重新输入新名称; Font :设置字体、字号及字形,单击该属性框出现按钮,单击该按钮出现字体对话框,再在对话框中对字体格式设置; ForeColor :设置字的颜色,设置方法同 BackColor ; Height :复选框的高度,直接输入数字即可; Width :复选框的宽度,直接输入数字即可; Value :复选框的值, True 为选中,相反 False 则为未选中。 2. 文本框 ( TextBox ) 可以输入文本,常用来设计填空题;其 AutoSize 、 BackColor 、 Font 、 ForeColor 、 Height 、 Width 等属性的设置方法同复选框; Value :文本框的值,用来保存输入的文本; TextAlign :设置文本对齐方式。 3. 命令按钮 ( CommandButton ) 用来确定选择或输入,也可设计超级链接等;属性设置同复选框。 4. 单选框 ( OptionButton ) 只能选中一个选项,常用来设计单选题或判断题;除 Value 外,其他同复选框。 5. 标签 ( Label ) 用来显示文字信息。除 Value 外,其它同复选框。 6. 消息框( MsgBox ) 常用消息框显示一些交互的信息,如图 10 - 29 所示的消息框用下面的语句可实现: MsgBox( ” 这是一个例题 ”,vbYesNo,” 示例 ”) 。 图 10-29 用消息框显示交互信息 (二) VBA 的编程环境 双击幻灯片中的控件,或用菜单 “工具” -> “宏” -> “ Visual basic 编辑器”命令,即可进入 VBA 编程状态。进入 VBA 后,需要在“属性”窗口中对控件的属性进行设置。如果没有出现“属性”窗口, 按 F4 键即可调出该窗口。 二、制作智能交互型的课件 以制作单选题、选择题、判断题和填空题为例来介绍智能课件的制作方法。 (一)单选题的制作 图 10-30 单选题的运行界面 1. 题目 题目的输入可用文本框,也可用标签。如果用文本框,直接输入文本即可。如果用标签(第一个标签),插入后双击该标签启动 VBA ,修改 Caption 属性为“ 5X-15=0 的解是:”,再根据需要修改其他属性(如颜色等)。如图 10 - 30 所示。 2. 答案选项 插入一个单选框(第一个单选框),修改其 Caption 属性为“ A 3 ”,其他属性可自行修改。其他的单选项可复制制作好的单选框(第二、三和四个单选框),然后再分别修改它们的 Caption 属性为“ B 5 ”、“ C 11 ”和“ D 18 ”。 3. “查看答案”命令按钮 在此插入一个命令按钮(第一个命令按钮),我们可根据单选框的 Value 属性的值来判断答案,如正确选项(单选框)的 Value 的值为 True ,则为该题选择正确,否则为选择错误,另外还可根据选择正误来给出提示信息,有两种方法。 (1)方法一 用 MsgBox() ,如果选择正确,显示信息“ Very Good !请继续!”,选择错误则显示“ Sorry ,你选错了!正确答案是 3 ,请继续努力。”具体操作步骤:双击单选框进入 VBA 编辑窗口,在编辑窗口中完成以下操作。如图 10-31 所示。 1)在编辑窗口中找到如下两条语句: Private Sub OptionButton1_Click() 和 End Sub 语句。 然后在上面这两条语句中间插入以下语句: If OptionButton1.Value=True Then ex=MsgBox(“Very Good !请继续努力。 ”,vbOKOnly) 2)同理,找到如下三组语句: 第一组语句: Private Sub OptionButton2_Click() 和 End Sub ; 第二组语句: Private Sub OptionButton3_Click() 和 End Sub ; 第三组语句: Private Sub OptionButton4_Click() 和 End Sub 。 在这三组的两条语句中间分别插入语句: If OptionButton2.Value=True Then ex=MsgBox(“ 正确答案是 3 ,请继续努力。 ”, vbOKOnly) If OptionButton3.Value=True Then ex=MsgBox(“ 正确答案是 3 ,请继续努力。 ”, vbOKOnly) If OptionButton4.Value=True Then ex=MsgBox(“ 正确答案是 3 ,请继续努力。 ”, vbOKOnly) 说明: ex 为自定义变量 图 10-31 方法 1 的代码编辑窗口 (2)方法二 在幻灯片合适的地方插入一个标签(第二个标签),修改其 Caption 属性为空,其他设置同方法一,只要把正确选项中的“ then ”后的语句名改为“ Label2.Caption=”Very Good! 请继续! ” ”,三个错误选项的“ then ”分别改为“ Label2.Caption=” 正确答案是 3 ,请继续努力。 ” ”即可。 图 10-32 方法2的代码编辑窗口 4. “重新选择”命令按钮 在幻灯片适当的地方插入一个命令按钮(第二个命令按钮),修改其 Caption 属性为“重新选择”,如图 10-33 所示。在编辑窗口中的 Private Sub CommandButton2_Click() 和 End Sub 语句间插入: OptionButton1.Value = False OptionButton2.Value = False OptionButton3.Value = False OptionButton4.Value = False Label2.Caption =”” // 如判断正误用的是方法一,此语句不要 5. “下一题”命令按钮 在幻灯片适当地方插入一个命令按钮(第三个命令按钮),修改其 Caption 属性为“下一题”,如图 10-33 所示。在编辑窗口中的 Private Sub CommandButton3_Click() 和 End Sub 语句间插入 If MsgBox(“ 是否继续 ”, VbYesNo + VbQuestion, “ 下一题 ”)= VbYes Then With SlideShowWindows(1).View .GotoSlide 2 End With //2 为第 2 张幻灯片,此语句表示转到第 2 张幻灯片 End if 图 10-33 “重新选择”和“下一题”命令按钮代码编辑窗口 如果要根据条件的不同转到不同的幻灯片,可用下面语句: If 条件 then With SlideShowWindows(1).View .GotoSlide n //n 为第 n 张幻灯片,此语句表示转到第 n 张幻灯片 End With End if 说明:条件可以是 Caption 属性或 Value 属性,书写方法为:控件名称 ( 在 VBA 中的名称 ). 属性 =(value 属性为 True 或 False , Caption 属性为具体文本,注意文本要加双引号 ) ,例如下面的语句: If OptionButton1.Value=True then …… End if 表示如果单选框 1 的 Value 值为 True ,那么运行 then 后的语句,一直到 End if 。 (二)多选题的制作 题目的设计同单选题。答案选项用复选框( CheckBox ),其他设置同单选题。“查看答案”命令按钮,因为是多选题,答案有多个,所以要书写多个条件,条件之间用 and 连接,表示同时满足这几个条件,比如第 1 、 3 选项是正确的,则需要输入如下语句: If CheckBox1.Value=True And CheckBox3.Value=True Then 给出正确的提示信息同单选题 Else 给出错误的提示信息同单选题 End if (三)判断题的制作 所有的设置与单选题类似,只不过两个答案选项是“ √ ”和“ × ”,这两个符号可先在 Word 中插入,然后再复制过来。 (四)填空题的制作 点击文本框控件,在幻灯片适当的位置拖拉鼠标得到合适大小的文本框。选中该文本框,右击选择“查看代码”命令,打开代码编辑窗口,点击右上方的下拉按钮,在弹出的下拉列表中选择“ LostFocus ”。这样当文本输入完成、鼠标离开这个文本框时,就会出现在下面设置好的反馈信息。如图 10 - 34 所示。 在代码编辑窗口中找到这两条语句: Private Sub TextBox1_LostFocus() 和 End Sub 语句。 在这两行语句中间插入如下代码: If TextBox1.Value =“李白” Then MsgBox(“ 不错,你填对了。恭喜您!”, vbOKOnly ,“填空题”) Else MsgBox(“不对吧?再想想,也许您就能想起正确答案呢!”,vbOKOnly,”填空题 ”) TextBox1.Text =“” End If 说明:本例中这个填空题的正确答案就是“李白”,其它分别表示答对或答错时课件的反馈信息,制作中可以根据实际自行更改。如果有多个填空题,那么需要将上面代码中的 TextBox1 替换为 TextBox2 、 TextBox3 等,依此类推。 利用控件工具箱,在 PowerPoint 中制作智能交互的课件以课堂练习题为例介绍,实际上还有很多的用途,在此不再累述。如果需要制作一份交互性的试卷,可以复制相应的代码,然后根据具体问题进行修改,这样可以在一定程度上减少工作量。制作完成后,可将 PowerPoint 保存成 PPS 格式文件,学生双击此文件即可运行,以避免学生对试题进行编辑。 图 10-34 文本框代码编辑窗口 附: 设置“文本框”属性。具体含义为: (名称)属性:可以使用自定义的字符串或由软件自动产生。 AutoSize 属性:规定文本框对象是否自动调整大小以显示其完整的内容。 AutoTab 属性设置为 True 时,才会自动按 Tab 键顺序接收焦点。 Auto Word Select 属性:指定是采用单词还是采用字符,作为扩展选定内容的基本单元。 BackColor 设置窗体背景颜色。单击右边向下箭头,弹出“调色板”与“系统”二个选顶卡。 BackStyle 属性:返回或设置对象的背景方式。可取二个值: fmBackStyleTransparent (透明)与 fmBackStyleOpaque (不透明) BorderColor 属性:设置窗体对象的边框颜色。 BorderStyle 属性:设置窗体的边框风格。 DragBehavior 属性:指定系统是否允许在文本框中执行拖放功能。 fmDragBehaviorEnabled (允许) fmDragBehaviordisabled (不允许) Enabled 属性:设置控件是否可用,即是否响应用户的操作。 EnterFieldBehavior 属性:指定进入文本框时的选择行为。可取 True 与 False EnterKeyBehavior 属性:定义在文本框中按下 Enter 键的结果,如果为 True ,按 Enter 键将创建一个新行;如果为 False ,按 Enter 键,将焦点移到 Tab 键顺序的下一个对象(默认)。 Font 属性:用来设置文本框中文字的字体、字形、大小。 ForeColor 属性:设置前景颜色,图与 BackColor 相同。 Height 属性:用来表明对象的高度。 HideSelection 属性:指定当控件没有焦点时被选定的文本是否保持突出显示。 ImeMode 属性:获取或设置控件的输入法编辑器( IME )模式。 0-fmIMEModeNoControl 表示对输入法不加控制; 1-fmIMEModeOn 表示输入法处于打开状态; 2-fmIMEModeOff 表示输入法处于关闭状态; 7-fmIMEModeAlphaFull 表示输入处于全角状态; 8-fmIMEModeAlpha 表示输入处于半角状态; 11-fmIMEModeHanziFull 表示输入标点处于全角状态; 12-fmIMEModeHanzi 表示输入标点处于半角状态。 IntegralHeight 属性:指定文本框是显示列表中全部文本行还是显示部分行。 Left 属性:设置程序运行时窗体的水平位置。 Locked 属性:设置文本框内容在运行时是否可以被用户编辑。设置 True 时,不能编辑。 MaxLength 属性:规定用户可以在文本框或组合框中输入的最多字符数。若将 MaxLength 属性设置为 0 (默认值),表明只要内存允许则没有限制。 MouseIcon 属性:为鼠标对象指定一个自定义的图标。要与 MousePointer 结合(取 99-fmMousePointerCustom )才有效。 MousePointer 属性:指定当用户把鼠标放到特定对象上时,所显示鼠标指针的类型。 0-fmMousePointerDefault (默认值)由对象决定的形状。 1-fmMousePointerArrow 箭头; 2-fmMousePointerCrosshair 十字(十字型光标指针); 3-fmMousePointerIBeam I 型标; 4-fmMousePointerIconPointer 图标(在方块中的小方块); 5-fmMousePointerSizePointer 大小(四向箭头指向上下左右); 6-fmMousePointerSizeNESW 右上 - 左下大小(双向箭头分别指向右上和左下); 7-fmMousePointerSizeNS 垂直大小(双向箭头分别指向上和下); 8-fmMousePointerSizeNWSE 左上 - 右下大小(双向箭头分别指向左上和右下); 9-fmMousePointerSizeWE 水平大小(双向箭头分别指向左和右); 10-fmMousePointerUpArrow 向上箭头键; 11-fmMousePointerHourglass 沙漏(等待); 12-fmMousePointerNoDrop 不允许放下; 13-fmMousePointerArrowHourglass 箭头和沙漏; 14-fmMousePointerArrowQuestion 箭头和问号; 15-fmMousePointerSizeAll 四向箭头; 99-fmMousePointerCustom 窗体内显示由 MouseIcon 属性指定的自定义图标。 MultiLine 属性:设置控件是否可以接受多行文本。 PasswordChar 属性:以特定的字符来代替控件中的文本字符,这个属性很适合设置密码对话框。 ScrollBars 属性:利用滚动条来显示多行文字内容,其中 1-fmScrollBarsHorzontal 为水平滚动条; 2-fmScrollBarsVertical 为垂直滚动条; 3-fmScrollBarsBoth 为水平滚动条与垂直滚动条均存在,但要同时满足下列条件:① AutoSize 设置为 False ;② Word Wrap (含义见后面)设置为 False ;③当文字不超出文本框时,滚动条设置无效;④正处于文字编辑状态或放映状态;⑤ MultiLine 设置为 True 。 SelectionMargin 属性:规定用户能否通过单击文本左边区域来选中一行。 SpecialEffect 属性:指定对象的外观。 0-fmSpecialEffectFlat 正常,仅以框线或不同的色彩来区分。 Image 及 Label 的默认值都是如此,也可适用于其它控件。 1-fmSpecialEffectRaised 对象上缘及左缘反白,下缘及右缘有阴影; 2-fmSpecialEffectSunken 对象上缘及左缘有阴影,下缘及右缘反白,控件周围以框线与窗体区隔开; 3-fmSpecialEffectEtched 控件周围以框线与窗体区隔开; 6-fmSpecialEffectBump 对象下缘及右缘有突起,上缘及左缘则正常显示; TabKeyBehavior 属性:决定是否允许制表符出现在编辑区。 Text 属性:设置控件中的文本。 TextAlign 属性:定义控件中文本的对齐方式。 1-fmTextAlignLeft 左对齐; 2-fmTextAlignCenter 居中对齐; 3-fmTextAlignRight 右对齐。 Top 属性:设置程序运行时文本框窗体的垂直位置 Value 属性:定义某给定文本框控件的状态或内容。 Visible 设置程序运行时窗体是否可见。当 Visible 为 False 时,窗体是不可见的。将值改为为 True 。运行时窗体就是可见的了。 Width 设置文本框窗体的宽度。 WordWrap 属性:指出一个控件的内容在行末是否自动换行。 思考与练习 1. 如何在同一演示文稿中使用不同模板? 2. 在演示文稿中如何使用母板来统一设计幻灯片的风格? 3. 在演示文稿中如何使用配色方案来统一设计幻灯片的风格? 4. 在演示文稿中如何使用设计模板来统一设计幻灯片的风格? 5. 在演示文稿中如何使用宏来向幻灯片中插入图片? 6. 如何在演示文稿中插入 Flash 动画? 7. 如何在演示文稿中插入带滚动条的文本框? 8. 使用 PPT 的控件制作一份模拟考试试卷。 9. 使用 PPT 制作一个简单的智能交互的课件。 |
|