Richtig einsteigen: Excel VBA-Programmierung

Für Microsoft Excel 2007 bis 2016
 
 
O'Reilly (Verlag)
  • 2. Auflage
  • |
  • erschienen am 31. März 2016
  • |
  • 294 Seiten
 
E-Book | ePUB mit Wasserzeichen-DRM | Systemvoraussetzungen
E-Book | PDF mit Wasserzeichen-DRM | Systemvoraussetzungen
978-3-96010-028-7 (ISBN)
 
Dieses Buch hat sich als verständlicher Einstieg in Excel VBA außerordentlich bewährt. Auf Grundlage seiner Kurse und langjährigen Praxiserfahrung vermittelt Bernd Held das Wichtigste über Schleifen, Verzweigungen und die relevanten Objekte von Excel. In kurzer Zeit sind Sie in der Lage, Alltagsaufgaben erfolgreich zu lösen und sich das Leben erheblich zu erleichtern. Neben schnellen Erfolgserlebnissen bietet diese Einführung genau die richtige Dosis Know-why.
weitere Ausgaben werden ermittelt
Bernd Held gehört zu den deutschlandweit erfolgreichsten Autoren und Trainern zum Thema Excel VBA und kann auf mehr als 15 Jahre Schulungserfahrung zurückgreifen. Mehrfach wurde er von Microsoft als MVP (Most Valuable Professional) im Bereich Excel ausgezeichnet. Mit seinem Team realisiert er seit 2008 Programmier-Aufträge, berät Unternehmen und veröffentlicht Fachbücher und Fachartikel.

Kapitel 2
Die wichtigsten Sprachelemente von Excel-VBA


In diesem Kapitel:

Bedingungen erstellen und üben

Schleifen erstellen und verstehen

Sonstige Sprachelemente

Zusammenfassung

Lernkontrolle

Das Wesentliche einer Programmiersprache sind ihre Sprachelemente. In diesem Kapitel erfahren Sie, wie mithilfe von Verzweigungen, Schleifen und anderen Anweisungen Programme flexibel gestaltet werden können. Solche Sprachelemente lassen sich leider nicht mit dem Makrorekorder aufzeichnen und müssen selbst erstellt werden. Der richtige Einsatz der Sprachelemente in Verbindung mit dem entsprechenden Vokabular (der zur Verfügung stehenden Befehle) macht letztendlich die Kunst der Programmierung aus.

Bedingungen erstellen und üben


Bedingungen werden in Excel standardmäßig über die Anweisung If umgesetzt. Diese Anweisung kann bei Bedarf auch mehrfach geschachtelt werden. Des Weiteren haben wir eine zweite Möglichkeit, in Excel-VBA eine Abfrage zu erstellen. Diese Möglichkeit ist durch die Anweisung Select Case gegeben, über die Sie auf sehr übersichtliche Weise auch komplexere Bedingungen umsetzen können. Lernen Sie auf den folgenden Seiten Schritt für Schritt, wie Sie Bedingungen anwenden und erweitern können

Die Anweisungen If/Then/Else einsetzen

Sicher kennen Sie alle die Standardtabellenfunktion WENN. Genau diese Funktion gibt es auch als Sprachelement in VBA. Die Syntax entspricht dabei genau der Syntax der Tabellenfunktion. Die VBA-Funktion mit dem Namen If ist aber nicht an Limitationen gebunden und kann nahezu unendlich eingesetzt werden.

Die If-Anweisung ist in den meisten Fällen eine Prüffunktion, mit der Sie sicherstellen, ob beispielsweise eine Zelle einen gewünschten Wert enthält, ob ein Datentyp passt, ob eine Tabelle oder Datei existiert, ob eine Formatierung so weit korrekt ist oder vieles mehr.

Die Syntax der Funktion If lautet:

If Bedingung Then [Anweisung] [Else elseAnweisung]

Alternativ können Sie die Blocksyntax verwenden:

If Bedingung Then
  Anweisung


  Else


  elseAnweisung
End If

Für das Argument Bedingung geben Sie die Bedingung an, die erfüllt sein muss. Anweisung repräsentiert die Anweisungen direkt im Anschluss an Then, die ausgeführt werden, wenn die Bedingung zutrifft. elseAnweisung repräsentiert die Anweisungen, die ausgeführt werden, wenn die Bedingung nicht erfüllt ist.

Es ist nicht immer notwendig, für eine If-Anweisung einen Else-Zweig zu erfassen, wenn dieser nicht benötigt wird. Daher kann eine If-Anweisung auch nur aus einem Then-Zweig bestehen und mit End If abgeschlossen werden.

Bei der ersten Syntaxform brauchen Sie übrigens keinen Abschluss mit End If anzugeben, sofern der Befehl in eine Zeile passt. Das bedeutet aber auch, dass, sobald Sie einen Zeilenumbruch ohne Zeilenfortsetzungszeichen haben, das End If dringend benötigt wird, da der VBA-Editor sonst einen Fehler moniert.

Aufgrund der besseren Übersichtlichkeit sowie der später besseren Erweiterbarkeit empfehle ich Ihnen, die Blocksyntax standardmäßig zu verwenden. Dabei muss die If-Anweisung am Ende durch End If abgeschlossen werden.

Eine Löschrückfrage erstellen

Bei der ersten Aufgabe in diesem Kapitel wird eine Rückfrage programmiert, die am Bildschirm angezeigt werden soll, bevor ein bestimmter Bereich in einer Tabelle gelöscht wird. Dazu verwenden wir zum einen die Anweisung If und zum anderen die Funktion MsgBox, die Sie bereits im vorherigen Kapitel kennengelernt haben.

Erfassen Sie jetzt das Makro aus Listing 2.1.

Sub RückfrageVorLöschungEinholen()


  If MsgBox("Wollen Sie den Bereich A1:D10 löschen?", vbYesNo + _
  vbQuestion, "Löschenabfrage") = vbYes Then
     tbl_IF.Range("A1:D10").ClearContents
  End If


End Sub

Listing 2.1: Eine Löschrückfrage einholen.

Achten Sie darauf, dass die Anweisung If und das Schlüsselwort Then immer in einer Zeile erfasst werden. Nachdem Sie mit der ersten Zeile fertig sind, drücken Sie zweimal die Taste und schreiben dann sofort das End If.

Warum?

Weil das immer gern vergessen wird und später riesige Probleme bereitet, wenn Sie mehrere If-Then-Else-Verzweigungen haben und nicht mehr genau erkennen können, wo denn nun das End If hingehört.

Also behalten Sie als Kernregel bitte gleich Folgendes im Kopf: »Jede Struktur in Excel-VBA hat einen Beginn und ein Ende. Wenn Sie den Beginn erfassen, schreiben Sie immer sofort auch die End-Anweisung!«

Wird auf die Schaltfläche Ja geklickt, wird der Löschbefehl ausgeführt. Achten Sie dringend darauf, dass Sie beim Löschen den Tabellennamen des Bereichs mit angeben, den Sie löschen möchten. Die Methode ClearContents löscht alle Werte aus einem Bereich, behält die Formatierung jedoch bei.

Abbildung 2.1: Bei der Rückfrage ist die Schaltfläche Ja standardmäßig vorbelegt.

Um noch einmal auf der Referenzierung der Tabelle herumzureiten ...

tbl_IF.Range("A1:D10").ClearContents

kontra:

Range("A1:D10").ClearContents

Wird der Bezug zur Tabelle beim Löschen weggelassen, nimmt Excel automatisch an, dass die aktive Tabelle gemeint ist - ein gefährliches Missverständnis.

Eine Eingabeprüfung vornehmen

Bei der nächsten Aufgabenstellung soll der Anwender aufgefordert werden, eine Zahl zwischen 1 und 100 über eine InputBox einzugeben. Diese Eingabe schreiben Sie in die Tabelle tbl_IF in Zelle A1. Danach führen Sie eine Prüfung durch, die feststellt, ob die Zahl auch wirklich im vorgegebenen Wertebereich liegt.

InputBox haben Sie bereits im vorherigen Kapitel kennengelernt, nun erfolgt die praktische Anwendung im Makro aus Listing 2.2.

Sub EingabeEinerZahl()


  With tbl_IF
   .Range("A1").Value =
   InputBox("Erfassen Sie einen Wert zwischen 1 und 100!", "Eingabe", 100)


   If .Range("A1").Value >= 1 And .Range("A1").Value <= 100 Then
       MsgBox "Eingabe im geforderten Wertebereich!", vbInformation
     Else
       MsgBox "Eingabe nicht im geforderten Wertebereich!", vbCritical
   End If


  End With


End Sub

Listing 2.2: Bei der Prüfung müssen zwei Bedingungen erfüllt sein.

Gleich zu Beginn des Makros wird über die Anweisung With festgelegt, mit welcher Tabelle gearbeitet wird. Danach müssen gleich zwei Bedingungen erfüllt sein. Diese werden mit dem Operator And miteinander verknüpft. Ist die Bedingung erfüllt, wird der Then-Zweig angesteuert. In diesem Fall wird eine Meldung am Bildschirm ausgegeben, die die eingegebene Zahl bestätigt.

Im anderen Fall wird ebenso eine Meldung am Bildschirm ausgegeben. Beachten Sie bei beiden Meldungen die unterschiedliche Symbolkonstanten vbInformation und vbCritical.

Denken Sie bitte immer an die Einrückungen im Quellcode. Die If-Anweisung und die End If-Anweisung sollten links untereinander ausgerichtet sein. Nur so können Sie später auch größere Makros noch gut lesen und verstehen.

Abbildung 2.2: Beim Aufruf von InputBox wurde als Standardwert vorab der Wert 100 eingetragen.

Vor dem Rechnen den Datentyp prüfen

Im folgenden Beispiel werden Sie sehen, wie wichtig es sein kann, einen Zellenwert zu prüfen, bevor Sie beginnen, mit dem Wert zu rechnen. Stellen Sie sich vor, in einer Zelle steht keine Zahl, sondern ein Text! In dem Fall würde unser Versuch, zu rechnen, mit einem Laufzeitfehler quittiert.

Um diese Aufgabe lösen zu können, lernen Sie eine weitere immens wichtige VBA-Funktion kennen. Diese Funktion heißt IsNumeric. Mit ihrer Hilfe können Sie prüfen, ob es sich bei einem Wert um einen Text oder um eine Zahl handelt. Zu dieser Funktion ist eigentlich nur zu sagen, dass ihr ein Wert, beispielsweise aus einer Zelle, übergeben wird. Sie gibt uns dann entweder True oder False zurück. Nur wenn die Funktion die Rückgabe True liefert, dürfen wir mit dem Wert aus der Zelle rechnen.

Die Aufgabe lautet: »Prüfe, ob in Zelle A1 der Tabelle...

Dateiformat: EPUB
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie eine Lese-Software, die das Dateiformat EPUB verarbeiten kann: z.B. Adobe Digital Editions oder FBReader - beide kostenlos (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat EPUB ist sehr gut für Romane und Sachbücher geeignet - also für "fließenden" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein "weicher" Kopierschutz verwendet. Daher ist technisch zwar alles möglich - sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Dateiformat: PDF
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie zum Lesen die kostenlose Software Adobe Reader, Adobe Digital Editions oder einen anderen PDF-Viewer Ihrer Wahl (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie die kostenlose App Adobe Digital Editions oder eine andere Lese-App für E-Books (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nur bedingt: Kindle)

Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist. Mit Wasserzeichen-DRM wird hier ein "weicher" Kopierschutz verwendet. Daher ist technisch zwar alles möglich - sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Download (sofort verfügbar)

15,99 €
inkl. 19% MwSt.
Download / Einzel-Lizenz
ePUB mit Wasserzeichen-DRM
siehe Systemvoraussetzungen
PDF mit Wasserzeichen-DRM
siehe Systemvoraussetzungen
Hinweis: Die Auswahl des von Ihnen gewünschten Dateiformats und des Kopierschutzes erfolgt erst im System des E-Book Anbieters
E-Book bestellen

Unsere Web-Seiten verwenden Cookies. Mit der Nutzung des WebShops erklären Sie sich damit einverstanden. Mehr Informationen finden Sie in unserem Datenschutzhinweis. Ok