我正在尝试创建一个新的PowerPoint插件。我遇到了一个问题,我想确定幻灯片1上的给定形状是否也存在于下一张幻灯片上。
有没有办法比较不同幻灯片的形状并确定它们是否相同?
我可以比较类型,尺寸,文本和其他类似属性,但这可能不是解决此问题的正确方法。有更好的方法吗?
答案 0 :(得分:0)
什么是“相同”形状适合你? 所有形状都有不同的ID,所以你无法比较它们,但你可以比较大小,位置(Shape.Width,Shape.Height等)和内容(图表,表格或文本?)。 如果足够的属性相等,则可以认为它们是相等的。
答案 1 :(得分:0)
如果满足您的标准,这样的东西将从另一张幻灯片返回“相同”的形状。如果您愿意,可以让它返回True / False:
Function SameShape(oThisShape As Shape, oOtherSlide As Slide) As Shape
Dim oSh As Shape
For Each oSh In oOtherSlide.Shapes
If oSh.Type = oThisShape.Type Then
If oSh.Height = oThisShape.Height Then
If oSh.Width = oThisShape.Width Then
' other conditions here as required
Set SameShape = oSh
Exit Function
End If
End If
End If
Next
End Function
一个警告:如果形状为.Type = msoPlaceholder,您还需要查看.PlaceholderFormat.ContainedType是否相同。