需要在PowerPoint中将形状位置设置为所有幻灯片中的相同值

时间:2013-02-03 01:00:33

标签: powerpoint powerpoint-vba powerpoint-2010

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

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

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

我正在使用PowerPoint 2010。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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