1

我正在创建一个 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

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

4

1 回答 1

1

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

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

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

于 2016-07-18T12:53:33.667 回答