Excel 2013 VBA Grundkurs

Sub-Prozeduren

Testen Sie unsere 1951 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Sollen in Ihrem Programm-Code mehrere Aktionen ausgeführt werden, fassen Sie diese am besten in kleinen Unterprogrammen zusammen. Von deren englischer Bezeichnung sub-procedure (Unterprogramm) leitet sich das Schlüsselwort Sub ab.

Transkript

Ich möchte Ihnen einmal zusammenfassend zeigen, wie Prozeduren aufgerufen oder geschrieben werden. Es fängt an, mit dem Schlüsselwort Sub, und danach folgt der Name der Prozedur, der fast beliebig sein kann, aber sich an einige wenige Regeln hält, die im Wesentlichen so zusammenzufassen sind: Nur Buchstaben, und wenn es sein muss, am Ende eine Zahl. Fast keine Sonderzeichen. Das ist also der typische Prozedurrumpf und mit der Tab-Taste wird alles dazwischen eingerückt. Und ich rufe jetzt mal wieder beispielhaft eine integrierte fertige Prozedur auf, nämlich die Message Box. "Das ist eine Meldung". Soweit, wenig Neues. Das Ganze habe ich in einem eigenen Modul schon. Das heißt modSub. Und bevor ich das teste, werde ich das speichern. Und dann können Sie reinklicken, das mit F5 ausführen. Da ist die Meldung. Soweit, ist es ja nichts Neues. Jetzt schreibe ich eine zweite Prozedur, mit der ich die Erste benutzen will. Also, AufrufEinerProzedur, beispielsweise. Und die Frage ist jetzt, wie rufe ich eigentlich meine eigene Prozedur auf? Die Antwort lautet: wie alle anderen auch, auch die integrierten. Die Message Box ist eine eingebaute Prozedur und die rufe ich über ihren Namen auf. Das tue ich mit meiner auch. Also, wenn ich den Namen so fast fertig schreibe, und dann Strg + Leertaste drücke, krieg ich in Angebot, weil es mehrere gibt, die so ähnlich heißen. Hätte ich direkt Testp geschrieben, wäre das klar gewesen und eindeutig. Und Sie sehen hier, meine eigenen Prozeduren werden in der Liste der integrierten Prozeduren geführt. Und haben genau diesen fliegenden Backstein, wie die anderen auch, Prozeduren, diesen grünen Stein. Und Eigenschaften hätten dann entsprechend dieses kleine Symbol mit der Hand. Ich kann also hier mit der Tab-Taste auswählen, was ich habe, und bin im Grunde fertig. Das läuft auch so, ich speichere mal, rufe jetzt diese auf mit F5. Da passiert nichts anderes, als eben auch, weil die eine Prozedur nur die andere aufruft. Wenn diese Prozedur gleichnamig ist, sprich: es gibt mehrere Prozeduren diesen Namens. Jede davon natürlich nur in einem Modul. Dann können Sie die auch gezielt über Ihr Modul aufrufen. In dem Fall, heißt das Modul modSub. Und wenn Sie dann den Punkt machen, ist es ein Element dieser Prozedur. Sie sehen hier, dass die beiden Prozeduren, die es hier gibt, veröffentlicht sind, sozusagen. Und auch diese Schreibweise ist zulässig, um nicht zu sagen, das ist die offizielle Schreibweise. Die Andere ist schneller und funktioniert immer dann, wenn es eindeutig ist. Wenn es nicht eindeutig ist, übrigens, gewinnt die Erste. Die erst sichtbare, sprich: erst eine im gleichen Modul, dann eine in dem anderen Modul. Das lässt sich beeinflussen, was für die Anderen sichtbar ist. Also, ich mache mal eine nächste Prozedur. Die heißt schon IchBinUnsichtbar. Meint nur: IchBinUnsichtbar außerhalb dieses Moduls. Im Grunde, musste ich nichts machen. Ich schreibe da einfach ein Kommentar rein. Es geht nur um die Sichtbarkeit. Im Moment ist sie noch sichtbar. Wenn ich also hier speichere und in ein beliebig anderes Modul gehe, da... Sub, völlig beliebiger Name. Und ich will jetzt aus modSub aufrufen, was es da im Angebot gibt. Sehen Sie diese Prozedur Ich Bin Unsichtbar noch drin. Jetzt gehe ich zu modSub und schreibe vor das Sub ein Private. Dann bedeutet das, dass diese Prozedur nur innerhalb des Moduls nutzbar ist. Wenn ich jetzt also in das modTest gehe und hier wieder den Punkt mache, fehlt die. Die ist unsichtbar von außen. Das ist durchaus sinnvoll. Ich schmeiße das jetzt hier mal wieder komplett raus. Es gibt viele Module, die Routinenprozeduren benutzen, die nur innerhalb des Moduls sinnvoll sind. Spätestens, wenn es um Klassenprogrammierung geht, ist es fast zwingend, dass man nicht zu viel nach außen zeigt. Dieses Modul fasst ja thematisch irgendwas zusammen. Und es kann sein, dass es z.B. Aufrufe gibt, hier, beispielsweise. Die zwar notwendig sind, aber nicht nach außen, sondern nur innerhalb des Moduls. Und deswegen sollten Sie sowas mit Private ausdrücklich, ja, verheimlichen, müsste man sagen. Wenn Sie das genau betrachten, werden Sie feststellen, dass es das andersrum handhabt, als bei Variablen. Variablen müssen Sie ausdrücklich mit Public veröffentlichen. Wenn Sie nichts dagegen tun, bleiben die in Ihrem Geltungsbereich innerhalb der Prozedur oder innerhalb des Moduls. Prozeduren müssen Sie ausdrücklich verheimlichen. Wenn Sie nichts dagegen tun, sind die öffentlich. Es sei denn, Sie schreiben das Private davor. Sie werden dieses Private, übrigens, ganz voll automatisch entdecken, sobald es um Formulare in Excel geht. Die haben ganz viele automatische Funktionen oder Prozeduren, die Private sind, weil die gleichnamig sind in allen Formularen, aus gutem Grund. Hier ist es nur, um vorzuführen, wie es funktioniert und dass man sich so die Auswahl der aufrufbaren Prozeduren sinnvollerweise reduzieren kann.

Excel 2013 VBA Grundkurs

Holen Sie aus Excel 2013 mit der integrierten Programmiersprache VBA auch das letzte Quäntchen an Funktion heraus und lassen Sie sich dazu zeigen, was alles möglich ist.

6 Std. 18 min (63 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!