Excel 2016 VBA Grundkurs

Prozeduren im Überblick

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Excel-VBA unterteilt alle Prozeduren in solche mit und solche ohne Rückgabewert. Diejenigen ohne Rückgabewert heißen Sub-Prozeduren und beginnen mit dem Schlüsselwort Sub. Prozeduren mit Rückgabewert heißen Funktionen und berechnen oft einen Wert. Einen Sonderfall stellen die Properties dar – sie sind so etwas wie "programmierbare Variablen".

Transkript

Prozeduren gibt es in zwei oder je nachdem wie Sie es zählen wollen drei bis vier Varianten. Von denen ist so erstmal die bekannteste die Sub-Prozedur oder im Englischen Sub-Procedure. Davon stammt ja das Schlüsselwort sub ab. Die ist dazu gedacht etwas zu machen, Aktionen auszuführen. Und Ihre wesentliches Merkmal ist, sie gibt keinen Wert zurück. Sie macht einfach und ist dann fertig. Das können Sie sich so vorstellen wie bei der POst: Sie gehen dort hin, geben Ihren Brief ab und das war es. Was mit dem Brief passiert, werden Sie nie erfahren, es sei denn, Tante Anneliese ruft an und freut sich und bedankt sich für diesen Brief. Aber aus Sicht der POst ist Ihr Auftrag erledigt, wenn Sie der Post den Brief geben und sagen: Bitte befördern. Es gibt also keine Rückgabemeldung. Eine Sub schreibt sich beispielsweise so, das Sie das Schlüsselwort sub haben, hier ein eigenes, erfundenes Wort, was sie kennzeichnet, das muss eindeutig sein innerhalb des Moduls und darf kein Schlüsselwort sein und dann stehen dahinter Klammern, in denen möglicherweise Parameter stehen. Die eigentlichen Aktionen stehen dazwischen, hier durch Kommentarzeichen sowieso nicht ausgeführt und dann gibt es irgendwann End-sub. Alles von sub bis End-sub wird hintereinander weg ausgeführt. Das große Gegenstück dazu sind Functions, Funktionen. Sie dienen dazu, Berechnungen auszuführen. Und ich habe das Wort Berechnungen schon in Gänsefüßchen gesetzt, denn die Berechnungen sind sehr weit gefasst. Es können auch texte verkettet werden, es müssen nicht Zahlen sein. Vor allem und das ist eigentlich das Wichtigste dabei, liefert die Function einen Wert zurück. Sei hat einen Rückgabewert. Und zwar exakt einen. Sie können sich das vorstellen, wie in einer Bücherei. Sie kommen mit etwas hin, sagen wir dem Zettel für die Fernausleihe, Sie haben eine Nachricht bekommen, dass Sie das Buch abholen können. Sie geben also Hinein als Parameter, den Zettel zur Fernausleihe und kriegen zurück das Buch. Das ist dann sozusagen Ihr Rückgabewert. Deswegen hat die Function, wenn Sie die schreiben nicht nur das Schlüsselwort und den Namen, wie die Sub-Procedure auch, sondern einen Datentyp für den Rückgabewert. Der steht hier. Und auch anders als die Sub sollte wenigstens einmal in der Function der Name der Function mit dem Rückgabewert vorkommen. Das kann auch mehrfach sein. Wenn Sie mit einem if dafür sorgen, dass es nur einen einzigen Rückgabewert gibt, aber es heißt nicht wie in anderen Programmiersprachen: Return oder so was, sondern der Name der Function ist der Rückgabewert. Und deswegen muss auch hier der Datentyp entsprechend passen. Das sind die beiden Großen, die man eigentlich relativ schnell kennen lernt. Eine Sub macht, eine Function berechnet und kann diese Berechnung zurückgeben. Und dieses Berechnen kann auch sein, dass sie was macht aber wichtig ist, sie kann was zurückgeben und die Sub kann es nicht. Damit könnten Sie jahrelang programmieren, ohne dass Ihnen etwas fehlt. Und trotzdem gibt es noch einen dritten Kandidaten. Je nachdem wie Sie es zählen wollen, gibt es auch zwei dritte Kandidaten. Nämlich eine Property. Und die zähle ich als zwei dritte Kandidaten, weil sie nämlich beides kann. Sie kann einen Wert setzen, das wäre die Aufgabe für eine Sub oder sie kann den zurückgeben, das wäre Aufgab der Function. Sie kann also sowohl Aktionen, als auch Berechnungen ausführen. Sie können sich das ein bisschen vorstellen, wie hier: Da ist die variable. Ich gebe den Wert 6 rein. Und hole später bei Bedarf den Wert 6 raus. Mehr passiert nicht. Ich Würfel sozusagen. Ich tue einen Wert rein und kann ihn rausholen. Jetzt kommt die Property. Das ist nämlich sozusagen die bessere Variable, da steht einer und passt auf. Wenn ich also einen Wert hineingebe, kann der reagieren und kann der sagen: Nein dieser Wert gefällt mir nicht, Donnerstags darf da nur eine 5 rein geschrieben werden. Oder wenn ich den Wert raushole, sagt der Aufpasser dazu: Nein, darfst du nicht! Du hast nicht die richtigen Rechte, dir gebe ich den Wert nicht. Das könnte eine normale Variable nicht, da müsste ich langwierige Prozeduren darum schreiben. Die Property ist sozusagen eine Variable mit Aufpasser, das heißt, beim hineingeben einer Wertänderung kann der Aufpasser etwas tun, wie eine Sub und beim Herausholen eines Wertes kann er ebenfalls was tun, wie eine Function. Deswegen gibt es die Property auch doppelt. Wenn Sie sich den Code angucken, da taucht erstmalig ein Schlüsselwort doppelt auf. Sie dürften nie zweimal ein Sub-Anzahl oder eher eine Function-Anzahl schreiben. Sie dürfen auch nicht Sub-Anzahl und Function-Anzahl im gleichen Modul benutzen, aber bei der Property dürfen Sie das nicht nur, sondern Sie sollten es auch ganz oft. Die Property gibt es in zwei, wenn ich ehrlich bin, in drei Varianten. Property Let ist diejenige, die schreibt. Die entspricht einer Sub. Die macht irgendwas, schreibt zum Beispiel einen Wert irgendwo rein. Deswegen heißt das Schlüsselwort, wenn ich das mal im Singular benutzen darf Property Let. Die andere, die den Wert zurückholt, heißt Property Get, die entspricht der Function. Und die zweieinhalbte, die ich gerade etwas unterschlagen wollte, ist Property Set. Let gilt für normale Variablen, also zum Beispiel Integer, Variant, Long und ähnliches, die einfachen Datentypen. Set, Property Set, die es nämlich auch gibt, gilt für Objektvariablen. Brauchen Sie vermutlich eher selten. Das mal der Vollständigkeit halber. Also mit Property Let wird in dieser Property dieser Wert übergeben, hier auch als Variant und in diesem Fall einer Modul-öffentlichen Variablen zum Zwischenspeichern weitergereicht. Das ist durchaus auch häufig üblich. Ist ja auch nur ein Beispiel. Also Sie geben hier einen Wert rein. Der hat den Datentyp Variant, das prüft der Compiler, deswegen muss bei der Function-Version sozusagen, die den Wert wieder raus reicht, deren Datentyp identisch sein. Wenn Sie also hier im Parameter Variant rein reichen, müssen Sie hier als Datentyp für die Property Get auch Variant haben. Und hier ist immer ein Parameter ein Argument weniger. Wenn Sie also weitere Parameter haben, so was kommt vor, der Name beispielsweise von irgendwas, dann steht er hier als erstes Argument und hier als einziges. Wir werden uns das noch genauer angucken, aber die Property vereint jedenfalls die Fähigkeiten von Subs und Functions aufs Angenehmste, wenn ich das mal so sagen darf Und Sie werden nicht überrascht sein, wenn Sie die benutzen, denn das ist das, was alle integrierten VBA-Fähigkeiten ausmacht. Sie können gleichzeitig zum Beispiel, in eine Eigenschaft wie Worksheet. Name etwas reinschrieben oder was auslesen. Das ist nichts anderes, als eine Property. Die gleiche Bezeichnung wird zum Lesen und zum Schrieben benutzt.

Excel 2016 VBA Grundkurs

Lassen Sie sich systematisch in die Excel-Programmierung mit Visual Basic for Applications (VBA) einführen.

7 Std. 25 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:30.08.2016

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!