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.
  • Intro
  • Titel
  • Impressum
  • Inhalt
  • Einleitung
  • Wie dieses Buch aufgebaut ist
  • Download der Beispieldateien
  • Die Icons
  • Unterstützung für dieses Buch
  • Über den Autor
  • Kapitel 1: Die Entwicklungsumgebung von Excel
  • Excel für die Programmierung vorbereiten
  • Die Sicherheitsstufe heruntersetzen
  • Das Werkzeug Entwicklertools einblenden
  • Die Entwicklungsumgebung kennenlernen
  • Die Entwicklungsumgebung aufrufen
  • Der Projekt-Explorer
  • Das Eigenschaftenfenster
  • Das Codefenster
  • Das Direktfenster - die Testhilfe
  • Der Objektkatalog - das Nachschlagewerk
  • Der Makrorekorder - zu Beginn eine gute Hilfe
  • Die ersten Makros und deren Handhabung
  • Wert in eine Zelle einer Tabelle schreiben
  • Eine Meldung am Bildschirm ausgeben
  • Mehrzeilige Meldung am Bildschirm ausgeben
  • Eine Eingabe vom Anwender verlangen
  • Einen individuellen Tabellenkopf erstellen
  • Die wichtigsten Tastenkombinationen
  • Variablen und Konstanten
  • Variablen deklarieren
  • Konstanten einsetzen
  • Zusammenfassung
  • Die Lernkontrolle
  • Kapitel 2: Die wichtigsten Sprachelemente von Excel-VBA
  • Bedingungen erstellen und üben
  • Die Anweisungen If/Then/Else einsetzen
  • Die Anweisung Select Case einsetzen
  • Schleifen erstellen und verstehen
  • Die For...Next-Schleifen
  • Die For Each...Next-Schleifen
  • Die Schleife Do Until...Loop
  • Die Schleife Do While...Loop
  • Sonstige Sprachelemente
  • Die Struktur With
  • Zusammenfassung
  • Lernkontrolle
  • Kapitel 3: Das Objekt Range (Zellen und Bereiche programmieren)
  • Zellen und Bereiche formatieren
  • Zahlenformat und Schriftschnitt festlegen
  • Zellenfarbe und Schriftfarbe festlegen
  • Das Gitternetz und den Gesamtrahmen formatieren
  • Daten in Zellen konvertieren
  • Korrektur nach fehlerhaftem Datenimport
  • Unerwünschte führende und nachgestellte Leerzeichen entfernen
  • Bestimmte Zeichen in Zellen ersetzen/entfernen
  • Die Position des Minuszeichens umstellen
  • Verwendete Datumsformate vereinheitlichen
  • Daten in Zellen und Bereichen suchen
  • Suche nach exakter Übereinstimmung
  • Suche nach exakter Übereinstimmung (Schreibweise spielt keine Rolle)
  • Suche auch in Teilen der Zelle (Schreibweise spielt keine Rolle)
  • Daten anhand eines eindeutigen Schlüssels suchen
  • Bereiche Zelle für Zelle verarbeiten
  • Daten aus einem Bereich löschen
  • Extremwerte in einem Bereich ermitteln und kennzeichnen
  • Mehrere nicht zusammenhängende Bereiche verarbeiten
  • Zusammenfassung
  • Die Lernkontrolle
  • Kapitel 4: Das Objekt Worksheet (Tabellen programmieren)
  • Tabellen dokumentieren, filtern und durchsuchen
  • Tabelleninhaltsverzeichnis erstellen und verlinken
  • Tabellen durchsuchen und dokumentieren
  • Tabellen filtern mit einem Kriterium
  • Tabellen filtern mit mehreren Kriterien
  • Tabellen einrichten und schützen
  • Bildlaufbereiche für Tabellen festlegen
  • Bereiche in Tabellen sperren
  • Tabellenschutz für eine Tabelle einstellen und zurücksetzen
  • Alle Tabellen einer Mappe schützen
  • Tabellenblätter anlegen, drucken und exportieren
  • Tabellen anlegen und benennen
  • Eine Tabelle drucken
  • Alle sichtbaren Tabellen einer Mappe ausdrucken
  • Tabelle als PDF ausgeben
  • Eine Tabelle exportieren
  • Individuelle Kopf- und Fußzeilen erstellen
  • Tabellen verstecken oder löschen
  • Tabellen ein- und ausblenden
  • Alle Tabellen bis auf eine ausblenden
  • Tabellen löschen
  • Zusammenfassung
  • Die Lernkontrolle
  • Kapitel 5: Das Objekt Workbook (Arbeitsmappen programmieren)
  • Arbeitsmappen abarbeiten und schließen
  • Arbeitsmappe anlegen, verarbeiten, speichern und schließen
  • Dokumenteigenschaften abfragen und auswerten
  • Externe Verknüpfungen verarbeiten
  • Externe Verknüpfungen ermitteln
  • Verknüpfte Arbeitsmappen automatisch öffnen
  • Externe Verknüpfungen entfernen
  • Arbeitsmappe löschen
  • Sicherheitskopie einer Arbeitsmappe erstellen
  • Daten aus einer anderen Mappe synchronisieren
  • Zusammenfassung
  • Die Lernkontrolle
  • Kapitel 6: Standardfunktionen nutzen, eigene Funktionen schreiben
  • Die integrierten Tabellenfunktionen von Excel anzapfen
  • Einen Bereich summieren
  • Eine bedingte Summierung durchführen
  • Extremwerte ermitteln
  • Leere Tabellen aus einer Arbeitsmappe entfernen
  • Min- und Max-Wert in einem Bereich finden und einfärben
  • Leere Zeilen aus einer Tabelle entfernen
  • Eigene Funktionen schreiben
  • Der Aufbau einer Funktion
  • Aktuelle Arbeitsmappe ermitteln
  • Funktionen testen
  • Bestimmte Zeichen aus einer Zelle entfernen
  • Kalenderwoche nach DIN ermitteln
  • Die Existenz einer Tabelle prüfen
  • Die Existenz einer Datei prüfen
  • Die Existenz eines Verzeichnisses prüfen
  • Funktionen im Funktionsassistenten einsehen
  • Funktionen in eine andere Funktionskategorie hängen
  • Zusammenfassung
  • Die Lernkontrolle
  • Kapitel 7: Die Ereignisprogrammierung in Excel
  • Die Arbeitsmappenereignisse
  • Das Ereignis Workbook_Open
  • Das Ereignis Workbook_BeforeClose
  • Das Ereignis Workbook_BeforeSave
  • Das Ereignis Workbook_NewSheet
  • Das Ereignis WorkBook_BeforePrint
  • Die wichtigsten Ereignisse auf Arbeitsmappenebene
  • Die Tabellenereignisse
  • Das Ereignis Worksheet_Change
  • Das Ereignis Worksheet_SelectionChange
  • Das Ereignis Worksheet_BeforeDoubleClick
  • Die wichtigsten Tabellenereignisse im Überblick
  • Excel über Tastenkombinationen steuern
  • Formelzellen in Festwertzellen wandeln
  • Makros zeitgesteuert starten
  • Excel nach einer bestimmten Zeit beenden
  • Makro zu einer bestimmten Uhrzeit starten
  • Zusammenfassung
  • Die Lernkontrolle
  • Kapitel 8: Die Dialogprogrammierung mit Excel
  • UserForms einfügen, beschreiben und anzeigen
  • Die Eigenschaften einer UserForm festlegen
  • Die wichtigsten Steuerelemente
  • Das Steuerelement TextBox
  • Das Steuerelement ComboBox
  • Das Steuerelement ListBox
  • Das Steuerelement CheckBox
  • Das Steuerelement OptionButton
  • Das Steuerelement Image
  • Zusammenfassung
  • Die Lernkontrolle
  • Kapitel 9: Das Fehler-Handling
  • Die Laufzeitfehler von Excel
  • Typische Stolperfallen bei der Programmierung
  • Einen Laufzeitfehler abfangen
  • Laufzeitfehler bereits im Voraus verhindern
  • Zusammenfassung
  • Die Lernkontrolle
  • Kapitel 10: Fragen & Antworten
  • Kapitel 1
  • Kapitel 2
  • Kapitel 3
  • Kapitel 4
  • Kapitel 5
  • Kapitel 6
  • Kapitel 7
  • Kapitel 8
  • Kapitel 9
  • Index

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 dieser Web-Seiten erklären Sie sich damit einverstanden. Mehr Informationen finden Sie in unserem Datenschutzhinweis. Ok