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 2016 VBA Grundkurs

Entscheidungen: If

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Jeder Programmcode besteht vorrangig aus Entscheidungen und Schleifen. Sehen Sie im Überblick, wofür welcher Befehl am besten geeignet ist und wie er grundsätzlich aussieht.

Transkript

Eine Programmiersprache gilt erst dann als richtige Programmiersprache, wenn sie Entscheidungen fällen kann. Das ist klassischerweise ein If, also eine Einzelentscheidung, aber es ist genauso gut mit einem Select Case möglich. Ich nenne es einfach mal das bessere If. Es können aber auch vielfache Entscheidungen sein, also wiederholte Entscheidungen, nämlich in einer Schleife das ist klassischerweise eine For Next Schleife oder eine Do Loop Schleife. Um die kümmern wir uns erstmal weniger. Es geht vor allem um die Einzelentscheidung, also um das If. Das ist eine einfache Bedingung im genauen Wortsinn, also eine einzelne Bedingung, und dazwischen ein Block mit möglicherweise vielen Zeilen. Deswegen nennt sich das Ganze auch Block If. Das sieht beispielsweise so aus: hier steht das Schlüsselwort If da ist die Bedingung, besteht meistens aus drei Teilen, ein Wert verglichen mit einem anderen Wert, und am Ende muss ein Then kommen. If Bedingung Then, wenn die Bedingung wahr ist, dann wird das, was hier als Kommentar steht ausgeführt. Der Kommentar selber wird natürlich nicht ausgeführt, sondern das was dort stattdessen als wirklicher Code steht und das können beliebig viele Zeilen sein und irgendwann muss ein End If folgen. Deswegen nennt sich das Ganze Block If. Dieser Block zwischen If und End If kann ziemlich lang sein. Es gibt zwei Sonderfälle. Der erste Sonderfall ist eine einzeilige If Prozedur ohne das End If. Das unterscheidet sich in der Schreibweise praktisch nicht, nur das der Code dahinter steht. Und der zweite Sonderfall ist eine einzeilige I If Funktion. Zwei Besonderheiten sozusagen, ersten die Schreibweise mit zwei I, IIf und zweitens es ist eine Funktion und keine Sub Prozedur. Das liest sich so, das ist das einzeilige If, also hier ist die Bedingung direkt dahinter der eigentliche Code. Das darf kein Kommentar sein, das muss auch exakt eine Zeile Code sein. Erstens ist es überraschend, wenn das End If fehlt und zweitens ist eine Zeile Code häufig zu wenig. Das würde ich in die Kategorie "zu Tode gespart" einsortieren. Das was sie hier an Zeilen sparen, denn Sie haben ja hier mindestens immer drei Zeilen und hier nur eine, das verlieren Sie nachher durch die Suche, warum das denn hier kein End If hat und wo das endet. Davon kann ich nur dringend abraten. Entsprechend das IIf. Wenn Sie hier, sagen wir mal, einfache Zeichenketten zusammensetzen, da steht gerne wenn hier ein Plural erkannt wird, If int Anzahl größer Eins, dann folgt hier irgendwie ein Wort was mit Plural bezeichnet wird, oder hier der Singular, dann ist das super. Wenn Sie allerdings hier beispielsweise prüfen, ob der Nenner Null ist, wenn der Nenner Null ist, ist das Ergebnis Null, sonst dürfen Sie Zähler durch Nenner rechnen, dann wird das scheitern, weil die IIf Funktion immer beide Ergebnisse ausrechnet und dann erst prüft, welches benutzt wird und da käme also hier schon ein Laufzeitfehler, Division durch Null obwohl Sie vorher ja gerade prüfen, dass Sie durch Null nicht teilen wollen. Diese beiden sollten Sie vermeiden, mindestens das erste hier, das einzeilige If. Das IIf nur dann einsetzen, wenn da keine Laufzeitfehler- anfälligen Parameter drin sind. Der Normalfall ist also ein Block If. Und dieses Block If kann auch mehrere Bedingungen haben. Das heißt, auch wenn es eine einfache Bedingung ist, können Sie trotzdem mehrere dran hängen und durch logische Operatoren verknüpfen. Das sind typischerweise And beziehungsweise Or und zusätzlich ein Not davor. Es gibt noch drei weitere, die sind so selten, dass ich sie in den letzten dreißig Jahren nicht ein Einziges mal vermisst oder gar benutzt hätte. XOr ist ein Gegenstück zum Or. Das ist ein so genanntes inklusive Oder, das ist ein exklusiv Oder und diese beiden muss ich sogar nachschauen, wie sie heißen. Das Eine ist eine Implikation, das Andere Äquivalent. Da müssen Sie schlicht in der Literatur, in Suchmaschinen oder sonstwo nachschlagen, wann diese Sonderfälle überhaupt nötig wären, und ich kann Ihnen versprechen, Sie werden sie nicht brauchen. Mit And und Or und möglicherweise einem zusätzlichen Not kommen Sie wunderbar hin. Das sieht dann beispielsweise so aus, If int I, also eine Integer Variable I, etwas lieblos benannt, ist kleiner 10 oder die gleiche Variable größer 99. Dann wird das hier ausgeführt. Sprich, der Wertebereich unter 10 und über 99 wird berücksichtigt. Sie können das auch umkehren, das ist die exakte Umkehrung davon, wenn der Wertebereich größer gleich 10 und gleichzeitig kleiner gleich 99 ist, das sind die Übrigen. Sie müssen immer aufpassen, wenn Sie ein Or in ein End verwandeln, dann wird aus einem kleiner immer ein größer gleich. Das gleich dürfen Sie nicht vergessen. Wenn hier ein kleiner gleich steht, dann muss es natürlich hier ein größer sein und entsprechend hier. Also die If Zeile enthält eine oder mehrere Bedingungen, die mit logischen Operatoren verbunden ist. Anstatt diese Bedingung umzukehren, können Sie auch ein Else benutzen. Else macht alles Übrige, die restlichen Bedingungen, die noch nicht erwischt sind und hat deswegen keine eigene Formulierung für die Bedingung. Das heißt If Bedingung hier Then, das ist der positive Fall sozusagen und Else ist alles andere. Alles was so übrig ist. Sie können natürlich auch hier einfach nichts tun. Wenn hier eine sehr komplizierte Bedingung ist, bei der sie keine Lust haben das Gegenteil zu erfinden, dann schreiben Sie einfach If komplizierte Bedingung Then Else und dann steht, was hier passiert. Es gibt zusätzlich noch ein Else If. Also ein Else mit einer Bedingung. Das sitzt sozusagen dazwischen. Und zwar nicht nur einmalig, sondern es können beliebig viele Else If mit jeweils einer eigenen Bedingung sein. Da muss man ein bisschen aufpassen, der erste Treffer gewinnt nämlich. Im Normalfall sieht das so aus,wenn die Bedingung hier IntI größer 99 erfüllt ist, dann wird dieser Code ausgeführt. Wenn nicht, prüft der Compiler hier: wenn vielleicht die Bedingung IntI ist kleiner 10 gültig ist, dann wird das hier ausgeführt. Wenn es weder größer 99 noch kleiner 10 ist, dann kommt das hier zum Tragen. Soweit so unkompliziert. Es könnte aber auch so aussehen: Wenn die Zahl größer als 99 ist, dann kommt dieser Code. Wenn sie sogar größer als 150 ist, kommt dieser Code und sie ahnen es schon wegen des Kommentars. Stellen Sie sich vor, die Zahl heißt 200. Wenn 200 größer als 99 ist, dann läuft genau dieser Code, denn das ist wahr. Aber jede Zahl, die größer als 150 ist , war auch schon größer als 99. Und das heißt die 200 führt nur diesen Code aus und kommt trotzdem nicht hier hinein. Das ist bei verschiedenen Programmiersprachen unterschiedlich, deshalb sage ich es ganz deutlich, es kann in so einer If Else If Konstruktion nur eine einzige Block Bedingung ausgeführt werden, denn wenn der Code schon hier ausgeführt wird, wandert er nie in die nächste Prüfung und macht hier weiter. Da müssten Sie ein eigenes If dahinter schreiben, also If erste Bedingung End If und dann kommt hier nicht Else, sondern If neue Bedingung, dann wahlweise Else oder End if. Da müssen Sie zwei eigene If schreiben. Diese Variante würde leider scheitern. Das If insgesamt ist also sozusagen die einfache Variante.

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!