繁体   English   中英

是否可以检查一个PowerPoint演示文稿中的幻灯片是否与另一个套牌中的幻灯片相同?

[英]Is it possible to check if a slide in one PowerPoint presentation is the same as a slide in another deck?

我需要能够确定两个演示文稿中的(某些)幻灯片是否相同。 基本上每月更新一次主演示文稿,并存档以前的版本。 幻灯片顺序保持不变,只是这些幻灯片的内容可能已更改。 麻烦是......

deck1.Slides(i)=deck2.Slides(i)

......不起作用,......

deck1.Slides(i).SlideID=deck2.Slides(i).SlideID

...即使幻灯片内容已更改,也会返回相同的值。

我想知道校验和幻灯片是否可能,但是我没有在网上找到任何可以实现这一点的东西 - 我遇到的VBA校验和例程包括仅用于文本字符串。 校验和幻灯片或对象是否可能,或者我错过了一些明显的东西?

虽然这绝不是一个可随时部署的解决方案,但这可能提供一个起点,前提是您的具体任务是在看似相同的演示文稿中检查已更改的文本内容。

我将其缩小到比较幻灯片1上文本框(形状类型14)的文本内容以进行此演示。

Sub Neu()
    Dim ppt As New PowerPoint.Application

    Dim i As Integer, j As Integer        
    i = 1
    For j = 1 To ppt.Presentations(1).Slides(i).Shapes.Count

        If ppt.Presentations(1).Slides(i).Shapes(j).Type = 14 And _
            Presentations(2).Slides(i).Shapes(j).Type = 14 Then _            
                Debug.Print _
                    ppt.Presentations(1).Slides(i).Shapes(j).TextFrame.TextRange.Text = _
                    Presentations(2).Slides(i).Shapes(j).TextFrame.TextRange.Text

    Next j
End Sub

一般注意事项:

  • 这显然不能解释格式或位置的变化。
  • 一旦有新的Shapes添加到其中一个幻灯片中,我会发现一些麻烦。
  • Afaik,当添加一个新的形状时,它应该有Shape(Index) = Shapes.Count+1 ,但你永远不知道人们对你的演示做了什么......

希望有人想出一个更优雅的方法来解决这个问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM