Microsoft KB Archive/249169: Difference between revisions
(importing KB archive) |
m (Text replacement - """ to """) |
||
Line 52: | Line 52: | ||
<pre class="codesample">Sub TestPP() | <pre class="codesample">Sub TestPP() | ||
Dim oPres As PowerPoint.Presentation | Dim oPres As PowerPoint.Presentation | ||
Set oPres = GetObject( | Set oPres = GetObject("c:\test.ppt") | ||
Set oPres = Nothing | Set oPres = Nothing | ||
End Sub | End Sub | ||
Line 66: | Line 66: | ||
Dim oApp As PowerPoint.Application | Dim oApp As PowerPoint.Application | ||
Set oPres = GetObject( | Set oPres = GetObject("c:\test.ppt") | ||
Set oApp = oPres.Application | Set oApp = oPres.Application | ||
Line 84: | Line 84: | ||
<pre class="codesample">Sub TestPP() | <pre class="codesample">Sub TestPP() | ||
Dim oPPT As PowerPoint.Application | Dim oPPT As PowerPoint.Application | ||
Set oPPT = CreateObject( | Set oPPT = CreateObject("PowerPoint.Application.8") | ||
oPPT.Activate | oPPT.Activate | ||
oPPT.Presentations.Open ( | oPPT.Presentations.Open ("c:\test.ppt") | ||
oPPT.Presentations(1).Close | oPPT.Presentations(1).Close | ||
Line 100: | Line 100: | ||
== CAUSE == | == CAUSE == | ||
When using the '''GetObject'''( | When using the '''GetObject'''("<code>pathname</code>") method (where <code>pathname</code> is the path and name of the presentation you are trying to load programmatically), or the '''CreateObject'''("PowerPoint.Application.8") method, PowerPoint does not keep an accurate reference count of the number of calls made to it. Therefore it remains in memory, and you cannot access it programmatically to quit it. | ||
</div> | </div> |
Latest revision as of 13:52, 21 July 2020
Article ID: 249169
Article Last Modified on 10/11/2006
APPLIES TO
- Microsoft PowerPoint 97 Standard Edition
This article was previously published under Q249169
SYMPTOMS
If you use the GetObject or CreateObject method to open a presentation programmatically, Microsoft PowerPoint remains running in memory after you quit PowerPoint using any of the following methods:
Sub TestPP() Dim oPres As PowerPoint.Presentation Set oPres = GetObject("c:\test.ppt") Set oPres = Nothing End Sub
-or-
Sub TestPP() Dim oPres As PowerPoint.Presentation Dim oApp As PowerPoint.Application Set oPres = GetObject("c:\test.ppt") Set oApp = oPres.Application oPres.Close Set oPres = Nothing oApp.Quit Set oApp = Nothing End Sub
-or-
Sub TestPP() Dim oPPT As PowerPoint.Application Set oPPT = CreateObject("PowerPoint.Application.8") oPPT.Activate oPPT.Presentations.Open ("c:\test.ppt") oPPT.Presentations(1).Close Set oPPT = Nothing End Sub
After any of the above code segments runs, if you check the Task Manager, it shows that PowerPoint is still loaded into memory.
CAUSE
When using the GetObject("pathname
") method (where pathname
is the path and name of the presentation you are trying to load programmatically), or the CreateObject("PowerPoint.Application.8") method, PowerPoint does not keep an accurate reference count of the number of calls made to it. Therefore it remains in memory, and you cannot access it programmatically to quit it.
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
MORE INFORMATION
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, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
Additional query words: PPT2K PPT2000 PPT POWERPNT 2000 PPT9 9.0 pra vba
Keywords: kbbug kbcode kbdtacode kbinfo kbpending KB249169