Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Tutorials

Objekte (3) - Me

Autor: Peter Haserodt - Erstellt: --      - Letzte Revision: --Gruppenthema: 4 Folgen 1 2 3 4 Sie sind in Folge:3
Me: Mich Mir Meine - wir meinen nur das Eine

Das Objekt Me ist ganz einfach.
Es bezieht sich auf das Klassenmodul, in welchem es steht.

In einer UserForm ist es die UserForm, in einem Tabellenblattmodul das Tabellenblatt, in einem eigenen Klassenmodul das Klassenmodul, usw...

Ein einfaches Beispiel:

Sie haben eine Userform mit dem Namen UserForm1 und darauf einen CommandButton mit dem Namen CommandButton1 und folgenden Code:
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
Anstelle dieses Codes können wir aber auch schreiben:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Beide Codes bewirken im Moment das Selbe.
Wir haben hier das Klassenmodul Userform, unser Me steht in dem Klassenmodul Userform also bezieht es sich auf die UserForm.

Aber wofür gibt es dann das Me?

Ein Schalk, der meint, Microsoft würde hier die Schreibfaulheit des Programmierers unterstützen wollen.
Mitnichten (auch mitneffen )!

Der Einsatz des Me Objektes anstelle des Ansprechens über den Namen wird sofort klar:

In Ihrer unendlichen Weisheit haben Sie festgestellt, daß der Name UserForm1 nun nicht gerade sehr aussagekräftig in Ihrem VBA Projekt ist.
Sie beschließen, diesen für jeden deutlich in JodelDiDoDu zu ändern.

Uuuups, jetzt sehen Sie das Problem - oder?
In dem ersten Code haben wir geschrieben: Unload UserForm1.
Diese gibt es nun nicht mehr - sie mutierte zu JodelDiDoDu.

Und schon haben wir einen wunderbaren Fehler erzeugt.

Unserem zweiten Code ist es völlig Wurst, wie die UserForm heißt und funktioniert weiter.

Fazit:

Wenn Sie innerhalb eines Klassenmodules Eigenschaften oder Methoden des Klassenmodules ansprechen, verwenden Sie immer das Objekt Me.

Kleine Frage noch hinterher:

Wie sieht dies in einem allgemeinen Modul aus (.bas)?

Klar, dort gibt es kein Me, denn das allgemeine Modul ist nunmal kein Klassenmodul.


Dieses Thema hat weitere Beiträge

Objekte (1) - Punktfrustration
Objekte (2) - Laufzeitfehler 438
Objekte (3) - Me
Objekte (4) - Parent

Weitere Artikel der Gruppe: Tutorials Aus Excel VBA
Nach oben