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次。为了获得可见性,我要自动化的工作流程如下:
我已经在VBA宏中有了第1-4步,但是我不知道是否有一个vba命令来插入幻灯片缩放。我担心的是,由于此功能是2016年的新功能,因此VBA中还没有。
有谁知道VBA命令行可以自动执行上述第5步?
提前致谢!
文森特
对象模型中似乎没有任何东西(至少从VBA可以看出)对此有所帮助。Shapes和ShapeRanges现在具有HasSectionZoom属性,但是即使对于使用Zoom | 剖面缩放功能。
Alt NY2C至少将使您快速进入“插入截面缩放”对话框。
感谢Steve Rindsberg和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
Run Code Online (Sandbox Code Playgroud)
可能需要更多代码来捕获和格式化您粘贴到新幻灯片中的任何内容。目前,我正在处理高分辨率图像,这些图像在粘贴时默认为最大尺寸,因此我不需要任何格式或操作。
干杯!