Wie kann ich Ruf-System.- Laufzeit.InteropServices.Marschall.ReleaseComObject aus innerhalb einer Excel 2007-VBA-Modul

Möchte ich nennen-System.- Laufzeit.InteropServices.Marschall.ReleaseComObject(obj) auf einige 3rd-party COM-Objekte, die ich habe, instanziiert in meinem VBA-code aus meiner Arbeitsmappe schließen-Ereignis, so etwas wie die folgenden:

    Public Sub disconnect(obj As Variant)
        Dim refs As Long
        refs = 0

        If Not obj Is Nothing Then
            Do
                refs = System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            Loop While (refs > 0)
        End If
    End Sub

Allerdings bekomme ich eine compile error: invalid qualifier mit der System markiert mit dem obigen code. Die Suche scheint nicht zurückgeben VBA-code, der Aufrufe von System.Runtime-Methoden aus einem VBA-makro - kann ich nur finden VB.Net automatisieren von Excel. Ich bin mir nicht sicher, ob es überhaupt noch möglich ist.

Ich versuche dieses Problem zu beheben: Excel 2007-Zombie-Prozess nicht die COM-Automatisierung, aber w/Verweise auf 3rd-party com-Objekte, indem Sie sicherstellen, dass diese 3rd-party COM-Objekte ordnungsgemäß entsorgt werden, bevor Excel beendet wird.

InformationsquelleAutor Pauli Price | 2012-11-27

Schreibe einen Kommentar