Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2013 VBA Grundkurs

Funktions-Prozeduren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Eine Funktion gibt, anders als eine Sub-Prozedur, beim Aufruf stets einen Wert zurück. Dessen Datentyp ist in der Funktionsdeklaration festgelegt. Oft handelt es sich dabei um berechnete Ergebnisse, es können aber auch bloße Ja/Nein-Informationen sein.

Transkript

Funktionen schreiben sich sehr ähnlich, wie Sub-Prozeduren. Nur das Schlüsselwort ist eben ein anderes. Also, sagen wir eine Funktion. Also, Function, die angibt, wer gerade mit diesem Programm arbeitet. Ich nenne sowas gerne WerBinIch. Und grundsätzlich können Sie jetzt das Return machen und dann wird nicht End Sub, sondern eben End Function geschrieben. Allerdings haben Funktionen einen Rückgabewert. Deswegen sollte man anständigerweise den Datentyp schon dazu schreiben, der dann natürlich As String heißt. Wenn ich einen Namen, Text in diesem Fall zurückgeben will. Auch hier eingerückt. Und irgendwann in der Funktion, eventuell, ist vorher was gemacht worden, in diesem Fall nicht. Irgendwann in dieser Funktion muss dann der Name der Funktion aufgerufen werden. Strg + Leertaste funktioniert jetzt schon, denn die ist oben ja deklariert. Ist gleich und ich schreibe erst mal halt rein: ist mein Name. Diese Funktion steht jetzt zufällig in dem eigenen Modul, modFunction, aber nur damit die schön gesammelt da stehen. Die will ich jetzt testen und rufe die unten in dem Direktbereich auf. Und das bedeutet, dass ich am Anfang ein Fragezeichen schreiben muss. Das entspricht so ein bisschen dem Debug.Print. Fragezeichen, dann frage ich mal nach dem Funktionsnamen, Strg + Leertaste. Ist schon eindeutig. Und anständigerweise macht man hinter Funktionen auch Klammern, sonst sähe es nämlich aus, wie eine Variable, oder gar eine Prozedur. Also, mit Return wird genau das zurückgegeben, was die Funktion als Rückgabewert vereinbart hat. Nur ist das natürlich relativ langweilig, wenn ich schon hier fast wie eine Konstante reinschreibe, wer es ist. Das darf ein bisschen flexibler werden. Deswegen möchte ich Ihnen eine eingebaute Funktion vorstellen. Die heißt Environment. Environment bedeutet Umgebung. Die bezieht sich auf Umgebungsvariablen Ihres Betriebssystems. Das die einmal mit und einmal ohne Dollarzeichen existiert, können Sie getrost vernachlässigen. Dollarzeichen kommen aus der Frühzeit der Basic-Programmierung und bezeichneten Zeichenketten-Funktion. Ohne Dollar ist eine Zahl, mit Dollar ist eine Zeichenkette, mehr Datentypen hatten die damals nicht. Also, Environment ist eine Funktion, der ich jetzt übergeben kann (das ist mit Expression ein bisschen unscharf formuliert), welche Umgebungsvariable ich haben möchte. Die muss man schlicht wissen. Eine davon heißt, z.B. UserName. Und die weiß, wer sich hier am Rechner angemeldet hat. Wenn ich jetzt also die gleiche Funktion. (Sie können einfach dahinter klicken, nochmal Return drücken.) Wenn ich die gleiche Funktion jetzt aufrufe, sehen Sie: ich bin hier als Trainer angemeldet. Damit ist die Funktion schon sehr viel flexibler. Ich kann generell fragen WerBinIch und erhalte dann irgendwie eine Antwort. Wie? Ist mir als Nutzer oder als Zweitprogrammierer, sozusagen, egal. Irgendeiner hat mir diese Funktion bereitgestellt. Und da drin wird, "Zauber-Zauber", irgendwie ermittelt, wer das ist. Natürlich können Sie Funktionen auch von anderen Prozeduren oder Funktionen aus aufrufen. Also, sei es nur zum Testen. Eine Sub TesteDieseFunktion. Die Sub selber ist parameterfrei, kann also direkt aufgerufen werden. Und da würde ich jetzt, z.B. vereinbaren Dim strBenutzer As String. strBenutzer ist gleich WerBinIch. Auch da, und sei es nur für die Schönheit des Codes, dass man sieht: Achtung, Funktion, keine Variable - die Klammern. Und dann kann ich einfach mit Debug.Print ausdrucken, strBenutzer. Und ich mache das unten mal weg, damit Sie sehen, dass das neu dazukommt. Wenn ich jetzt hier reinklicke und die Prozedur mit F5 aufrufe, dann wird die Funktion aufgerufen, in die Variable geschrieben und die Variable dann ausgedruckt. Es ist also zwischen Sub und Function in der Schreibweise fast kein Unterschied. Der wesentlichste Unterschied ist, dass ich hier ein Rückgabedatentyp habe. Aber im Aufruf muss immer stehen: Variable gleich und dann eine Function. Sie können eine Function sogar ohne Rückgabewert aufrufen, wenn Sie es mal wirklich darauf anlegen wollen. Manchmal braucht man das, wenn etwas als Function definiert ist, aber der Rückgabewert interessiert einen nicht. Dann würden Sie ein Call davor schreiben. Das ist natürlich (ich lasse es mal eben laufen) witzlos, weil Sie hier den Rückgabewert nicht kriegen. Aber es gibt Functions, insbesondere, wenn man aus dem Betriebssystem welche aufruft, die tun etwas und geben zurück, ob sie erfolgreich waren oder nicht. Und wenn Sie das gar nicht interessiert, z.B., Sie löschen Ihr Datei, wenn die nicht da war, ist egal. Dann ist egal, ob es erfolglos beim Löschen war, weil sie sowieso nicht vorhanden ist. Dann können Sie das aufrufen. Mit Call ignorieren Sie den Rückgabewert und sparen sich, sozusagen, die Erfindung einer Variablen. Aber ansonsten ist das eher die völlige Ausnahme. Und deswegen will ich das gar nicht so lange da stehen lassen. Der anständige richtige, korrekte Aufruf für eine Function ist - Variable gleich Funktion. Und dann sehen Sie auch, sind die Klammern korrekt.

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!