Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Objekt löschen funktioniert nicht

Objekt löschen funktioniert nicht
31.07.2015 10:24:08
Kurt
Ich habe folgendes Problem: Mit Excel VBA greife ich auf ein Programm (Aspen EDR) zu. Hierfür ist die entsprechende Erweiterung verfügbar. Um auf das Programm zuzugreifen erstelle ich ein Objekt (As BJACApp). Nach em das Objekt geladen ist, führe ich meinen Code aus und entferne das Objekt wieder:
Dim ObjEDR As BJACApp
Dim Path As String
Path = 'assume this is the correct path to the file i want to open
Set ObjEDR = New BJACApp ' Create the BJAC object
If Not ObjEDR.FileOpen(Path) Then
MsgBox "Can't open file!"
End If
'...
Set ObjEDR = Nothing
das problem ist: wenn ich das objekt wieder freigebe, gibt Excel den verwendeten Arbeitsspeicher nicht wieder frei (laut task manager). Nach ein paar hudnert iterationen ist dann logischer weise mein Arbeitspeicher voll und ich erhalte eine fehlermeldung.
In Foren habe ich gelesen, dass =Nothing nur die Referenz zum Objekt trennt, nciht aber das Objekt löscht. Deswegen habe ich zusätzlich FileClose probiert:
ObjEDR.FileClose
Set ObjEDR = Nothing
der Befehl FileClose gibt ein Teil des Arbeitsspeichers zurück, aber leider nur 0m5 von 3 MB pro aufruf des Objekts.
Aufgrund eines foreneintrags habe ich versucht, das "new" statement vor "new BJACApp" zu entfernen, aber das resultiert in "runtime error'424': Object required"
Danke für die Hilfe :)

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objekt löschen funktioniert nicht
31.07.2015 11:01:29
EtoPHG
Hallo Kurt,
Das es sich um eine Applikation handelt, gibt es ja vielleicht eine .CLOSE, .QUIT oder .EXIT Methode, mit der sich die Applikation als solches verabschieden kann. Aber das kann nur jemand wissen, der über die 'entsprechende Erweiterung' (wie du es so schön formulierst) und deren Dokumentation verfügt.
Gruess Hansueli

AW: Objekt löschen funktioniert nicht
31.07.2015 18:03:07
Kurt
hatte ich bereits versucht. fileexit löscht zwar die unterklassen aus dem objekt, aber ändert nichts am speicher. fileclose gibt wie beschrieben eben nur einen kleinen teil des speichers zurück.
wie hätte ich entsprechende erweiterung denn besser beschreiben sollen? "Aspen B-JAC Application In-process ActiveX Server" nennt sie sich

Anzeige
AW: Objekt löschen funktioniert nicht
31.07.2015 11:05:48
Nepumuk
Hallo,
es scheint als wenn in der Klasse BJACApp eine weitere Klasse instanziiert wird welche durch das zurücksetzen der BJACApp-Klasse nicht zurückgesetzt wird. Sprich das ganze ist unsauber programmiert, aber dagegen kann nur der Hersteller etwas machen, du selbst hast da eigentlich keine Chance. Du könntest höchstens versuchen die sichtbaren Unterklassen der BJACApp-Klasse zu entladen. Mit F8 über die Zeile Set ObjEDR = New BJACApp hinausgehen und im Lokalfenster die Klasse aufklappen, überall wo sich vor den Einträgen ein + befindet ist ein Unterklasse. Die versuchst du mal auf Nothing zu setzen. Bei schreibgeschützten Eigenschaften bekommst du damit eine Fehlermeldung. Also alle durchtesten.
Gruß
Nepumuk

Anzeige
AW: Objekt löschen funktioniert nicht
31.07.2015 17:57:27
Kurt
das objekt besitzt die unterklasse ATVApps. diese wiederum item1. Mit
ObjEDR.ATVApps = Nothing
erhalte ich die fehlermeldung: Invalid use of property
das item1 habe ich mal mit ObjEDR.ATVApps.Remove(1) entfernt, aber das hat den arbeitsspeicher auch nicht gesenkt

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige