Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1056to1060
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

Anfängerfrage zu Klassen

Anfängerfrage zu Klassen
05.03.2009 09:40:57
eres
Zunächst ein herzlicher Gruß in mein Lieblings-Forum,
im VBA-Bereich habe ich bislang das Thema "Klassen" vermieden. Um dies zu ändern, habe ich Peter Haserodt's Einführung (www.online-excel.de) mal begonnen und strauchel schon zu Beginn.
https://www.herber.de/bbs/user/59995.xls
Im Beispiel wird über den CommandButton1 die neue Klasse clsTest erzeugt. Es kommt wie gewollt die MsgBox "Initialisere Klasse". Schließe ich die Userform wird wie erwartet die MsgBox "Zerstöre Klasse" angezeigt.
So weit ist es klar.
Was mir nicht klar ist ist das Verhalten, wenn ich nach dem ersten Betätigen des CommandButton1 und der Meldung "Initialisiere Klasse" anstelle die Userform zu schliessen den CommandButton1 nochmals betätige. Dann erhalte ich zunächst wieder die Meldung "Initialisiere Klasse". Direkt danach kommt aber für mich unverständlich sofort auch die MsgBox "Zerstöre Klasse".
Ich verstehe nicht, wieso das Class_Terminate Ereignis bei der 2. Betätigung des Buttons mit ausgelöst wird.
Bin für jede Erklärung dankbar.
Gruß
erwin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anfängerfrage zu Klassen
05.03.2009 09:51:40
Ramses
Hallo
den genauen Grund kann ich dir auf die Schnelle auch nicht nennen, aber du kannst das so umgehen
Option Explicit
Dim oMeineKlasse As clsTest

Private Sub CommandButton1_Click()
If oMeineKlasse Is Nothing Then
Set oMeineKlasse = New clsTest
End If
End Sub


Gruss Rainer

AW: Anfängerfrage zu Klassen
05.03.2009 09:51:45
Tino
Hallo,
wahrscheinlich weil durch die erneute Initialisierung die schon initialisierte zerstört wird.
Normalerweise Initialisiert man nicht mit einem Button,
sondern über dass Eventmakro UserForm_Initialize, so kann man dies nicht zweimal machen.
Gruß Tino
Anzeige
Das denke ich auch...
05.03.2009 09:57:41
Ramses
Hallo Tino
....ich hatte gerade die gleiche Idee :-)
Gruss Rainer
AW: Anfängerfrage zu Klassen
05.03.2009 10:00:54
Renee
Hi erwin,
Du hast nur 1 Variable zur Instanzierung der Klasse!
Wenn du sie mit dem Button ein 2tes mal Instanzierst, muss die erste Instanz zerstört werden!
Eine Instanzierung sollte einmal und nur einmal pro Variable gemacht werden.
GreetZ Renée
Verstanden
05.03.2009 10:06:23
eres
Vielen Dank für die verständliche Erklärung.
Jetzt kann ich beruhigt weiter forschen und üben.
Dank und Gruß
erwin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige