Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Was ist "Me"

Was ist "Me"
20.12.2004 17:17:16
UdoS
Hallo!
Auf der Suche nach VBA-Wissen sehe ich in Verbindung mit Userformen immer den Begriff "Me"
z.B. Me.Hide oder Me.CommandButton.....
Was bedeutet "Me"
In den Help-Files steht dazu nix
Danke schonmal
Udo
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Was ist "Me"
EtoPHG
Hallo Udo,
Der Begriff Me bezieht sich auf das Objekt, in dem der Code steht.
Also z.B. wenn Du eine Userform mit Namen UserForm1 hast ist
Me.Hide
und
UserForm1.Hide
das gleiche, aber der Me.Hide Befehl kann nur in der Userform1 selber vorkommen, der Befehl UserForm1.Hide z.B. in einer Schaltfläche, die nicht Bestandteil der UF ist.
Gruss Hansueli
Anzeige
AW: Was ist "Me"
Boris
Hi Udo,
In den Help-Files steht dazu nix
Mitnichten...
Das Schlüsselwort Me verhält sich wie eine implizit deklarierte Variable. Es steht allen Prozeduren in einem Klassenmodul automatisch zur Verfügung. Wenn eine Klasse mehrere Instanzen haben kann, stellt Me eine Möglichkeit dar, um sich auf diejenige Instanz der Klasse zu beziehen, in der Code ausgeführt wird. Die Verwendung von Me ist insbesondere dann hilfreich, wenn Sie Informationen zur momentan ausgeführten Instanz einer Klasse an eine Prozedur in einem anderen Modul übergeben möchten. Nehmen Sie beispielsweise an, ein Modul enthielte die folgende Prozedur:

Sub FormFarbeÄndern(FormName As Form)
FormName.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
End Sub

Sie können diese Prozedur aufrufen und die aktuelle Instanz der Formularklasse als Argument übergeben, indem Sie die folgende Anweisung verwenden:
FormFarbeÄndern Me

Grüße Boris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Was ist "Me" in VBA?


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor in Excel, indem Du Alt + F11 drückst.
  2. Erstelle eine Userform: Klicke im Projektfenster mit der rechten Maustaste auf dein Projekt und wähle Einfügen > UserForm.
  3. Füge Steuerelemente hinzu: Ziehe ein CommandButton oder andere Steuerelemente auf die Userform.
  4. Öffne den Code-Bereich der Userform, indem Du mit der rechten Maustaste auf die Userform klickst und Code anzeigen wählst.
  5. Verwende "Me" im Code: Um eine Eigenschaft zu ändern, kannst Du zum Beispiel den Befehl Me.Hide nutzen, um die Userform zu verstecken.
Private Sub CommandButton1_Click()
    Me.Hide
End Sub

Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Lösung: Stelle sicher, dass Du "Me" nur in dem Kontext verwendest, in dem das Objekt existiert. Wenn Du versuchst, "Me" außerhalb der Userform zu verwenden, erhältst Du diesen Fehler.

  • Fehler: "Typen unverträglich"
    Lösung: Überprüfe, ob Du das richtige Objekt verwendest. Wenn Du z.B. Me.Cells verwendest, stelle sicher, dass es sich um ein gültiges Objekt handelt.


Alternative Methoden

Falls Du "Me" nicht verwenden möchtest, kannst Du auch direkt auf den Namen der Userform zugreifen. Zum Beispiel:

UserForm1.Hide

Dies hat denselben Effekt wie Me.Hide, jedoch ist es weniger flexibel, wenn Du mit mehreren Instanzen arbeitest.


Praktische Beispiele

  1. Verstecken der Userform:

    Private Sub CommandButton1_Click()
       Me.Hide
    End Sub
  2. Ändern der Hintergrundfarbe der Userform:

    Private Sub CommandButton2_Click()
       Me.BackColor = RGB(255, 0, 0) ' Ändert die Hintergrundfarbe auf Rot
    End Sub
  3. Übergeben der Userform an eine andere Prozedur:

    Sub FormFarbeÄndern(FormName As UserForm)
       FormName.BackColor = RGB(0, 255, 0) ' Ändert die Hintergrundfarbe auf Grün
    End Sub
    
    Private Sub CommandButton3_Click()
       FormFarbeÄndern Me
    End Sub

Tipps für Profis

  • Verwende "Me" in Klassenmodulen: "Me" ist besonders nützlich, wenn Du mit Klassenmodulen arbeitest, um auf die aktuelle Instanz zuzugreifen.
  • Nutze "Me" für Lesbarkeit: Der Einsatz von "Me" macht Deinen Code klarer und einfacher zu verstehen, besonders wenn Du viele Objekte verwaltest.

FAQ: Häufige Fragen

1. Was ist "Me" in VBA?
"Me" ist ein Schlüsselwort in VBA, das sich auf das aktuelle Objekt bezieht, in dem der Code ausgeführt wird. Dies ist besonders nützlich in Userforms und Klassenmodulen.

2. Kann ich "Me" in normalen Modulen verwenden?
Nein, "Me" ist nur in Klassenmodulen und Userforms verfügbar und kann nicht in regulären Modulen verwendet werden.

3. Was ist der Unterschied zwischen "Me" und dem Namen des Objekts?
"Me" bezieht sich auf die aktuelle Instanz des Objekts, während der Name des Objekts spezifisch auf eine bestimmte Instanz verweist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige