Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved.
Terms
of Use |
Trademarks
Article ID: 285472 - Last Review: June 8, 2007 - Revision: 3.1
Run-time error -2147188160 on ActiveWindow or ActivePresentation call in PowerPoint
This article was previously published under Q285472
SYMPTOMS
When you try to run a Microsoft Visual Basic for Applications macro that creates or opens a Microsoft PowerPoint presentation, you may receive an error message that resembles the following error message:
Run-time error '-2147188160 (80048240)':
Application (unknown member): Invalid request. There is no currently active document window.
The same macro runs without error in Microsoft Office 97.
CAUSE
This behavior is caused by using any PowerPoint ActiveWindow or ActivePresentation property, method, or event when the PowerPoint program is not visible. The following sample code will cause this error.
Sub A()
Dim oPpt As PowerPoint.Application
Set oPpt = New PowerPoint.Application
oPpt.Presentations.Add
oPpt.Presentations(1).Slides.Add 1, ppLayoutBlank
'The following line causes the run-time error
msgbox oPpt.ActiveWindow.Caption
End Sub
Note This error message does not occur in Microsoft PowerPoint 97.
WORKAROUND
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure. However, they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
To work around this behavior, add the following lines of code once in any sub procedure before any ActiveWindow or ActivePresentation calls.
If PowerPoint.Application.Version >= 9 Then
'window must be visible
PowerPoint.Application.Visible = msoTrue
End If
This code makes PowerPoint visible for Microsoft PowerPoint 2000 and for later versions of PowerPoint. PowerPoint 97 does not need to be made visible.
The sample code that is mentioned in the "Cause" section would change to the following code.
Sub A()
Dim oPpt As PowerPoint.Application
Set oPpt = New PowerPoint.Application
oPpt.Presentations.Add
oPpt.Presentations(1).Slides.Add 1, ppLayoutBlank
If oPpt.Version >= 9 Then
'window must be visible
oPpt.Visible = msoTrue
End If
oPpt.ActiveWindow.View.GotoSlide 1
End Sub
Note This workaround may not work for Microsoft Office PowerPoint 2007.
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
APPLIES TO
- Microsoft Office PowerPoint 2007
- Microsoft PowerPoint 2002 Standard Edition
| kbbug kberrmsg kbpending KB285472 |
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate
(Optional) Name
(Optional)
Public URL Or Email
Comments
No
HTML -- Text Only Please