Autor: Peter Haserodt --- Aus Excel VBA - Gruppe:
Editor - EntwicklungsumgebungEditor [09] Dropdowns in Modulen
Autor: Peter Haserodt - Erstellt: -- - Letzte Revision: --Gruppenthema: 9 Folgen 1 2 3 4 5 6 7 8 9 Sie sind in Folge:8
Dropdowns in Modulen
Ich bin immer wieder überrascht, nein entsetzt, nein meine Socken dampfen, wenn ich sehe, wie wenige diese sehen und damit umgehen können.
Was meine ich aber damit? Wissen Sie es? Dann brauchen Sie nicht weiterlesen.
In jeder Modulart, sei es eine Userform, ein allgemeines Modul, ein Tabellenmodul oder was weiß ich, haben Sie im Codefenster oben links und oben rechts zwei Dropdowns.
Diese sind aber nicht aus purer Lust und Laune vorhanden sondern haben tatsächlich einen Sinn!
Mit ihnen kann ich:
1. Mich durch meinen Code hangeln
2. Mir Ereignisprozeduren auswählen.
3. ... und einiges mehr ...
Wie was warum und und und...
Anhand zweier kurzen Beispiele, möchte ich Sie näher damit vertraut machen.
Erstes Beispiel Userform
Erzeugen Sie eine Userform mit zwei CommandButton - CommandButton1 und CommandButton2 und
Und nun einen Doppelclick auf den CommandButton1.
Danach sollte sich Ihr Codefenster ungefähr wie folgt präsentieren:
Um gleich noch etwas mehr Anschauungsmaterial zu haben, fügen wir noch eine Prozedur ein:
Option Explicit
Private Sub CommandButton1_Click()
End Sub
Private Sub NurSo()
End Sub
D.h. unter der Clickprozedur des Commandbutton noch die völlig sinnfreie Sub NurSo.
Jetzt einfach mal mit der Maus irgendwohinklicken und zuschauen, wie sich der Inhalt des linken Dropdowns sich verändert.
Bin ich irgendwo in meiner Click-Prozedur, steht Commandbutton1, außerhalb, steht Allgemein.
Gleichzeitig verändert sich auch das rechte Dropdown, jenachdem.
Klicken Sie nun auf das linke Dropdown und Sie sehen überraschenderweise noch mehrere Sachen zur Auswahl. Unter anderem CommandButton2 und Userform.
Kommen wir zur Auflösung:
In einer Userform werden mir im linken Dropdown alle Steuerelemente der Userform, sowie die Userform selbst angezeigt, sowie Allgemein.
Klicke ich auf ein Steuerelement, bzw. auf Userform, wird - wenn noch nicht vorhanden - die Standardereignisprozedur des Steuerelementes erzeugt.
Standardereignis
Dies wurde von den Entwicklern so festgelegt und ist nicht immer ganz glücklich.
Warum bei einer Userform das Click-Ereignis als Standard und nicht das Initialize z.B. gewählt wurde, entzieht sich meinem Verständnis.
Das rechte Dropdown ist absolut davon abhängig, wo sich mein Cursor befindet.
Bin ich innerhalb einer Ereignisprozedur eines Steuerelementes, werden mir dort alle weiteren Ereignisprozeduren angezeigt, die mir für das Steuerelement zur Verfügung stehen.
Wenn wir unseren Cursor wieder in die CommandButton1_Click setzen, und auf das rechte Dropdown gehen, sehen wir diese.
Wenn ich nun im rechten Dropdown eine solche auswähle, wird mir entweder diese Prozedur erzeugt - wenn noch nicht vorhanden, oder der Cursor wird zu dieser Prozedur gesetzt.
Steht im linken Dropdown Allgemein, kann ich im rechten Dropdown mir den Deklarationsbereich auswählen oder alle allgemeinen Routinen.
Sie sollten jetzt einmal wild herumklicken und auswählen. Machen Sie sich damit vertraut.
Zwischenbemerkung
Selbstverständlich reicht es nicht, dass wir die Ereignisse von Steuerelementen sehen, wir müssen auch wissen, was sich dahinter verbirgt. Viele sind selbsterklärend, bei anderen muss man ein wenig nachforschen.
Außerdem muss einem natürlich bewusst sein, dass verschiedene Steuerelemente auch verschiedene Ereignisse haben (können).
Und dann kommt noch dazu, dass einige Steuerelemente vollkommen überflüssige Ereignisse haben, z.B. bei dem CommandButton das DoppelClick Ereignis. Aber stören Sie sich nicht daran, lieber ein Ereignis zu viel als ein Ereignis zu wenig.
Beispiel 2 - Tabellenblatt Modul
Führen Sie im
Projektexplorer
einen Doppelklick auf ein Tabellenmodul aus.
Auch hier haben Sie wieder unsere zwei Dropdowns.
Im linken Dropdown haben Sie erstmal nur die Wahl, zwischen Allgemein und Worksheet.
Wenn Sie nun Worksheet auswählen, wird die Ereignisprozedur:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
erzeugt (Diese wird an einer anderen Stelle besprochen)
Und sobald wir den Cursor innerhalb dieser Prozedur haben, können wir im rechten Dropdown wieder wunderbar weitere Ereignisse des Worksheets auswählen.
Sollten Sie nun auf diesem Worksheet in der Excelumgebung aus der Steuerelementbox Elemente auf diesem Arbeitsblatt einfügen, so stehen diese im linken Dropdown zur Verfügung.
Einfach ausprobieren.
Zum Schluss:
Gerade für den VBA-Einsteiger mögen solche Sachen wie Ereignisprozeduren die allseits beliebten böhmischen Dörfer sein - aber dies macht nichts.
Im Laufe Ihrer VBA-Karriere wird sich dies ändern!
Viel wichtiger ist es, dass Sie diese Dropdowns wahrnehmen und nutzen!
Weitere Artikel der Gruppe: Editor - Entwicklungsumgebung Aus Excel VBA
Nach oben