Excel 2013 VBA für Profis

Ereignisprozeduren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Hier sehen Sie beispielhaft, wie Sie auf Formular-Steuerelemente zugreifen können. Diese werden über Ereignis-Prozeduren gesteuert.

Transkript

Das Formular selber ist da, aber es soll ja auch programmiert werden. Und hier funktioniert die Programmierung ein bisschen anders als Sie das vielleicht aus normalen Modulen kennen. Dort können Sie beliebige Prozedurennamen schreiben und müssen die dann gezielt mit F5 aufrufen, oder über Schaltfläche auslösen. Das funktioniert hier im Grunde ähnlich, aber doch andersherum. Nicht Sie rufen die Prozeduren auf, sondern sie werden automatisch aufgerufen, und zwar anhand eines vorgegebenen Namens. Fangen wir vielleicht direkt mit der einfachsten Version an. Ich wechsle von dieser formulargestalterischen Oberfläche in den Code-Editor. Denn auch ein Formular trägt seinen Code mit sich rum. In diesem Formular ist außerdem noch ein Modul enthalten, nicht nur die grafische Oberfläche. Sie können also umschalten, entweder hier zwischen der Formularoberfläche oder dem Code. Oder Sie können es per Rechtsklick hier machen: Code anzeigen, Objekt, was die Formularoberfläche ist, anzeigen, oder ganz banal Sie machen auf das Objekt einen Doppelklick, mache ich jetzt, dann wechselt es in den Code, und zwar in das passende Ereignis. Und da sehen Sie im Grunde die Struktur, wie sie im normalen Modulen auch üblich ist. Dort steht: Sub, Name einer Prozedur. Es steht zusätzlich noch ein Private davor, das ist sonst nicht nötig. Private sorgt dafür, dass diese Prozedur nur innerhalb des Formulars sichtbar und damit aufrufbar ist, weil nämlich der Name dieser Prozedur reserviert ist. Es gibt immer dieses Doppelpack Objekt, Methode. Objekt, das finden Sie übrigens auch immer hier oben. Und dessen Methoden; eine davon ist hier schon gerade ausgewählt; also die Methode "einer hat auf das Formular einen Klick gemacht". Damit Sie sehen, wie das funktioniert, werde ich hier mit Tab-Taste eingerückt mal in die MsgBox schreiben: "Ich bin angeklickt worden!". Soll so weit reichen. Dann können wir das speichern. Und auch wenn Sie hier den Cursor stehen haben, funktioniert F5 beziehungsweise das. Das Formular wird angezeigt. Und wenn ich jetzt auf das Formular einen Klick mache, wird diese Prozedur ausgeführt. Das ist also das Geheimnis dieser Prozeduren. Die haben reservierte Namen, und wenn jemand auf das Formular klickt, wird; ich mache das mal hier im Entwurf nochmal per Doppelklick; eine Prozedur gesucht, die diesen reservierten Namen UserForm_Click trägt. Und wenn Sie da oben nachgucken, hier steht UserForm drin, dann stehen hier noch viel mehr. Denn diese ist gar nicht so toll. Diese UserForm_Click ist schön zum Testen, aber im wirklichen Leben werden Sie die niemals brauchen. Was Sie hingegen immer brauchen werden, ist UserForm_Initialize, initialisieren. Und wenn ich das jetzt hier aufrufe, dann wird der sogenannte Prozedurrumpf automatisch erstellt. Den hier kann ich löschen. Dann wird im Fall eines UserForm_Click-Ereignisses keine Prozedur aufgerufen. Es gibt aber auch keine Fehlermeldung. Also brauche ich nicht, kann weg. Sie sollten das immer über diese beiden Auswahlfelder, Dropdownlisten auswählen, denn es gibt auch einige, zum Beispiel hier, die Parameter mitbringen, und zwar nicht zu knapp. Und wenn man die falsch wählt, werden Sie beim Aufrufen auf Laufzeitfehler kommen. Also, den schmeiße ich jetzt wieder weg. Der, den ich im Moment brauche, ist UserForm-Initialize. Und da kommt zum Gucken wieder eine MsgBox rein: "Das Formular wird initialisiert." Und dann werden Sie jetzt sehen; das sollten wir vorsichtshalber mal speichern; wenn das Formular gestartet wird, braucht es keinen weiteren Klick. Ich werde es mal einfach starten. Und automatisch wird diese Meldung angezeigt, und erst dann wird das Formular sichtbar. Das bedeutet, UserForm_Initialize wird automatisch aufgerufen, ohne dass der Benutzer was dafür tun muss oder gar was dagegen tun kann. Und es wird ausgeführt, bevor das Formular auf dem Bildschirm ist. Das bedeutet, diese Prozedur ist optimal, um nochmal schnell auf dem Bildschirm was einzustellen. Ich werde das jetzt wieder schließen, sonst können wir nicht mehr weiterarbeiten. Sie können hier zwar immer noch einen Doppelklick machen, aber ich würde dann vorschlagen, hier über Code anzeigen zu wechseln, sonst erzeugen Sie sich immer so Prozedurleichen. Das war ja nur zum Vorführen. Jetzt will ich was Sinnvolles machen. Und zwar zum Beispiel damit Sie sehen, wie das funktioniert, die Überschrift ändern. Da steht im Moment sowas drin wie: "Das ist mein erster Test". Wenn ich das mal umschalte, ins Objekt, sehen Sie das: "Dies ist mein erster Test". Also das möchte ich ändern. Und das ist eine Eigenschaft des Formulars. Und das Formular selber kann ich innerhalb dieses Formularmoduls über Me ansprechen. me repräsentiert das Formular, in dem sich das Modul befindet. Also Me ist das Formular selber, egal wie es nach außen hin heißt. Für andere heißt es dlgTest. Für mich selbst heißt es "ich", Me. Und dann ein Punkt. Und dann gibt es im Angebot alle Eigenschaften, oder, das sehen Sie an so einem fliegenden Backstein hier, Methoden, die dieses Formular kennt. Und die Eigenschaft, die ich ändern will, ist Caption, also ich kann anfangen zu tippen. Bis "cap" muss ich gehen und dann mit der Tab-Taste auswählen. Und diese Caption-Eigenschaft will ich ändern, die kriegt einen neuen Wert. Und in Gänsefüßchen, weil das ein Text ist, soll da stehen: "Das ist ein Test um". Und jetzt kommt nur noch die Uhrzeit. Das heißt, wenn das Formular ausgeführt wird, wird die Uhrzeit genommen und zu diesem Text hinzugefügt mit diesem Verkettungsoperator. Im Moment steht da ja noch drin: "Dies ist mein erster Test". Wenn ich das jetzt mit F5 ausführe, sehen Sie, hat sich die Caption oben geändert. So funktioniert Formularprogrammierung. Ich schließe das mal wieder. Es gibt eine Oberfläche, an der sich noch einiges tun wird. Und es gibt einen Code dahinter, der mit typischerweise reservierten Prozedurnamen arbeitet, die erklären, wann diese Prozedur aufgerufen wird. Wir haben immer die Zusammensetzung: Objekt, nämlich UserForm; Methode. Und in denen passiert die eigentliche Arbeit. Und UserForm_Initialize ist eben optimal, um das Formular beim Erstellen nochmal mit Werten zu füllen, vorzubereiten, irgendwas reinzuschreiben, was da gerade erwartet wird.

Excel 2013 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2013, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

4 Std. 59 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!