【问题标题】:Save all Pictures of slide into single JPG image using VBA使用 VBA 将幻灯片的所有图片保存为单个 JPG 图像
【发布时间】:2018-11-15 07:03:41
【问题描述】:

我想在 VBA PowerPoint 中执行以下操作:

我有一个PowerPoint,上面有六张图片。理想情况下,我想将六张图片分组以创建一张新图片作为 .jpg,然后将 .jpg 图片导出到文件。导出照片后,我想删除 6 张单独的图片,以便导入单个 .jpg 图片。

我用这个开始:Save all Shapes of slide into single JPG image。我理解评论,但不知道如何执行它。

如果有更好的方法,请分享。

谢谢!

【问题讨论】:

  • 这是你只想做一次的事情吗?如果是这样,那么使用 VBA 没有意义
  • 不,它适用于每张幻灯片布局相同的大型幻灯片平台
  • 我的意思是——你会不会只将这些图片合并一次,而不再做这个任务?
  • 是的,图片来自不同的来源,并在幻灯片上进行了格式化。然后组合在一起创建一张图片
  • 在不使用 VBA 的情况下将图片导出为 jpg 的简单方法是将其复制并粘贴到 Paint 中。然后点击裁剪按钮并保存为.jpg

标签: vba powerpoint


【解决方案1】:

这会将当前选定的形状转换为 PNG,将其粘贴回幻灯片并删除原始形状。

您可能需要修改它以确保选择某些内容并在没有选择时优雅地退出,或者如果它只是供您自己使用,如果您忘记选择某些内容,让 PPT/VBA 责骂您。

Sub ConvertSelectionToImage()

    Dim oShapes As ShapeRange
    Dim oGroup As Shape
    Dim oSingleShape As Shape

    ' Get a reference to the selected shapes
    Set oShapes = ActiveWindow.Selection.ShapeRange
    ' Group them so we can later pick up their coordinates
    Set oGroup = oShapes.Group
    ' copy to clipboard
    oGroup.Copy

    ' paste from clipboard as PNG to retain transparency
    Set oSingleShape = ActiveWindow.Selection.SlideRange.Shapes.PasteSpecial(ppPastePNG)(1)

    ' Position the pasted PNG to match original shapes
    With oSingleShape
        .Left = oGroup.Left
        .Top = oGroup.Top
    End With

    ' And delete the original shapes
    oGroup.Delete

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多