0

嗨,我是 PowerPoint VBA 世界的新手,希望我的英语不会太差:我必须在 PowerPoint 2010 中解决以下问题:首先我更改为 16:9 宽屏格式,然后浏览每张图片现在太大了,并且仅通过单击向上和向下箭头缩放高度来从图片中更改大小对话框。图片将采用我之前在 4:3 演示中使用的正确格式。这很容易,但如果您必须更改 100 多张图片,则并非如此。我尝试了很多次,但没有任何效果。这是我的代码:

Sub ChangePictures()
Dim sld As Slide
Dim sh As Shape
Dim meinShHeight As Double

ActivePresentation.PageSetup.SlideSize = 15

For Each sld In ActivePresentation.Slides
For Each sh In sld.Shapes
'If sh = msoLinkedOLEObject Or msoTextBox Then
        If sh.Type = msoPicture Then
'meinShHeight = sh.ScaleHeight.Value
'sh.ScaleHeight meinShHeight, msoScaleFromTopLeft
             sh.LockAspectRatio = msoTrue
              With tSlide.Shapes.Select
                  .Height = ActiveWindow.Presentation.PageSetup.SlideHeight
                  .Width = ActiveWindow.Presentation.PageSetup.SlideWidth
             End With
'sh.ScaleHeight  1.75, msoTrue
'sh.ScaleHeight -1.75, msoTrue
        End If
'End If
  Next
Next

End Sub

也许不可能在 VBA 中使用这种上下箭头技巧?不幸的是,我无法使用 PowerPoint 2013,然后我的演示文稿没有任何问题。

有没有人可以帮助我。我希望以正确的方式表达我的问题;-)

提前致谢。

问候琪琪

4

1 回答 1

0

这对我有用

Sub ChangePictures()
    Dim sld As Slide
    Dim sh As Shape

    ActivePresentation.PageSetup.SlideSize = 15

    For Each sld In ActivePresentation.Slides
        For Each sh In sld.Shapes
            If sh.Type = msoPicture Then
                With sh
                    .LockAspectRatio = msoTrue
                    .ScaleHeight ActiveWindow.Presentation.PageSetup.SlideHeight, msoTrue
                    .ScaleWidth ActiveWindow.Presentation.PageSetup.SlideWidth, msoTrue
                End With
            End If
        Next
    Next
End Sub
于 2014-02-06T09:19:42.473 回答