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

Deklarieren von Variablen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Auch wenn VBA als BASIC-Dialekt es erlauben würde, Variablen ohne explizite Ankündigung zu benutzen, wäre das eine häufige Fehlerquelle und daher dringend zu vermeiden. Sinnvolle Deklarierung von Variablen macht Ihr Programm effektiver und fehlerärmer.

Transkript

Ich habe bisher Variablen einfach so benutzt. Das fühlt sich ganz gut, ansagen, wenn man in diesem Beispiel eine Prozedure Sub BenutzerName. Da erfinde ich eine Variable strBenutzer ist gleich. Irgendein beliebige Einheit. Und kann dann ein paar Zahlen später oder auch direkt hinter hier diese Variable aufrufen. Da haben Sie schon den ersten Nachteil, wenn ich jetzt Strg + Leertaste drücke, wird mir nichts angeboten, obwohl das eine relativ eindeutig ist. Also ich muss es selber schreiben und noch viel lästige, wenn ich die Zeile verlasse, wird aus dem großen B hier in kleines, weil der letzte gewinnt an der Stelle. Aber immerhin, wer sich nicht um Groß-Kleinschreibung und Lesbarkeit für Code kümmert, der sagt: Bin noch fertig. Und erstaunlich genug. Es funktioniert doch. Also F5 drücken und tatsächlich wird der Inhalt ausgegeben. Das fördert nicht nur schlampiger Code, schlecht wartbar, schlecht lesbar, sondern ist auch ganz üble Fehlerquelle. Das will ich Ihnen mal zeigen. Ich will irgendeine Anzahl ermitteln. Ich habe eine Variable. Sagen wir intNummer = irgendeine Zahl. Und die werde ich in der nächsten Zeile ausdrücken. Debug.Print intNummer und will das hier unten anzeigen. Was vermuten Sie, kommt jetzt raus. 990? Nein, da kommt nichts raus. Wenn ich jetzt F5 drücke, das ist bereits passiert - nichts. Und zwar deswegen, weil hier ein Schreibfehler drin ist. Vielleicht haben Sie es beim Schreiben gesehen, aber je nach Schriftgröße oder Umfang des Codes kann man das nicht sehen. Und das ist mit Abstand übelster Fehler, den Sie haben können, eine Variable die Sie gar nicht besitzen. Wenn ich da jetzt ein Dim draus mache, alles in Ordnung, kann ich F5 drücken. Das sind die 9999. Aber ich lasse es mal fehlerhaft, wenn Sie Variablen nicht ankündigen, also nicht mit Dim vorher schreiben, dann riskieren Sie Schreibfehler. Mal abgesehen von der Unbequemlichkeit, die Sie eben gesehen haben, dass Sie die auch immer selber schreiben müssen. Ich könnte jetzt hier davor schreiben Dim intNummer und As Integer wäre, eigentlich dann noch anständig. Das hilft aber nicht wirklich viel. Das, was ich machen muss, ist den Kompiler zu bitten, nicht zu zwingen, nur gültige Variablen zu nehmen. Das geschieht in vorhandenen Modulen mit Option Explicit. Steht am Anfang des Moduls und gilt nur genau für dieses Modul, das heißt die anderen schon von anderen Modulen sind davon nicht betroffen. Aber das bedeutet, dass dieses so nicht durchgelassen wird. Wenn ich jetzt z.B. versuche hier BenutzerName ausführen zu lassen, dann gibt es direkt eine Meldung. Die Variable kenn ich nicht, die so auch markiert. Nach dem OK versucht der Kompiler, noch zu arbeiten, deswegen dieser gelber Pfeil und Markierung. Sie können das hier stoppen. Das ist sonst eine Operation am offenen Herzen, wenn Sie jetzt schreiben. Kann man machen wenn man Risiko liebt. Muss aber nicht sein. Also Kompiler stoppen und dem hier erklären, dass es eine Variable gibt, die ist so gemeinster Benutzer As String. Und deren Schreibweise gewinnt, wie Sie grade hier sehen. Endlich sind Variablen wiedereinheitlich groß/klein und das, was vorhin nicht funktioniert hat, ist str.Beschreiben und Strg + Leertaste. Mal gucken, ist es eindeutig? Ja, ist eindeutig. Das funktioniert jetzt auch wieder. Also die Deklaration hier mit Dim ist nicht nur gut, damit Sie die besser benutzen können, sondern mit Option Explicit wird jetzt auch erzwungen. Und BenutzerName funktioniert jetzt, aber AnzahlErmitteln ist nicht lauffähig, weil dann Fehler drin ist. Das sieht soweit gut aus. Das ist in eine Deklaration. Alles wird aufgerufen. Aber wenn ich jetzt F5 drücke, dann gibt es direkt den Fehlervariable definiert und der weißt nicht auf diesen Schreibfehler hin. Nach dem OK hier oben wieder stoppen. Der Schreibfehler entsteht sowieso nur wenn man Anfängt die Dinge zu Fuß zu schreiben, was ich dringend nicht empfehlen kann. Schreiben Sie wie bisher Strg + Leertaste entweder gibt es eine Liste oder wie hier direkt ausgeschrieben den echten Variablen-Namen. Selbst wenn die Variablen kurz sind es ist es völlig unnötige Fehlerquelle, dieselbe zu schreiben. Lassen Sie sich vom Editor helfen, der kennt sie besser. Und deswegen, das haben Sie vielleicht schon bemerkt, macht es mir auch nicht relativ lange Variablen, zu nehmen. Hier z.B. Das ist ja doch ein bisschen mühsam, wenn man immer das schreiben will, aber Sie haben sicherlich gemerkt: ich lass mir die vom Editor erzeugen, indem ich nur den Anfang eingebe. Ich mach das Fenster wieder zu. Und deswegen ist die Länge egal. Seien Sie ruhig sprechend mit Ihrer Variablen. Jetzt müssen Sie natürlich in jedem neuem Modul dran denken, dieses Option Explicit zu schreiben. Müssen Sie nicht. Gucken Sie noch mal unter Extras Optionen. Dort gibt es hier diese Einstellung Variablendeklaration erforderlich. Die macht genau das: wenn die angekreuzt ist und nach dem OK eine neues Modul eingefügt wird. Keine von anderen. Ein neues Modul. Ich mach das jetzt da. Dann steht da direkt Option Explicit drin. Also ab jetzt wir es für Neue Module so eingerechnet und eigentlich sollte man gar keine Programm schreiben, wo das nicht drin enthalten ist. Also normalerweise müsste es jetzt hingehen. Alle andere neue Module sind auch damit versehen. Und den ganzen Müll, der dann nämlich drinnen steht, an undeklarierten Variablen dabei aufräumen. Ich nehme dieses neue Modul mal weg. Das brauche ich jetzt nicht. Also ab jetzt wird jedes neue Modul mit Option Explicit ausgerüstet und das bedeutet, dass Sie gezwungen werden, alle Variablen anzukündigen. Basic würde das auch anders erlauben, wie Sie gesehen haben. Und dieser Zwang ist super, denn der rettet Sie vor Schreibfehlern, noch viel schlimmer vor unbekannten Variablen, den Inhalt Sie untersuchen wollen und nicht merken, dass da kein Inhalt drinnen ist.

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!