【问题标题】:Loop to move/resize images on all slides循环移动/调整所有幻灯片上的图像大小
【发布时间】:2020-05-20 15:00:23
【问题描述】:

我需要创建一个包含 200-300 张幻灯片的 PowerPoint,每张幻灯片上都有一张图片和人名。我求助于 PowerPoint 和 VBA 来完成工作。我已经处理了名称问题。我已经导入了使用相册的图像。它将图像放置在中心位置。我转向使用宏(见下文)来移动/调整图像大小。它仅适用于一张幻灯片。我已经全面搜索了如何循环,以便它可以对所有幻灯片执行此操作,但我无法弄清楚。我是 VBA 新手,所以我不知道从哪里开始。提前感谢您的任何建议或帮助!

Sub ResizeImages()
With ActiveWindow.Selection.ShapeRange
    .Height = 400
    .Width = 300
    .Left = 45
    .Top = 45
 End With
End Sub

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

    试试这个:

    Sub resizeImage()
        Dim sld As Slide
        Dim shp As Shape
    
        For Each sld In ActivePresentation.Slides
            For Each shp In sld.Shapes
                With shp
                    .Height = 400
                    .Width = 300
                    .Left = 45
                    .Top = 45
                End With
    
            Next
        Next
    End Sub
    

    【讨论】:

    • 因为OP提到了名字,我们可能会假设幻灯片上还有其他形状,所以最好在END WITH后加上IF SHP.TYPE = MSO PICTURE THEN,然后加上END IF。这样,您只会调整图片的大小/位置,而不是幻灯片上的其他形状。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多