我有一个宏,可以在幻灯片中搜索所有形状并隐藏与某些名称匹配的形状。我的形状集合包括标准形状和CommandButton的混合。
命令按钮在属性窗口中的“可见”属性设置为“假”,在PowerPoint编辑屏幕中不可见,但在“幻灯片放映”视图中仍然可见。当我绕过shape变量(sh.Visible)并直接引用命令按钮(startB.Visible)时,不会发生此问题。见下文:
For Each sh In ActivePresentation.Slides(1).Shapes
If sh.Name = "startB" Then
sh.Visible = False
End If
Next
答案 0 :(得分:0)
遍历形状时,需要对照对象检查表单控件名称。我添加了第一个If语句来检查形状的类型。然后,第二个If将访问OLEFormat对象名称。
If sh.Type = msoOLEControlObject Then
If sh.OLEFormat.Object.Name = "startB" Then
sh.Visible = False
End If
End If
答案 1 :(得分:0)
我认为这是因为形状只是“命令按钮”的一个组成部分。作为解决方法,我已经做到了,尽管我并不100%确信为什么会发生这种情况:
If sh.Name = "startB" Then
sh.OLEFormat.Object.Visible = False
End If
哪个工作正常。我在这里有点迷惑,因为我习惯于Excel,在这里我可以直接将其称为OLEObject.Object,但是即使您仍在引用OLEObjects,OLEFormat似乎也有所不同。只是有些问题困扰着我。