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.
1 - Richtig einsteigen: Excel VBA-Programmierung [Seite 1]
2 - Impressum [Seite 4]
3 - Inhalt [Seite 5]
4 - Einleitung [Seite 9]
4.1 - Wie dieses Buch aufgebaut ist [Seite 9]
4.2 - Download der Beispieldateien [Seite 10]
4.3 - Die Icons [Seite 10]
4.4 - Unterstützung für dieses Buch [Seite 10]
4.5 - Über den Autor [Seite 11]
5 - Kapitel 1 - Die Entwicklungsumgebung von Excel [Seite 13]
5.1 - Excel für die Programmierung vorbereiten [Seite 13]
5.1.1 - Die Sicherheitsstufe heruntersetzen [Seite 13]
5.1.2 - Das Werkzeug Entwicklertools einblenden [Seite 14]
5.2 - Die Entwicklungsumgebung kennenlernen [Seite 16]
5.2.1 - Die Entwicklungsumgebung aufrufen [Seite 16]
5.2.2 - Der Projekt-Explorer [Seite 16]
5.2.3 - Das Eigenschaftenfenster [Seite 17]
5.2.3.1 - Tabellen ein- und ausblenden [Seite 18]
5.2.3.2 - Standardspaltenbreite festlegen [Seite 19]
5.2.3.3 - Die ScrollArea setzen [Seite 19]
5.2.3.4 - Den Namen einer Tabelle festlegen [Seite 20]
5.2.4 - Das Codefenster [Seite 22]
5.2.5 - Das Direktfenster - die Testhilfe [Seite 24]
5.2.5.1 - Angemeldeten Nutzer ermitteln [Seite 25]
5.2.5.2 - Tabelle ein- und ausblenden [Seite 26]
5.2.6 - Der Objektkatalog - das Nachschlagewerk [Seite 28]
5.2.7 - Der Makrorekorder - zu Beginn eine gute Hilfe [Seite 30]
5.2.7.1 - Bereich kopieren und eins zu eins einfügen [Seite 31]
5.2.7.2 - Bereich kopieren und nur Werte einfügen [Seite 33]
5.2.7.3 - Eine Kopfzeile einrichten [Seite 36]
5.2.7.4 - Einen Bereich einrahmen [Seite 38]
5.3 - Die ersten Makros und deren Handhabung [Seite 40]
5.3.1 - Wert in eine Zelle einer Tabelle schreiben [Seite 40]
5.3.1.1 - Variante 1: Das Ansprechen einer Tabelle über den Codenamen [Seite 40]
5.3.1.2 - Variante 2: Das Ansprechen einer Tabelle über den Registernamen [Seite 41]
5.3.1.3 - Variante 3: Das Ansprechen einer Tabelle über einen Index [Seite 42]
5.3.2 - Eine Meldung am Bildschirm ausgeben [Seite 44]
5.3.3 - Mehrzeilige Meldung am Bildschirm ausgeben [Seite 47]
5.3.4 - Eine Eingabe vom Anwender verlangen [Seite 47]
5.3.5 - Einen individuellen Tabellenkopf erstellen [Seite 48]
5.3.5.1 - Ein Makro im Einzelschrittmodus abarbeiten [Seite 51]
5.3.5.2 - Mit einem Haltepunkt arbeiten [Seite 53]
5.4 - Die wichtigsten Tastenkombinationen [Seite 54]
5.5 - Variablen und Konstanten [Seite 55]
5.5.1 - Variablen deklarieren [Seite 56]
5.5.1.1 - Regeln für Variablen [Seite 56]
5.5.1.2 - Die verfügbaren Datentypen [Seite 56]
5.5.1.3 - Eine Systemeinstellung temporär ändern und wieder zurücksetzen [Seite 57]
5.5.2 - Konstanten einsetzen [Seite 59]
5.5.2.1 - Einen alten DM-Wert in Euro umrechnen [Seite 59]
5.5.2.2 - Ein Verzeichnis prüfen und ein Unterverzeichnis anlegen [Seite 60]
5.6 - Zusammenfassung [Seite 61]
5.7 - Die Lernkontrolle [Seite 61]
6 - Kapitel 2 - Die wichtigsten Sprachelemente von Excel-VBA [Seite 63]
6.1 - Bedingungen erstellen und üben [Seite 63]
6.1.1 - Die Anweisungen If/Then/Else einsetzen [Seite 64]
6.1.1.1 - Eine Löschrückfrage erstellen [Seite 64]
6.1.1.2 - Eine Eingabeprüfung vornehmen [Seite 66]
6.1.1.3 - Vor dem Rechnen den Datentyp prüfen [Seite 67]
6.1.1.4 - Wert in eine Wertgruppe einordnen [Seite 68]
6.1.1.5 - Ein K.-o.-Kriterium formulieren [Seite 69]
6.1.1.6 - Prüfen, ob eine Datei existiert [Seite 70]
6.1.2 - Die Anweisung Select Case einsetzen [Seite 71]
6.1.2.1 - Excel-Version ermitteln [Seite 71]
6.1.2.2 - Zahlenwerte prüfen [Seite 72]
6.1.2.3 - Den Wochentag eines bestimmten Datums auslesen [Seite 73]
6.2 - Schleifen erstellen und verstehen [Seite 74]
6.2.1 - Die For...Next-Schleifen [Seite 75]
6.2.1.1 - Die Farbpalette von Excel auslesen [Seite 75]
6.2.1.2 - Der Rahmen für eine Verarbeitung von Zeilen von oben nach unten [Seite 77]
6.2.1.3 - Topwerte kennzeichnen [Seite 78]
6.2.1.4 - Wochenenden in einer Datumsreihe hervorheben [Seite 79]
6.2.1.5 - Duplikate ermitteln und hervorheben [Seite 81]
6.2.1.6 - Der Rahmen für eine Verarbeitung von Zeilen von unten nach oben [Seite 83]
6.2.1.7 - Bestimmte Zeilen aus einer Tabelle entfernen [Seite 85]
6.2.1.8 - Null-Artikel aus einer Tabelle entfernen [Seite 86]
6.2.1.9 - Der Rahmen für eine Verarbeitung von Spalten von links nach rechts [Seite 88]
6.2.1.10 - Wochenenden und Werktage kennzeichnen [Seite 89]
6.2.1.11 - Bestimmte Spalten in einer Tabelle ausblenden [Seite 90]
6.2.1.12 - Der Rahmen für eine Verarbeitung von Spalten von rechts nach links [Seite 91]
6.2.1.13 - Bestimmte Spalten einer Tabelle entfernen [Seite 91]
6.2.2 - Die For Each...Next-Schleifen [Seite 93]
6.2.2.1 - Alle Zellen in der Markierung nacheinander verarbeiten [Seite 94]
6.2.2.2 - Eine Preiserhöhung durchführen [Seite 94]
6.2.3 - Die Schleife Do Until...Loop [Seite 96]
6.2.3.1 - Textdatei Zeile für Zeile verarbeiten [Seite 96]
6.2.4 - Die Schleife Do While...Loop [Seite 98]
6.2.4.1 - Anzahl von Dateien eines Verzeichnisses ermitteln [Seite 98]
6.3 - Sonstige Sprachelemente [Seite 99]
6.3.1 - Die Struktur With [Seite 99]
6.3.1.1 - Eine Zelle formatieren [Seite 99]
6.3.1.2 - Eine Kopfzeile befüllen [Seite 100]
6.4 - Zusammenfassung [Seite 101]
6.5 - Lernkontrolle [Seite 101]
7 - Kapitel 3 - Das Objekt Range (Zellen und Bereiche programmieren) [Seite 103]
7.1 - Zellen und Bereiche formatieren [Seite 104]
7.1.1 - Zahlenformat und Schriftschnitt festlegen [Seite 105]
7.1.2 - Zellenfarbe und Schriftfarbe festlegen [Seite 106]
7.1.3 - Das Gitternetz und den Gesamtrahmen formatieren [Seite 108]
7.2 - Daten in Zellen konvertieren [Seite 110]
7.2.1 - Korrektur nach fehlerhaftem Datenimport [Seite 110]
7.2.2 - Unerwünschte führende und nachgestellte Leerzeichen entfernen [Seite 112]
7.2.3 - Bestimmte Zeichen in Zellen ersetzen/entfernen [Seite 114]
7.2.4 - Die Position des Minuszeichens umstellen [Seite 117]
7.2.5 - Verwendete Datumsformate vereinheitlichen [Seite 119]
7.3 - Daten in Zellen und Bereichen suchen [Seite 121]
7.3.1 - Suche nach exakter Übereinstimmung [Seite 121]
7.3.2 - Suche nach exakter Übereinstimmung (Schreibweise spielt keine Rolle) [Seite 123]
7.3.3 - Suche auch in Teilen der Zelle (Schreibweise spielt keine Rolle) [Seite 124]
7.3.4 - Daten anhand eines eindeutigen Schlüssels suchen [Seite 125]
7.4 - Bereiche Zelle für Zelle verarbeiten [Seite 128]
7.4.1 - Daten aus einem Bereich löschen [Seite 128]
7.4.2 - Extremwerte in einem Bereich ermitteln und kennzeichnen [Seite 129]
7.4.3 - Mehrere nicht zusammenhängende Bereiche verarbeiten [Seite 132]
7.5 - Zusammenfassung [Seite 133]
7.6 - Die Lernkontrolle [Seite 134]
8 - Kapitel 4 - Das Objekt Worksheet (Tabellen programmieren) [Seite 135]
8.1 - Tabellen dokumentieren, filtern und durchsuchen [Seite 136]
8.1.1 - Tabelleninhaltsverzeichnis erstellen und verlinken [Seite 137]
8.1.2 - Tabellen durchsuchen und dokumentieren [Seite 138]
8.1.3 - Tabellen filtern mit einem Kriterium [Seite 139]
8.1.4 - Tabellen filtern mit mehreren Kriterien [Seite 141]
8.2 - Tabellen einrichten und schützen [Seite 142]
8.2.1 - Bildlaufbereiche für Tabellen festlegen [Seite 142]
8.2.2 - Bereiche in Tabellen sperren [Seite 143]
8.2.3 - Tabellenschutz für eine Tabelle einstellen und zurücksetzen [Seite 144]
8.2.4 - Alle Tabellen einer Mappe schützen [Seite 145]
8.3 - Tabellenblätter anlegen, drucken und exportieren [Seite 147]
8.3.1 - Tabellen anlegen und benennen [Seite 147]
8.3.2 - Eine Tabelle drucken [Seite 149]
8.3.3 - Alle sichtbaren Tabellen einer Mappe ausdrucken [Seite 149]
8.3.4 - Tabelle als PDF ausgeben [Seite 150]
8.3.5 - Eine Tabelle exportieren [Seite 150]
8.3.6 - Individuelle Kopf- und Fußzeilen erstellen [Seite 151]
8.4 - Tabellen verstecken oder löschen [Seite 153]
8.4.1 - Tabellen ein- und ausblenden [Seite 153]
8.4.2 - Alle Tabellen bis auf eine ausblenden [Seite 153]
8.4.3 - Tabellen löschen [Seite 155]
8.5 - Zusammenfassung [Seite 156]
8.6 - Die Lernkontrolle [Seite 156]
9 - Kapitel 5 - Das Objekt Workbook (Arbeitsmappen programmieren) [Seite 157]
9.1 - Arbeitsmappen abarbeiten und schließen [Seite 158]
9.2 - Arbeitsmappe anlegen, verarbeiten, speichern und schließen [Seite 159]
9.3 - Dokumenteigenschaften abfragen und auswerten [Seite 161]
9.4 - Externe Verknüpfungen verarbeiten [Seite 163]
9.4.1 - Externe Verknüpfungen ermitteln [Seite 163]
9.4.2 - Verknüpfte Arbeitsmappen automatisch öffnen [Seite 165]
9.4.3 - Externe Verknüpfungen entfernen [Seite 166]
9.5 - Arbeitsmappe löschen [Seite 167]
9.6 - Sicherheitskopie einer Arbeitsmappe erstellen [Seite 167]
9.7 - Daten aus einer anderen Mappe synchronisieren [Seite 168]
9.8 - Zusammenfassung [Seite 172]
9.9 - Die Lernkontrolle [Seite 172]
10 - Kapitel 6 - Standardfunktionen nutzen, eigene Funktionen schreiben [Seite 173]
10.1 - Die integrierten Tabellenfunktionen von Excel anzapfen [Seite 174]
10.1.1 - Einen Bereich summieren [Seite 175]
10.1.2 - Eine bedingte Summierung durchführen [Seite 176]
10.1.3 - Extremwerte ermitteln [Seite 177]
10.1.4 - Leere Tabellen aus einer Arbeitsmappe entfernen [Seite 178]
10.1.5 - Min- und Max-Wert in einem Bereich finden und einfärben [Seite 179]
10.1.6 - Leere Zeilen aus einer Tabelle entfernen [Seite 181]
10.2 - Eigene Funktionen schreiben [Seite 182]
10.2.1 - Der Aufbau einer Funktion [Seite 182]
10.2.2 - Aktuelle Arbeitsmappe ermitteln [Seite 183]
10.2.3 - Funktionen testen [Seite 184]
10.2.4 - Bestimmte Zeichen aus einer Zelle entfernen [Seite 185]
10.2.5 - Kalenderwoche nach DIN ermitteln [Seite 188]
10.2.6 - Die Existenz einer Tabelle prüfen [Seite 188]
10.2.7 - Die Existenz einer Datei prüfen [Seite 189]
10.2.8 - Die Existenz eines Verzeichnisses prüfen [Seite 190]
10.2.9 - Funktionen im Funktionsassistenten einsehen [Seite 190]
10.2.10 - Funktionen in eine andere Funktionskategorie hängen [Seite 191]
10.3 - Zusammenfassung [Seite 193]
10.4 - Die Lernkontrolle [Seite 193]
11 - Kapitel 7 - Die Ereignisprogrammierung in Excel [Seite 195]
11.1 - Die Arbeitsmappenereignisse [Seite 196]
11.1.1 - Das Ereignis Workbook_Open [Seite 196]
11.1.2 - Das Ereignis Workbook_BeforeClose [Seite 197]
11.1.3 - Das Ereignis Workbook_BeforeSave [Seite 198]
11.1.4 - Das Ereignis Workbook_NewSheet [Seite 199]
11.1.5 - Das Ereignis WorkBook_BeforePrint [Seite 200]
11.1.6 - Die wichtigsten Ereignisse auf Arbeitsmappenebene [Seite 201]
11.2 - Die Tabellenereignisse [Seite 201]
11.2.1 - Das Ereignis Worksheet_Change [Seite 202]
11.2.1.1 - Alle Zellen einer Tabelle überwachen [Seite 202]
11.2.1.2 - Einige Zellen in einer Tabelle überwachen [Seite 203]
11.2.1.3 - Einen Bereich in einer Tabelle überwachen [Seite 204]
11.2.1.4 - Doppelte Nummern bereits bei der Eingabe erkennen können [Seite 205]
11.2.1.5 - Automatisch die Mehrwertsteuer berechnen - ganz ohne Formeln [Seite 206]
11.2.1.6 - Änderungen in einem bestimmten Bereich in einer Textdatei festhalten [Seite 207]
11.2.2 - Das Ereignis Worksheet_SelectionChange [Seite 208]
11.2.2.1 - Zugang zu einem bestimmten Bereich gewähren [Seite 208]
11.2.2.2 - Eine Mehrfachauswahl von Zellen verhindern [Seite 209]
11.2.3 - Das Ereignis Worksheet_BeforeDoubleClick [Seite 210]
11.2.3.1 - Eine Zelle per Doppelklick automatisch hochzählen [Seite 210]
11.2.3.2 - Automatische Sortierung bei Doppelklick ausführen [Seite 211]
11.2.3.3 - Per Doppelklick eine Zelle mit einem Kreuz versehen [Seite 213]
11.2.4 - Die wichtigsten Tabellenereignisse im Überblick [Seite 214]
11.3 - Excel über Tastenkombinationen steuern [Seite 214]
11.3.1 - Formelzellen in Festwertzellen wandeln [Seite 214]
11.4 - Makros zeitgesteuert starten [Seite 217]
11.4.1 - Excel nach einer bestimmten Zeit beenden [Seite 217]
11.4.2 - Makro zu einer bestimmten Uhrzeit starten [Seite 218]
11.5 - Zusammenfassung [Seite 219]
11.6 - Die Lernkontrolle [Seite 219]
12 - Kapitel 8 - Die Dialogprogrammierung mit Excel [Seite 221]
12.1 - UserForms einfügen, beschreiben und anzeigen [Seite 222]
12.1.1 - Die Eigenschaften einer UserForm festlegen [Seite 222]
12.1.1.1 - Einen variablen Titel als Überschrift für die UserForm festlegen [Seite 223]
12.1.1.2 - Sonstige Einstellungen für eine UserForm vornehmen [Seite 224]
12.1.1.3 - Eine UserForm aufrufen [Seite 225]
12.2 - Die wichtigsten Steuerelemente [Seite 225]
12.2.1 - Das Steuerelement TextBox [Seite 227]
12.2.1.1 - Daten über Textfelder erfassen und in eine Tabelle schreiben [Seite 227]
12.2.1.2 - Eingaben in Textfelder prüfen [Seite 231]
12.2.1.3 - Ein Dialogfeld für eine Passworteingabe aufrufen und auswerten [Seite 234]
12.2.2 - Das Steuerelement ComboBox [Seite 238]
12.2.2.1 - Ein Kombinationsfeld mit Werten füllen [Seite 238]
12.2.2.2 - Zwei voneinander abhängige Kombinationsfelder programmieren [Seite 242]
12.2.3 - Das Steuerelement ListBox [Seite 245]
12.2.3.1 - Ein Listenfeld mit Werten füllen [Seite 245]
12.2.3.2 - Eine mehrspaltige ListBox programmieren [Seite 248]
12.2.4 - Das Steuerelement CheckBox [Seite 251]
12.2.4.1 - Kontrollkästchen schnell aktivieren bzw. deaktivieren [Seite 251]
12.2.5 - Das Steuerelement OptionButton [Seite 255]
12.2.5.1 - Einen Multiple-Choice-Test mit Optionsschaltflächen durchführen [Seite 255]
12.2.6 - Das Steuerelement Image [Seite 259]
12.2.6.1 - Ein Bild per Klick in eine UserForm laden [Seite 259]
12.2.6.2 - Ein Bild aus einer UserForm in eine Tabelle exportieren [Seite 262]
12.2.6.3 - Ein Kombinationsfeld mit einem Bildsteuerelement kombinieren [Seite 263]
12.3 - Zusammenfassung [Seite 267]
12.4 - Die Lernkontrolle [Seite 267]
13 - Kapitel 9 - Das Fehler-Handling [Seite 269]
13.1 - Die Laufzeitfehler von Excel [Seite 270]
13.2 - Typische Stolperfallen bei der Programmierung [Seite 270]
13.2.1 - Einen Laufzeitfehler abfangen [Seite 271]
13.2.2 - Laufzeitfehler bereits im Voraus verhindern [Seite 273]
13.2.2.1 - Tabelle einfügen und benennen [Seite 273]
13.2.2.2 - Alle Zellen mit Formeln markieren [Seite 274]
13.2.2.3 - Bestimmte Zellen automatisch einfärben [Seite 276]
13.2.2.4 - Laufzeitfehler in UserForms abfangen [Seite 278]
13.3 - Zusammenfassung [Seite 280]
13.4 - Die Lernkontrolle [Seite 280]
14 - Kapitel 10 - Fragen & Antworten [Seite 281]
14.1 - Kapitel 1 [Seite 281]
14.2 - Kapitel 2 [Seite 283]
14.3 - Kapitel 3 [Seite 283]
14.4 - Kapitel 4 [Seite 284]
14.5 - Kapitel 5 [Seite 285]
14.6 - Kapitel 6 [Seite 285]
14.7 - Kapitel 7 [Seite 286]
14.8 - Kapitel 8 [Seite 286]
14.9 - Kapitel 9 [Seite 287]
15 - Index [Seite 289]
15.1 - A [Seite 289]
15.2 - B [Seite 289]
15.3 - C [Seite 289]
15.4 - D [Seite 289]
15.5 - E [Seite 290]
15.6 - F [Seite 290]
15.7 - G [Seite 291]
15.8 - H [Seite 291]
15.9 - I [Seite 291]
15.10 - K [Seite 291]
15.11 - L [Seite 291]
15.12 - M [Seite 292]
15.13 - N [Seite 292]
15.14 - O [Seite 292]
15.15 - P [Seite 292]
15.16 - Q [Seite 292]
15.17 - R [Seite 292]
15.18 - S [Seite 292]
15.19 - T [Seite 293]
15.20 - U [Seite 293]
15.21 - V [Seite 293]
15.22 - W [Seite 294]
15.23 - Z [Seite 294]
16 - www.oreilly.de [Seite 0]

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