Powerpoint VBA 将 ComandButton 形状设置为隐藏

Powerpoint VBA setting ComandButton shape to Hidden

我有一个宏可以搜索幻灯片中的所有形状并隐藏与特定名称匹配的形状。我的形状集合包括标准形状和命令按钮的组合。

命令按钮在属性 window 中的 "Visible" 属性 设置为 "False",并且它们在 powerpoint 编辑屏幕中不可见,但是它们在幻灯片放映视图中保持可见。当我绕过形状变量 (sh.Visible) 并直接引用命令按钮 (startB.Visible) 时,不会出现此问题。见下文:

For Each sh In ActivePresentation.Slides(1).Shapes
    If sh.Name = "startB" Then
        sh.Visible = False
    End If
Next

循环遍历形状时,需要根据对象检查表单控件名称。我添加了第一个 If 语句来检查形状的类型。然后,第二个 If 将访问 OLEFormat 对象名称。

If sh.Type = msoOLEControlObject Then
    If sh.OLEFormat.Object.Name = "startB" Then
        sh.Visible = False        
    End If
End If

我假设这是因为形状只是命令按钮的一个组件。作为变通方法,我得到了这个,尽管我对为什么会发生这种情况不是 100% 有信心:

If sh.Name = "startB" Then
    sh.OLEFormat.Object.Visible = False
End If

效果很好。我在这里有点迷路了,因为我习惯了 Excel,在那里我可以直接引用事物 OLEObject.Object,但即使您仍然引用 OLEObject,OLEFormat 似乎有点不同。只是遇到了一些问题。