可以在幻灯片中添加控件,从而提供一种完善的方法在幻灯片放映时与用户交换信息。例如,在为展台所设计的幻灯片中可以使用控件,使观众能选择选项,然后基于观众的选项运行自定义放映。
有关添加和使用控件的一般信息,请参阅在文档中使用 ActiveX 控件和创建自定义对话框。
在幻灯片中使用控件时,请记住以下几点:
除了在幻灯片放映运行时,幻灯片中的控件都处于设计模式。
如果希望控件显示在演示文稿的所有幻灯片中,可以将其添加到幻灯片母版中。
幻灯片中控件事件过程的 Me 关键字指向幻灯片,而非控件。
为幻灯片的控件编写事件代码与为窗体的控件编写事件代码非常类似。单击幻灯片按钮“cmdChangeColor”时,以下过程设置该按钮所在的幻灯片的背景为激活状态。
Private Sub cmdChangeColor_Click()
With Me
.FollowMasterBackground = Not .FollowMasterBackground
.Background.Fill.PresetGradient _
msoGradientHorizontal, 1, msoGradientBrass
End With
End Sub
你可能需要使用控件为幻灯片提供比 Microsoft PowerPoint 内置工具更复杂的漫游工具。例如,如果在幻灯片母版中添加两个名为“cmdBack”和“cmdForward”的按钮,并为其编写下面的代码,所有基于该母版(并设为显示幻灯片母版背景图形)的幻灯片在放映幻灯片时,将激活这些看起来非常专业化的导航按钮。
Private Sub cmdBack_Click()
Me.Parent.SlideShowWindow.View.Previous
End Sub
Private Sub cmdForward_Click()
Me.Parent.SlideShowWindow.View.Next
End Sub
若要在不影响幻灯片中其他形状的情况下操作所有 ActiveX 控件,可以创建一个只包含控件的 ShapeRange 集合。然后可以对整个集合应用属性和方法,或对集合进行重复操作以单独使用每个控件。以下示例将当前演示文稿中第一张幻灯片的所有控件对齐并垂直排列。
With ActivePresentation.Slides(1).Shapes
numShapes = .Count
If numShapes > 1 Then
numControls = 0
ReDim ctrlArray(1 To numShapes)
For i = 1 To numShapes
If .Item(i).Type = msoOLEControlObject Then
numControls = numControls + 1
ctrlArray(numControls) = .Item(i).Name
End If
Next
If numControls > 1 Then
ReDim Preserve ctrlArray(1 To numControls)
Set ctrlRange = .Range(ctrlArray)
ctrlRange.Distribute msoDistributeVertically, True
ctrlRange.Align msoAlignLefts, True
End If
End If
End With