如何通过 Access VBA 在 Powerpoint 中添加幻灯片,仅保持最小化

How to add Slides in Powerpoint by Access VBA keeping it minimized only

我正在创建一个 powerpoint 文件并通过 Access-VBA 以编程方式向其中添加幻灯片,到目前为止它运行良好。 但是现在,客户希望 ppt 仅在生成期间不可见或最小化。刚刚激活ppt对象后,我将其设置为最小化,但是在'Slides.Add'期间,它再次弹出,所以我需要再次最小化它。问题是这会导致光标焦点移动到 ppt 而不是他正在处理的文档。 那么,有什么办法,我可以将它完全最小化,或者让这一代在后台工作并且只在完成后打开它? 我使用的代码是:

Dim shpGraph As Object, Shpcnt As Integer, FndGraph As Boolean
Dim lRowCnt, lColCnt, lValue As Long, CGFF_FldCnt As Integer
Dim OPwrPnt As Object, OpwrPresent As Object, OpwrSlide As Object
Set OPwrPnt = CreateObject("Powerpoint.application")
Set OpwrPresent = OPwrPnt.Presentations.Add(WithWindow:=msoFalse)
Set OpwrSlide = OpwrPresent.Slides.Add(slideCounter, PpSlideLayout.ppLayoutTitle)
OPwrPnt.WindowState = ppWindowMinimized
slideCounter = slideCounter + 1
lheight = OPwrPnt.ActivePresentation.PageSetup.SlideHeight / 2
lwidth = OPwrPnt.ActivePresentation.PageSetup.SlideWidth / 1
LLeft = 0
lTop = OPwrPnt.ActivePresentation.PageSetup.SlideHeight / 4
Set shpGraph = OpwrPresent.Shapes.AddOLEObject(Left:=LLeft, _
                Top:=lTop, Width:=lwidth, Height:=lheight, _
               ClassName:="MSGraph.Chart", Link:=0).OLEFormat.Object

我已经编写了代码来最小化 Add 函数之前和之后的窗口状态,但它仍然只弹出几分之一秒,因此将光标焦点从他们正在处理的任何文档移动到 ppt,他们不想。 那么我怎样才能让它完全最小化呢?

您可以在没有 window 的情况下打开 powerpoint 对象(假设您从不使用 Select 或任何 Active... 引用

Set oPPTPres = oPPTApp.Presentations.add(WithWindow:=msoFalse)

然后,向该演示文稿添加幻灯片应该完全不可见。之后,我相信您只需保存、关闭并重新打开演示文稿(将 WithWindow 属性 设置为 true)即可​​查看它