全部显示

在幻灯片中使用 ActiveX 控件

   

可以在幻灯片中添加控件,从而提供一种完善的方法在幻灯片放映时与用户交换信息。例如,在为展台所设计的幻灯片中可以使用控件,使观众能选择选项,然后基于观众的选项运行自定义放映。

有关添加和使用控件的一般信息,请参阅在文档中使用 ActiveX 控件创建自定义对话框

在幻灯片中使用控件时,请记住以下几点:

为幻灯片的控件编写事件代码与为窗体的控件编写事件代码非常类似。单击幻灯片按钮“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