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

Vin*_*che 5 vba powerpoint-vba

PowerPoint 2016具有一项新颖的新功能,您可以在其中插入“缩放幻灯片/部分”。如果您不知道我在说什么,请参见此处: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. 拍摄应用程序/屏幕截图
  2. 在PowerPoint中插入新的空白幻灯片
  3. 将屏幕截图粘贴到幻灯片中并调整大小/位置
  4. 隐藏新幻灯片
  5. 将屏幕快照幻灯片作为幻灯片缩放插入另一张幻灯片中

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

有谁知道VBA命令行可以自动执行上述第5步?

提前致谢!

文森特

Ste*_*erg 5

对象模型中似乎没有任何东西(至少从VBA可以看出)对此有所帮助。Shapes和ShapeRanges现在具有HasSectionZoom属性,但是即使对于使用Zoom | 剖面缩放功能。

Alt NY2C至少将使您快速进入“插入截面缩放”对话框。


Vin*_*che 1

感谢Steve RindsbergJamie 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
Run Code Online (Sandbox Code Playgroud)

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

干杯!