单击时引用多个形状
Reference multiple shapes on click
我有一张包含 3 种形状的幻灯片:A、B 和 C。如果单击 A,我需要将 C 设置为可见,如果单击 B,则设置为不可见。我一直在寻找一种方法来获取被单击的形状的 ID,但看起来这是不可能的 (here and it looks like you can do it in Excel but this does not work in powerpoint)。
我也尝试过使用以下方法:
Sub test(oSh As Shape)
Dim thisSlideNum As Long
thisSlideNbr = ActivePresentation.SlideShowWindow.View.slide.SlideIndex
Select Case oSh.Name
Case "A"
ActivePresentation.SlideShowWindow.View.slide.Shapes([ID of C]).Visible = 0
End Select
End Sub
但是,这不起作用。我也试过了,和那行一样
ActivePresentation.Slides(1).Shapes([ID of C]).Visible = 1
这也没有做任何事情。我已经验证了案例陈述是真实的。有人知道根据单击其他形状更改形状可见性的正确语法吗?
这是一个有效的简化版本。变化:
由于向子传递了对单击形状的引用,因此您可以使用 oSh.Parent 获取对幻灯片的引用,这消除了一些复杂性。
我更改了形状名称并确保它们是正确的并按名称引用了形状。 IIRC 你不能通过 ID 直接引用形状,只能通过名称或索引。诚然,使用形状的 ID 可能有价值,但您需要自己编写一个 FindShapeByID 函数才能这样做。
Sub test(oSh As Shape)
Select Case oSh.Name
Case "Rectangle 5"
oSh.Parent.Shapes("Rectangle 7").Visible = True
Case "Rectangle 6"
oSh.Parent.Shapes("Rectangle 7").Visible = False
End Select
End Sub
我有一张包含 3 种形状的幻灯片:A、B 和 C。如果单击 A,我需要将 C 设置为可见,如果单击 B,则设置为不可见。我一直在寻找一种方法来获取被单击的形状的 ID,但看起来这是不可能的 (here and it looks like you can do it in Excel but this does not work in powerpoint)。
我也尝试过使用以下方法:
Sub test(oSh As Shape)
Dim thisSlideNum As Long
thisSlideNbr = ActivePresentation.SlideShowWindow.View.slide.SlideIndex
Select Case oSh.Name
Case "A"
ActivePresentation.SlideShowWindow.View.slide.Shapes([ID of C]).Visible = 0
End Select
End Sub
但是,这不起作用。我也试过了,和那行一样
ActivePresentation.Slides(1).Shapes([ID of C]).Visible = 1
这也没有做任何事情。我已经验证了案例陈述是真实的。有人知道根据单击其他形状更改形状可见性的正确语法吗?
这是一个有效的简化版本。变化:
由于向子传递了对单击形状的引用,因此您可以使用 oSh.Parent 获取对幻灯片的引用,这消除了一些复杂性。
我更改了形状名称并确保它们是正确的并按名称引用了形状。 IIRC 你不能通过 ID 直接引用形状,只能通过名称或索引。诚然,使用形状的 ID 可能有价值,但您需要自己编写一个 FindShapeByID 函数才能这样做。
Sub test(oSh As Shape)
Select Case oSh.Name
Case "Rectangle 5"
oSh.Parent.Shapes("Rectangle 7").Visible = True
Case "Rectangle 6"
oSh.Parent.Shapes("Rectangle 7").Visible = False
End Select
End Sub