Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Excel 2016 VBA Grundkurs

Modul-öffentliche Variablen

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Sollen sich mehrere Prozeduren gemeinsame Variablen teilen, können Sie diese als Modul-öffentlich deklarieren. Dann sind sie zumindest vor versehentlichem Zugriff aus anderen Modulen heraus geschützt.

Transkript

Diese beiden Variablen sind lokal, sie haben also überhaupt nichts miteinander zu tun. Das ist grundsätzlich empfehlenswert, Sie sollten als Erstes immer über lokale Variablen nachdenken, aber nicht immer praktisch. Jetzt möchte ich eine Stufe höher gehen in der Sichtbarkeit, in der Nutzbarkeit, also eine Modul-öffentliche Variable benutzen. Das mache ich wieder in einem neuen Modul, das ginge ja auch im gleichen, es ist nur wegen der Übersicht. Dieses Modul wird dann also entsprechend modVar ModulOeffentlich heißen. Das ist eine sehr feine Unterscheidung, es gibt normalerweise nur die Unterscheidung in öffentliche und nicht öffentliche, nämlich lokale Variablen. Aber, der Unterschied ist sozusagen eine lokale Variable ist im gleichen Zimmer, eine Modul-öffentliche Variable ist in der gleichen Wohnung, nämlich innerhalb dieses Moduls, und eine Datei-öffentliche ist in einem fremden Modul der gleichen Datei, sozusagen im gleichen Haus, vielleicht sogar in der gleichen Stadt. Also, alles was sich in dieser Datei befindet, aber nicht in diesem Modul ist. Und ich werde jetzt also eine Variable machen, die nur Modul-öffentlich ist, das heißt, sie steht im gleichen Modul und zwar außerhalb einer Prozedur. Nebenbei übrigens auch ganz am Anfang eines Moduls, das wird im Zweifelsfall bemeckert, schreibt sich aber so wie immer, dim+Variablenname, und da wird die Ungarische Notation noch mal in Häppchen ergänzt, ich werde nicht nur den Datentyp voranstellen, sondern auch die Tatsache, dass es eine Modul-öffentliche Variable ist. Ich kennzeichne das durch ein m_, und lese das als Modul-öffentlich. Sie werden das sehr häufig auch als Membervariable hören oder lesen, da geht es dann eher um Klassenprogrammierung, also nennen wir das hier einfach erst mal Modul-öffentlich, und danach kommt wieder der Datentyp und irgendeine sprechende Bezeichnung, und auch hier natürlich As Datentyp, also die wirkliche Deklaration des Datentypen. Und ich kann das mit Kommentar dahinter schreiben. Ein Kommentar wird mit einem Hochkomma, neben dem Ä auf der Tastatur eingeleitet, und dann schreibe ich mal dazu "Diese Variable ist Modul-öffentlich" und wenn Sie die Zeile verlassen sehen Sie, Kommentare sind grün. Die schreibt man typischerweise dahinter. Sie können auch, wenn Sie die Zeile selber mal kommentieren wollen, das so davor schreiben, dann wird die Zeile selber nicht ausgeführt, aber ich brauche sie ja. Und dann gibt es eine kleine Besonderheit im VBA-Editor, wenn ich gleich, das werden Sie sehen, eine Prozedur erfinde, sub SetzeWert wird die heißen und mit Return bestätige, dann gibt es hier so einen Trennstrich, der ärgerlicherweise dafür sorgt, dass der Unterstrich nicht zu sehen ist von der Variablen, der ist da, aber das ist irritierend, Leerzeichen wären gar nicht erlaubt, also mache ich hier drunter ein Kommentarzeichen, und wenn ich die Zeile verlasse, sehen Sie, das sorgt nur dafür, dass der Strich hier ein bisschen tiefer wandert. Häufig stehen da auch mehrere Variablen, so sträflich es ist, Modul-öffentliche Variablen in Unzahl zu benutzen, es werden schon mal eins, zwei, drei auftauchen, dann brauchten Sie natürlich nur nach der hintersten so ein Kommentarzeichen zu machen. Jetzt habe ich schon die erste Prozedur angefangen, die heißt deswegen SetzeWert, weil sie diejenige ist, die dieser Variablen einen Wert zuweist, diesen Wert setzt. Also, mit Tab-Taste einrücken, und jetzt kann ich sehr schön m_ schreiben, und da Sie sehr wenige Modul-öffentliche Variablen haben werden, können Sie jetzt mit Strg+Leertaste mal so fragen, wen gibt es denn mit diesem Namen, und das ist meistens sehr eindeutig. Und die kriegt einen Wert zugewiesen, sagen wir 1234, und das war es, mehr macht diese Prozedur nicht. Weil nämlich eine andere Prozedur, es ging ja genau darum, dass Modul-öffentliche Variablen in der einen Prozedur gesetzt, in der anderen gelesen werden, weil nämlich eine andere Prozedur, die nenne ich dann einfach mal, sub ZeigeWert, diesen Wert im Debug-Fenster zeigt. Also, die macht keine Zuweisung, sondern nur Debug.Print, und dann den Wert von, Strg+Leertaste m_intWert, von dieser Variablen. Das Ganze kann ich schon mal speichern. Wenn Sie zuerst dieses ausdrucken oder ausführen, dann werden Sie sehen, die Variable ist eine Integer-Variable, die ist zwar deklariert, aber nicht zugewiesen, dann hat sie den Wert 0. Kann ich wieder wegnehmen. Wenn Sie zuerst dieses ausführen, passiert sichtbar nichts, aber die hat jetzt den Wert 1234, dann kann ich anschließend, ohne dass die das voneinander wissen, diese ausführen und sehe jetzt hier den kompletten gewünschten Wert. Sie können also tatsächlich hier, in einer Modul-öffentlichen Variablen dafür sorgen, dass die eine Prozedur den Wert zuweist und die andere ihn ausliest oder weiter benutzt. Das klingt jetzt erst mal gut, dann brauchen Sie nämlich die Variablen nur da oben zu deklarieren und können sie irgendwo, irgendwie benutzen. Deswegen muss ich das gleich mit einer Warnung illustrieren. Stellen Sie sich vor, die Prozedur, die Sie schreiben ist dafür zuständig, Geld zu wechseln. Sie haben Ihr Portemonnaie bei sich und wechseln Geld. Wenn jemand sagt, er hätte gerne einen 10€-Schein gewechselt, dann geht er zu Ihnen, Sie nehmen ihn in die Hand, greifen persönlich in Ihr lokales Portemonnaie, holen ein paar Münzen raus und reichen sie raus. Das sind sozusagen lokale Variablen, Sie haben Ihr Portemonnaie, Ihre Prozedur im Griff. Jetzt machen wir gerade Modul-öffentliche Variablen, das heißt, Sie legen Ihr Portemonnaie irgendwo in der Wohnung hin und sagen, wer Geld wechseln möchte, tut bitte in der einen Aktion Geld hinein, einen Schein, und irgendwer greift in einer anderen Aktion hinein und holt die Münzen raus. Da braucht es schon eine Menge Vertrauen. Jetzt stellen Sie sich vor, Sie machen das sogar für Datei-öffentliche Variablen, das heißt auf Deutsch, Sie legen Ihr Portemonnaie mitten in die Fußgängerzone, und sagen, wer Geld wechseln möchte, der eine legt mal einen Schein rein, und die anderen holen sich ihre Münzen raus. Dann drücke ich Ihnen feste die Daumen, dass da am Ende noch Geld drin ist. Je öffentlicher eine Variable wird, desto wahrscheinlicher ist es, dass sie, meistens völlig versehentlich, an der Variablen überraschend was ändern, wo eine andere Prozedur noch nicht damit rechnet. Also im Zweifelsfall möglichst lokal. Und dieses ist die Modul-öffentliche Variante, die also die Variablen auf Modulebene deklariert, und das heißt, die sind auch nur in diesem Modul sichtbar und benutzbar, in keinem anderen Modul, selbst wenn ich dort gleichnamige habe.

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
Ihr(e) Trainer:
Erscheinungsdatum:30.08.2016
Laufzeit:7 Std. 25 min (66 Videos)

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!