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

Excel 2016 VBA Grundkurs

Select-Anweisung mit MsgBox-Funktion

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Gerade bei Nutzung der MsgBox-Funktion ist eine Select-Case-Anweisung viel übersichtlicher. Hier sollten Sie immer eine Fehlermeldung einbauen, um automatisch logische Programmierfehler gemeldet zu bekommen.

Transkript

Ich möchte Ihnen noch ein zweites Beispiel zeigen für ein Select Case, welches ein If ersetzt. Hier zum Beispiel steckt ein geschachteltes If drin, weil ich zwei Fragen stelle. Häufig ist es aber schon so, dass Sie nicht wie hier zwei Schaltflächen haben, sondern drei. Und spätestens dann lohnt sich schon ein Select Case. Ich werde also dieses Beispiel so ähnlich schreiben, aber dann in dem Modul Select Case. Also... ... das nennen wir dann Sub MeineDreichfachauswahl. Das wird einfach eine Message-Box erzeugen mit drei Schaltflächen. Das würde ich sogar für zwei schon machen, denn Sie werden sehen, für drei Schaltflächen Und dann lohnt es sich schon. Also, es fängt direkt an mit Select Case, und dann kommt meine Message-Box. Ich frage jetzt wieder ganz beliebig: Gefällt Ihnen das? Dort gibt es nicht nur Schaltflächen zu zweit, vbYesNo, sondern es gibt - Sie sehen hier oben schon - eine vbAbortRetryIgnore, oder ich will vbYesNoCancel benutzen. Das erzeugt also die drei Schaltflächen Ja, Nein, Abbrechen. Und dann mache ich, der Form halber, beim Title wieder meine Konstante dazu. Also Message Title, und dann Klammer zu. Damit ich es nicht vergesse, mit End Select schon mal abschließen. Und jetzt kommen die verschiedenen Cases, die Fälle, die auftreten können. Es stecken mindestens drei drin - vbYes, vbNo, vbCancel. Deswegen muss ich die jetzt alle abfangen. vbYes - ich schreibe die erst mal schon mal untereinander - vbNo, Case, vbCancel. Und dann kann ich hier, Doppelpunkt mit Tab eingerückt und dann auch mit mehrfach Tab, jetzt einfach nur statt echtem Code nur so ein Debug.Print machen. Da steht dann drin: Ich habe mich für Ja entschieden. Oder - da muss allerdings noch der Doppelpunkt hin, sonst darf es nicht in die gleiche Zeile - oder Debug.Print: Ich habe mich offenbar für Nein entschieden. Und Debug.Print für Abbrechen. Im wirklichen Leben stünde da natürlich irgendwas, was dann ausgeführt wird. Und wir können erstmal mit Debuggen Kompilieren prüfen, dass auch alles richtig ist. Und speichern natürlich. Das sieht soweit gut aus. Ich habe also drei Möglichkeiten und drei Antworten. Jetzt fragen Sie sich wahrscheinlich: Wo ist dann die vierte? Weil ich eben versprochen habe, es gibt drei Schaltflächen und vier mögliche Fälle. Der vierte Fall ist der, der nicht eintreten darf, und ich schreibe jetzt einfach: Case Else - also alles andere - und mache auch kein Debug.Print, sondern richtig eine Message-Box, die dann sagt: Achtung - Achtung ist ein bisschen viel, das werden wir gleich mit Symbol machen - da steht dann zum Beispiel so was wie: Fehler 4711: Bitte Programmierer anrufen. Sinnvollerweise auch schon eine Telefonnummer dazu, sonst fehlt die nämlich. Die findet man dann nicht raus. Und das verdient mindestens ein Critical und natürlich auch meine Konstante wieder. Sie haben Recht, dieser Else File wird nie auftreten. Wenn Yes, No, Cancel dasteht, kann auch nur Yes, No, Cancel ausgeführt werden. Und trotzdem werden Sie es nachher sehen. Erst mal probieren wir, dass das alles so funktioniert, mit F5. Ich entscheide mich für Ja. Da unten steht Ja. Nochmal F5, ich entscheide mich für Nein. Steht da unten Nein? Und das dritte F5, ich entscheide mich für Abbrechen, und da steht Abbrechen. Alles super. Wo kommt jetzt der Else File? Gar nicht. Außer, nächste Woche hat Ihnen Ihr Chef gesagt: Ach nein, Abbrechen finde ich blöd. Können wir nicht lieber vbAbortRetryIgnore nehmen? Klar, können wir das! Sie erinnern sich kurz, starten ist mit F5, und wählen jetzt hier Abbrechen. Sie erinnern sich, vbCancel kommt vor. Abbrechen, und schon taucht ein Fehler auf. Diese Meldung sagt jetzt dem Benutzer: Achtung, da stimmt was nicht. Und wenn er Sie jetzt anruft, wissen Sie gleich, Sie müssen im Code nur die hoffentlich eindeutige Nummer 4711 suchen, und wissen exakt, in welcher Zeile in Ihrem Code ein Fehler aufgetaucht ist. Und zwar ein logischer. Weil Sie nämlich hier neue Schaltflächen nehmen. AbortRetryIgnore hätte die drei Fälle vbAbort, vbRetry, vbIgnore. Obwohl da in beiden Fällen das deutsche Wort Abbrechen draufsteht, ist es einmal Cancel und einmal Abort. Keiner von den drei Fällen kam vor, und deswegen ist hier sozusagen die Notbremse eingebaut. Gerade bei einem Select Case, wo Sie überzeugt sind, alle Fälle im Griff zu haben, sollten Sie immer einen Case Else machen, mit einer irgendwie deutlich erkennbaren Fehler-Meldung, die darauf hinweist: Achtung! Das hätte hier jetzt nicht passieren dürfen. Und das ist dann der vierte Fall. Also hier müssten Sie entweder die Yes, No, Cancel ausbessern, oder - ich mache das jetzt mal, weil das so gemeint war - hier auch Yes, No, Cancel benutzen. Die müssen zusammenpassen. Und gerade bei Message-Box-Funktionen, die mehrere - selbst wenn es nur zwei sind - Varianten bieten, ist diese Schreibweise mit dem Select Case viel übersichtlicher.

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!