1

我有几十个 PowerPoint 节目,每个节目都包含几十张幻灯片。它们非常基本,因为每张幻灯片上只有一个形状,并且在形状上或幻灯片之间没有使用动画。问题是创建它们的人并没有真正注意从一张幻灯片到另一张幻灯片的形状的垂直位置,因此从一张幻灯片转到另一张幻灯片时非常明显。

我希望能够为每张幻灯片上的每个形状快速将垂直位置设置为相同的值。水平位置很好。我一直在手动完成它们,但是有很多幻灯片和幻灯片要浏览,我宁愿不必这样做,因为它非常耗时。

我在这个网站和谷歌上做了一些搜索,但还没有找到任何东西。如果它需要 VBA 代码,那也没关系。

我正在使用 PowerPoint 2010。

4

2 回答 2

1

作为一个起点(总空气代码,请注意):

Sub LineEmUpDano()
  Dim oSl as Slide
  Dim sngTop as Single

  ' Pick up the top position of the first shape
  ' on the first slide:
  SngTop = ActivePresentation.Slides(1).Shapes(1).Top

  ' Apply the top position to each slide in the pres
  For Each oSl in ActivePresentation.Slides
    oSl.Shapes(1).Top = sngTop
    ' you could instead use
    ' oSl.Shapes(1).Top = 42 ' or whatever value you like
    ' Values are in points, 72 points to the inch
  Next  ' slide
End Sub
于 2013-02-03T04:43:02.603 回答
0

使用上面史蒂夫的建议作为起点,然后阅读一些教程,我能够想出一个工作脚本:

Sub UniformHeight()
    Dim SlideToCheck As Slide
    Dim ShapeIndex As Integer

    For Each SlideToCheck In ActivePresentation.Slides
        For ShapeIndex = SlideToCheck.Shapes.Count To 1 Step -1
            SlideToCheck.Shapes(ShapeIndex).Top = 36
        Next
    Next
End Sub
于 2013-02-06T01:54:43.010 回答