Excel 2013 VBA Grundkurs

Bedingung überprüfen

Testen Sie unsere 1957 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Der Kern so ziemlich jeder Programmierung besteht darin, Bedingungen zu überprüfen. Typischerweise geschieht dies mit einem If-Befehl.Doch selbst dieser scheinbar so einfache Befehl bietet noch jede Menge Potential, um den Code zu verbessern.

Transkript

Der Kern jeder Programmierung besteht früh oder später aus einem If, If Then, Else. Auf die gefallen, dass wir das schon zwei-drei Mal benutzt haben, möchte ich Ihnen trotzdem gerne einmal explizit zeigen, wie man sich das schwierig oder leicht machen kann. Mit einer einfachen Prozedur. Die heißt Test, also Sub Test. Wenn ich jetzt abfragen will, ob jemand dafür oder dagegen ist (völlig egal gerade welcheFrage), dann könnte ich das z.B. so machen, dass ich eine Variable nehme. Dim intEntscheidung As Integer, weil ich weiß, dass der Rückgabewert einer Message Box ein Integerwert ist. Dann kann ich jetzt schreiben intEntscheidung ist gleich MsgBox, aber diesmal als Function aufgerufen. Und da stelle ich dann die einfache Frage: "Sind Sie dafür?" Und als Parameter, damit ich überhaupt zwei Entscheidungsknöpfe kriege... Normalerweise, wäre es nämlich ein vbOKOnly. ...sage ich jetzt: "Ich hätte gerne vbYesNo. Dann gibt es die beiden Schaltflächen Ja, Nein. Und im Moment vereinfacht, gebe ich diesen Wert erstmal zurück unten in den Direktbereich. Das mag soweit reichen. Wenn ich jetzt mit F5 das Ganze starte, sehen Sie hier die Entscheidung: Ja, Nein (Yes, No). Wenn ich auf Ja gehe, steht hier unten eine 6. Ich lasse dasselbe nochmal laufen. Gehe jetzt auf Nein, und dann steht da unten eine 7. Da gibt es also mehrere Sachen dran zu entdecken. Erstens, eine Message Box können Sie als Function aufrufen. Das ist nur dann sinnvoll, wenn sie überhaupt eine Entscheidung zulassen. Und diese Entscheidung wird in einer Zahl zurückgegeben. Die Konstante sagt dem Betriebssystem welche Schaltflächen anzuzeigen sind. Und je nachdem, welche Sie anklicken, gibt das Betriebssystem Ihnen dann auch nur eine Zahl zurück. Das ist gut, weil nämlich sprachneutral, sonst würde das ja auf englischen oder französischen Rechnern gar nicht funktionieren. Es ist nur eben gewöhnungsbedürftig. Und anstatt jetzt hier mit Debug.Print irgendwas zu schreiben, kommt da jetzt mein If. If, Entscheidung, gleich. Da würden Sie jetzt wahrscheinlich 6 oder 7 schreiben. 6 war ja ein Ja, 7 ist ein Nein. Im Gegenteil, Sie schreiben keine Zahl, sondern Sie greifen wiederum auf Konstanten zurück, nämlich vbYes. Sowie es hier ein vbYesNo gibt für die Entscheidung beide Schaltflächen anzuzeigen, gibt es auch ein vbYes und ein vbNo. Also, wenn das ein Yes ist... Und ich schreibe schon mal vorbeugend den kompletten Rumpf: If, Else, End If. Sie haben vielleicht eben gesehen, End If ist das einzige Wort, was man in einem durchschreiben darf und es wird trotzdem zählig in den beiden. Und wenn es die Entscheidung Ja war, dann kann ich jetzt mit Debug.Print, nur damit es übersichtlich bleibt, ein Ja ausgeben. Und andernfalls ein Debug.Print und ein Nein. Also, den Else 2 kann ich mir sehr einfach machen, denn wenn es nur zwei Schaltflächen gibt und Ja habe ich erledigt, kann nur die Zweite übrig bleiben. Das Ganze nochmal getestet. Also, mit F5, Ja, dann steht hier unten Ja. Und erneut mit Nein, dann steht hier Nein. Soweit, alles gut. Statt Debug.Print stehen im richtigen Leben dann natürlich Aktionen. Damit das Gleiche auch schon korrekt ist, mache ich hier beim Titel auch schon mal die Konstante rein, damit man auch sieht, dass es nicht Excel selber ist. Das ist in Ordnung, kann man nichts daran sagen. Aber es geht ein bisschen kürzer. Machen wir mal eine Kopie davon. Und ich ändere mal hier oben: TestKuerzer. Und zwar lässt sich verkürzen diese Erkenntnis, dass hier eine Variable deklariert wird, hier mit einem Wert versehen und hier einmal ausgewertet. Das lässt sich deswegen kürzen, weil eine Funktion (diese nämlich hier) immer so benutzt werden kann, als sei sie ihr eigenes Ergebnis. Das heißt, anstatt es in einer Variablen zwischenzuspeichern, packe ich das direkt an die Stelle, wo die Variable eingesetzt würde. Das ist völlig identisch, aber kürzer. Funktioniert nur dann, wenn Sie diese Variable oder deren Inhalt genau einmal benötigen. Also, auch einmal testweise. Ich muss da unten einmal aufräumen. Und dann mit F5: "Ich bin dafür", Ja und da steht das Ja. Das Nein glaube ich jetzt mal. Es geht sogar noch kürzer. Ich mache mal noch eine Kopie davon. Da wird es dann schon wahrkalsig, nur das wir es der Form halber gezeigt haben. Noch kürzer und zwar. Wollen Sie je nachdem ausdrucken, was entschieden wurde. Also, mit Debug.Print schreiben Sie ein IIf. Das ist eine Funktion. Wenn die wahr ist, dann steht das Ja, und ansonsten das Nein. Und der ganze Rest da unten kann weg. Das ist jetzt extrem kurz. Da ist die Message Box, zusammen mit dem ist es die Bedingung. Das ist das erste Argument zum IIf. Und wenn die Bedingung wahr ist, wird dieser Teil zurückgegeben, ansonsten der Nein-Teil. Und das, was dann dabei rumkommt, wird mit Debug.Print da unten hingeschrieben. Einmal zum Testen. Ich klicke hier rein, F5, Nein, und da steht unten ein Nein. Alle drei Prozeduren machen exakt dasselbe. Die - viel Aufwand, die - einigermaßen kurz, die - ist schon ein bisschen wahrkalsig kurz. Erstens, muss man es noch verstehen, das geht hier noch. Und zweitens, sollten Sie das nur machen, wenn hier nichts berechnet wird. Dies ist harmlos, hier kommen nur Texte zurück. Aber statt der Texte könnte der auch eine längere Berechnung stehen, und dann wird es schlicht unübersichtlich. Und unübersichtlich heißt immer fehlerträchtig. Also, das If lässt sich unterschiedlich gestalten. Dieser hier lässt sich noch ein bisschen erweitern. Ich werde den mal rausgreifen und da oben davor kopieren. Und nenne den einfach Test02Kuerzer. Denn wenn ich dafür bin, möchte ich, bevor es wirklich an die Entscheidung geht, nochmal sicherheitshalber nachfragen. Also, könnte ich jetzt hier ein geschachteltes If machen, darum geht es mir nämlich jetzt. If MsgBox "Sind Sie sicher?", vbYesNo, oder wir nehmen mal ruhig einen anderen, vbOKCancel, unseren eigenen Titel. Und dann muss ich natürlich nicht nach Yes oder No fragen, sondern dann kann nur ein vbOK rausgekommen sein. Das ist ein sehr beliebter Fehler. Sie nehmen hier als Konstante vbYesNo und fragen hinten nach vbOK oder andersrum. Für vbOKCancel kann nur vbOK und vbCancel rauskommen. Und für vbYesNo kann nur vbYes oder vbNo rauskommen. Also, hier vbOK, Then. Und hier entsprechend einrücken. Und hier bleibt eine dritte Variante dann übrig. Die nenne ich mal "Na ja, doch nicht". Also, wenn ich das durchlaufe, dann wird zuerst, wenn ich mich für "Ja, ich bin dafür" entscheide, in diesem Zweig verzweigt... Und der wiederum besteht aus dem eigenen, deswegen nennt sich das geschachteltes If und sollte auch immer eingerückt werden. ...der dann, nur dann, eine zweite Entscheidung erfragt. Wir können ja das mal durchspielen. Also, mit F5. Erstens, bin ich dafür: Ja. Und deswegen kommt hier die zweite Frage: "Bin ich sicher?" Und wenn ich jetzt abbreche, erscheint: "Na ja, doch nicht". Auch hier können Sie natürlich ein If hineinschachteln. Und da sind Sie insgesamt relativ unbegrenzt. Die eigentliche Grenze ist die Übersichtlichkeit. Sie können hier ziemlich tief verschachteln und irgendwann ist es so tief verschachtelt, dass man nicht mehr lesen kann, was man da eigentlich geschrieben hat. Dann muss man sich andere Sachen ausdenken. Das soll so ein bisschen zeigen, was Sie aus dem If rausholen können. Im Normalfall wird es sowas sein: eine Bedingung geprüft, eine Entscheidung, die kann auch mehrere Zeilen haben. Aber das in der kurzen Übersichtlichkeit.

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!