可向幻灯片添加控件,从而提供一种在幻灯片放映时与用户交换信息的精细方式。 例如,可在幻灯片中使用控件,让观看专在展台模式下运行的幻灯片的用户能够选择相关选项,然后让演示者能根据观看者的选择运行自定义放映。
要概要性了解如何添加和使用控件,请参阅如何:在文档中使用 ActiveX 控件和如何:创建自定义对话框。
在幻灯片中使用控件时,请记住以下几点。
除了在幻灯片放映运行时,幻灯片中的控件都处于设计模式。
如果希望控件显示在演示文稿的所有幻灯片中,可以将其添加到幻灯片母版中。
幻灯片中控件事件过程的 Me 关键字指向幻灯片,而非控件。
为幻灯片的控件编写事件代码与为窗体的控件编写事件代码非常类似。 下列过程将设置幻灯片的背景:单击按钮时,启用名为“cmdChangeColor”的按钮。
Private Sub cmdChangeColor_Click()
With Me
.FollowMasterBackground = Not .FollowMasterBackground
.Background.Fill.PresetGradient _
msoGradientHorizontal, 1, msoGradientBrass
End With
End Sub
若要向幻灯片放映提供比 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
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。