使用vb.net打开powerpoint,保持打开状态以及如何在关闭powerpoint时释放对象?

时间:2013-12-15 11:16:43

标签: vb.net powerpoint

我有以下代码通过VB.NET 2013 Express在powerpoint文件中运行宏:

        'Start PowerPoint and open the presentation.
        Dim oPP = New Microsoft.Office.Interop.PowerPoint.Application()
        oPP.Visible = MsoTriState.msoTrue
        Dim oPresSet = oPP.Presentations
        Dim oPres = oPresSet.Open(PFile)
        oPP.Run("'Plan.ppt'!UpdatePlan")
        oPres = Nothing
        If Not oPresSet Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oPresSet)
            oPresSet = Nothing
        End If
        oPP.Quit()
        If Not oPP Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oPP)
            oPP = Nothing
        End If

我打开powerpoint以查看,然后通过powerpoint关闭文件。当这段代码再次运行代码时,我得到以下错误,代码如下:

        Dim oPP = New Microsoft.Office.Interop.PowerPoint.Application()

错误消息 - “Plan.exe中发生了'System.Runtime.InteropServices.COMException'类型的未处理异常

其他信息:由于以下错误,从IClassFactory创建具有CLSID {91493441-5A91-11CF-8700-00AA0060263B}的COM组件实例失败:800706b5。“

有没有办法在通过powerpoint关闭powerpoint文件时释放对象,以便我可以重新运行代码而不会出错?

有没有其他方法可以做到这一点,以免我收到这些错误?

多年来一直在努力工作,非常感谢帮助。感谢。

1 个答案:

答案 0 :(得分:0)

要释放对象,请运行以下子目录:

''' <summary>
''' This releases the object
''' </summary>
''' <remarks></remarks>
Sub ReleaseObj()
    _pptApp.Quit()
    _pptApp = Nothing
    _pptPre = Nothing
End Sub

要获取更多信息,请查看Hans Passant的回答以及this question中的链接。