使用 vba 在 PowerPoint 2016 中插入幻灯片缩放

Inserting a Slide Zoom in PowerPoint 2016 using vba

PowerPoint 2016 有一个简洁的新功能,您可以在其中插入缩放 Slides/Sections。如果你不知道我在说什么,请看这里:https://support.office.com/en-us/article/Use-Zoom-for-PowerPoint-to-bring-your-presentation-to-life-9d6c58cd-2125-4d29-86b1-0097c7dc47d7

我正在尝试自动执行此过程,因为我每次演示都会使用此功能 20-30 次。为了可见性,我想自动化的工作流程如下:

  1. 截图application/screen
  2. 在 PowerPoint 中插入新的空白幻灯片
  3. 将屏幕截图粘贴到幻灯片中并进行调整size/position
  4. 隐藏新幻灯片
  5. 将屏幕截图幻灯片作为幻灯片缩放插入另一张幻灯片

我已经在 VBA 宏中完成了步骤 1-4,但我不知道是否有 vba 命令来插入幻灯片缩放。我担心的是,由于此功能是 2016 年的新功能,因此 VBA 中还没有。

有人知道 VBA 命令行来自动执行上述第 5 步吗?

提前致谢!

文森特

对象模型中似乎没有任何内容(至少 VBA 所见)对此有帮助。 Shapes 和 ShapeRanges 现在有一个 HasSectionZoom 属性,但是这个 returns 是错误的,即使对于使用缩放 | 插入的形状也是如此。部分缩放功能。

Alt NY2C 至少会让您快速进入“插入部分缩放”对话框。

我刚刚遇到了这个需求,HasSectionZoom 属性 仍然没有返回预期的结果,PowerPoint 2016 Insider 版本 1809 中的 OM 中也没有任何新内容,内部版本 10813.20004 可以帮助缩放内容创建的自动化。但是除了 Steve 用于打开 Insert Section Zoom 对话框的击键方法之外,您还可以使用这些方法来完成相同的操作:

Application.CommandBars.ExecuteMso "MSPPTInsertTableofContents"
Application.CommandBars.ExecuteMso "SectionZoomInsert"
Application.CommandBars.ExecuteMso "SlideZoomInsert"

我喜欢 idMSO 控件名称的美观和一致;-)

感谢 Steve Rindsberg and Jamie Garroch 的回答。

通过更多的工作,我能够将两者结合起来并得到我最初想要的结果。我认为我应该能够只使用 SendKeys 命令来完成它,但不知何故我无法弄清楚如何输入 Alt 键。无论如何,SendKeys 在测试和调试时会给我带来麻烦,因为如果焦点在那里而不是在演示文稿上,它实际上会在模块中键入键。

这是我的最终解决方案:

Sub insert_zoom()
    Dim pTargetSlide As Slide, pNewSlide As Slide _
        , pLayout As CustomLayout _
        , pShape As Shape _
        , i As Integer

    With Application.ActivePresentation
        Set pLayout = .Slides(1).CustomLayout
        Set pTargetSlide = Application.ActiveWindow.View.Slide
        Set pNewSlide = .Slides.AddSlide(.Slides.Count + 1, pLayout)
    End With

    With pNewSlide
        .Select
        .Shapes.Paste
        .SlideShowTransition.Hidden = msoTrue
    End With

    pTargetSlide.Select
    Application.CommandBars.ExecuteMso "SlideZoomInsert"

    For i = 1 To pNewSlide.SlideNumber - 1
        SendKeys ("{RIGHT}")
    Next i
    SendKeys (" ~")

End Sub

可能需要更多代码来捕获和格式化您粘贴到新幻灯片中的任何内容。现在我正在处理高分辨率图像,粘贴时默认为最大尺寸,因此我不需要任何格式或操作。

干杯!