1

我正在尝试创建一个新的 PowerPoint 插件。我遇到了一个问题,我想确定是否对于幻灯片 1 上的给定形状,下一张幻灯片上是否也存在相同的形状。

有没有办法可以比较不同幻灯片的形状并确定它们是否相同?

我大概可以比较类型、尺寸、文本和其他类似的属性,但这可能不是解决这个问题的正确方法。有一个更好的方法吗?

4

2 回答 2

1

如果符合您的条件,这样的东西将从另一张幻灯片返回“相同”的形状。如果您愿意,您可以让它返回 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 是否相同。

于 2013-09-02T14:59:21.433 回答
0

什么是您的“相同”形状?所有形状都有不同的 ID,因此您无法比较它们,但您可以比较大小、位置(Shape.Width、Shape.Height 等)以及内容(图表、表格或文本?)。如果足够多的属性相等,则它们可能被视为相等。

于 2013-09-02T10:46:20.620 回答