如何通过 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)即可查看它
我正在创建一个 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)即可查看它