Um noch mehr aus Excel herauszuholen, sind Kenntnisse der VBA-Programmierung von großem Vorteil: Dann können Sie Excel auf Ihre Bedürfnisse zuschneiden und langweilige Routinearbeiten automatisieren. Dieses Buch zeigt Ihnen zunächst den Umgang mit dem VBA-Editor und gibt einen Einblick in die wichtigsten Programmiertechniken, wie Sie Fehler beseitigen, Range-Objekte einsetzen und den Programmfluss steuern. Lernen Sie dann die vielfältigen Programmiermöglichkeiten kennen. Alle Beispielprogramme und Arbeitsblätter stehen zum Download zur Verfügung. Sie werden staunen: Mit VBA können Sie sich selbst Dialogboxen, Werkzeugleisten und Menüs schneidern. Und das schon nach kurzer Zeit!
ACHTUNG! Nicht geeignet für Kinder unter 36 Monaten. Erstickungsgefahr durch verschluckbare Kleinteile.
Michael Alexander ist Microsoft Certified Application Developer und hat mehrere Bücher zu Access und Excel geschrieben.
Dick Kusleika hilft Anwendern seit mehr als 25 Jahren in Online-Foren, Blogs, Büchern und auf Konferenzen, das Beste aus den Microsoft-Office-Produkten herauszuholen.
Über den Autor 9
Einführung25
Über dieses Buch 25
Konventionen in diesem Buch 26
Makrosicherheit 27
Törichte Annahmen über die Leser 28
Symbole, die in diesem Buch verwendet werden 29
Wie es weitergeht 29
Teil I: Excel VBA die ersten Schritte31
Kapitel 1 VBA kennenlernen33
Die VBA-Grundlagen verstehen 33
Wissen, was mit VBA möglich ist 34
Text einfügen 35
Eine häufig ausgeführte Aufgabe automatisieren 35
Automatisierung wiederholter Operationen 35
Einen benutzerdefinierten Befehl anlegen 35
Eine benutzerdefinierte Schaltfläche erstellen 36
Neue Funktionen für die Arbeitsmappe entwickeln 36
Benutzerdefinierte Add-Ins für Excel erstellen 36
Das meiste aus VBA herausholen 36
Wissen, was VBA am besten kann 36
Erkennen, welche Nachteile die Verwendung von VBA mit sich bringt 37
VBA-Konzepte verstehen 38
Sicherstellen der Excel-Kompatibilität 40
Kapitel 2 Einfache Makros erstellen41
Die Registerkarte »Entwicklertools« anzeigen 41
Ein Makro erstellen 42
Die Umgebung vorbereiten 42
Ein Makro aufzeichnen 43
Das Makro ausführen 45
Ein Makro im Visual Basic-Editor anzeigen 46
Das Makro abändern 48
Arbeitsmappen speichern, die Makros enthalten 49
Makro-Sicherheit verstehen 50
Teil II: Die Zusammenarbeit von VBA und Excel53
Kapitel 3 Der Visual Basic-Editor55
Den Visual Basic-Editor kennenlernen 55
Den VBE aktivieren 55
VBE-Komponenten erforschen 56
Arbeiten im Projekt-Explorer 58
Ein neues VBA-Modul hinzufügen 59
Arbeiten im Codebereich 60
Fenster minimieren und maximieren 60
Die Bestandteile eines Moduls erkunden 61
VBA-Code in ein Modul einfügen 61
Code direkt eingeben 62
Verwendung des Makro-Rekorders 65
VBA-Code kopieren 67
Anpassung des VBE 68
Die Registerkarte »Editor« 68
Die Registerkarte »Editorformat« 70
Die Registerkarte »Allgemein« 71
Die Registerkarte »Verankern« 72
Kapitel 4 Einführung in das Excel-Objektmodell73
Arbeiten mit dem Excel-Objektmodell 73
Die Objekthierarchie verstehen 74
Auf Objekte verweisen 75
In Objekteigenschaften und Methoden eintauchen 78
Objekteigenschaften festlegen 80
Mit Objektmethoden Aktionen unternehmen 81
Objekte reagieren auf Ereignisse 83
VBA-Ressourcen zu weiterführenden Informationen 83
Das VBA-Hilfesystem verwenden 83
Den Objektkatalog verwenden 84
Automatische Auflistung von Eigenschaften und Methoden 85
Kapitel 5 Sub-und Funktionsprozeduren in VBA87
Sub-Prozeduren im Vergleich zu Funktionsprozeduren 87
Einen Blick auf Sub-Prozeduren werfen 88
Einen Blick auf Funktionsprozeduren werfen 88
Namen für Sub-Prozeduren und Funktionsprozeduren 89
Sub-Prozeduren ausführen 90
Die Sub-Prozedur direkt ausführen 92
Die Prozedur vom Dialogfeld Makro aus ausführen 92
Ein Makro mithilfe einer Tastenkombination ausführen 93
Die Prozedur über eine Schaltfläche oder eine Form ausführen 94
Die Prozedur von einer anderen Prozedur aus ausführen 96
Die Prozedur vom Direktfenster aus ausführen 97
Funktionsprozeduren ausführen 97
Die Funktionsprozedur aus einer Sub-Prozedur aufrufen 98
Aufruf der Funktion im Direktfenster 98
Aufruf einer Funktion von einer Formel in einer Tabelle aus 99
Kapitel 6 Mit dem Makro-Rekorder arbeiten103
Grundlagen der Aufzeichnung 103
Vorbereitung auf die Aufzeichnung 105
Zwischen relativem und absolutem Modus wählen 105
Aufzeichnung im absoluten Modus 106
Aufzeichnung im relativen Modus 107
Dem Makro-Rekorder bei der Arbeit zusehen 109
Aufzeichnungsoptionen für Ihr Makro angeben 110
Code aufräumen, den der Makro-Rekorder aufgezeichnet hat 112
Teil III: Programmierkonzepte115
Kapitel 7 Wichtige Elemente der Sprache VBA 117
Kommentare in Ihrem VBA-Code 117
Variablen, Konstanten und Datentypen 119
Variablen verstehen 119
Was sind die Datentypen in VBA? 121
Variablen deklarieren und ihnen einen Gültigkeitsbereich zuweisen 122
Mit Konstanten arbeiten 127
Vorgefertigte Konstanten verwenden 128
Mit Zeichenfolgen arbeiten 129
Mit Datumswerten arbeiten 130
Zuweisungsbefehle verwenden 131
Beispiele für den Zuweisungsbefehl 131
Das Gleichheitszeichen 132
Hilfreiche Operatoren 132
Arrays 133
Arrays deklarieren 134
Mehrdimensionale Arrays 134
Dynamische Arrays 135
Die Verwendung von Zeilenmarken (Labels) 136
Kapitel 8 Mit Range-Objekten arbeiten137
Auf »Range«-Objekte verweisen 137
Auf einen Bereich mithilfe von Eigenschaften verweisen 139
Die »Cells«-Eigenschaft 139
Die »Offset«-Eigenschaft 140
Die »Resize«-Eigenschaft 141
Mit Eigenschaften des »Range«-Objekts arbeiten 141
Die »Value«-Eigenschaft 142
Die »Text«-Eigenschaft 143
Die »Count«-Eigenschaft 143
Die »Column«-und die »Row«-Eigenschaft 143
Die »Address«-Eigenschaft 144
Die »HasFormula«-Eigenschaft 144
Die »Font«-Eigenschaft 145
Die »Interior«-Eigenschaft 146
Die »Formula«-Eigenschaft 147
Die »NumberFormat«-Eigenschaft 148
Aktionen mit Methoden des »Range«-Objekts unternehmen 148
Die »Select«-Methode 149
Die Methoden »Copy« und »Paste« 149
Die »Clear«-Methode 150
Die »Delete«-Methode 150
Kapitel 9 VBA-und Arbeitsblattfunktionen151
Funktionen verstehen 151
Eingebaute VBA-Funktionen verwenden 152
Arbeiten mit Datum und Uhrzeit 152
Arbeiten mit Zeichenfolgen 154
Objekte und Daten identifizieren 155
VBA-Funktionen, die mehr tun, als einen Wert zurückzugeben 156
VBA-Funktionen finden 156
Arbeitsblattfunktionen in VBA verwenden 159
Beispiele für Arbeitsblattfunktionen 160
Eingabe von Arbeitsblattfunktionen 162
Weitere Informationen über die Verwendung von Arbeitsblattfunktionen 163
Benutzerdefinierte Funktionen verwenden 164
Kapitel 10 Steuerung des Programmablaufs und Entscheidungen165
Schwimmen mit dem Strom 165
Die »GoTo«-Anweisung 166
Entscheidungen, Entscheidungen! 168
Die »If-Then «-Struktur 168
Die »Select Case«-Struktur 172
Ihr Code für eine Schleife 175
»For-Next «-Schleifen 175
»Do While«-Schleifen 180
»Do Until«-Schleifen 181
»For Each-Next «-Schleifen für Collections ausführen 181
Kapitel 11 Automatische Prozeduren und Ereignisse185
Vorbereitung auf das große Ereignis 185
Lernen, wann Sie Ereignisprozeduren einsetzen 187
Programmierung von Prozeduren zur Ereignisverarbeitung 188
Wissen, wo man den Ereigniscode einfügt 188
Eine Prozedur zur Ereignisverarbeitung schreiben 189
»Workbook«-Ereignisse auslösen 190
Das »Open«-Ereignis für eine Arbeitsmappe 191
Das »BeforeClose«-Ereignis für eine Arbeitsmappe 193
Das »BeforeSave«-Ereignis für eine Arbeitsmappe 194
Aktivierungsereignisse verwenden 195
Aktivierungs-und Deaktivierungsereignisse in einem Arbeitsblatt 195
Aktivierungs-und Deaktivierungsereignisse in einer Arbeitsmappe 196
Arbeitsmappen-Aktivierungsereignisse 197
Programmierung von Arbeitsblattereignissen 198
Das »BeforeDoubleClick«-Ereignis 198
Das »BeforeRightClick«-Ereignis 198
Das »Change«-Ereignis 199
Ereignisse verstehen, die keinen Objekten zugeordnet sind 201
Das »OnTime«-Ereignis 201
Tastenaktionen 203
Kapitel 12 Techniken zur Fehlerverarbeitung205
Fehlertypen 205
Ein fehlerhaftes Beispielmakro 206
Nicht ganz perfekte Makros 207
Das Makro noch perfekter machen 208
Verabschieden Sie sich von der Perfektion! 209
Alternative Wege der Fehlerverarbeitung 210
Noch einmal die Prozedur »EnterSquareRoot« 210
Fehler mit der »On-Error «-Anweisung abfangen 211
Fehlerverarbeitung: die Details 212
Fortsetzung nach einem Fehler 212
Fehlerverarbeitung im Überblick 214
Ein beabsichtigter Fehler 214
Kapitel 13 Techniken, mit denen Sie Fehler loswerden217
Verschiedene Fehlerarten 217
Programmierfehler identifizieren 219
Debugging-Techniken 220
Ihren Code überprüfen 220
Die »MsgBox«-Funktion verwenden 220
»Debug.Print«-Anweisungen einfügen 222
Verwendung des VBA-Debuggers 222
Debugging-Tools verwenden 223
Haltepunkte in Ihrem Code setzen 223
Das Überwachungsfenster verwenden 226
Das Lokal-Fenster 228
Tipps, wie Sie weniger Programmierfehler machen 229
Kapitel 14 VBA-Programmierbeispiele231
Mit Bereichen arbeiten 231
Einen Bereich kopieren 232
Einen variablen Bereich kopieren 233
Auswahl bis zum Ende einer Zeile oder Spalte 235
Eine Zeile oder Spalte auswählen 236
Einen Bereich verschieben 236
Einen Bereich effizient durchlaufen 236
Einen Bereich effizient durchlaufen (Teil II) 238
Einen Zellwert anfordern 239
Den Auswahltyp bestimmen 240
Eine Mehrfachauswahl erkennen 240
Excel-Einstellungen abändern 241
Boolesche Einstellungen ändern 241
Nicht-boolesche Einstellungen ändern 242
Diagramme 242
»AddChart« im Vergleich zu »AddChart2« 243
Den Diagrammtyp ändern 245
Die »ChartObjects«-Collection durchlaufen 245
Diagrammeigenschaften ändern 246
Diagrammformatierungen anwenden 246
VBA-Geschwindigkeitstipps 248
Die Bildschirmaktualisierung abschalten 248
Die automatische Berechnung ausschalten 249
Lästige Warnungen deaktivieren 249
Objektreferenzen vereinfachen 251
Variablentypen deklarieren 251
Die »With-End With«-Struktur 252
Kapitel 15 Einfache Dialogfelder253
In VBA mit dem Benutzer interagieren 253
Meldungen mit der »MsgBox«-Funktion anzeigen 254
Ein einfaches Meldungsfeld anzeigen 255
Eine Antwort aus einem Meldungsfeld erhalten 256
Meldungsfelder anpassen 257
Daten mit der Funktion »InputBox« abfragen 260
Die Syntax von »InputBox« verstehen 260
Die Funktion »InputBox« verwenden 260
Die Methode »InputBox« verwenden 262
Den Benutzer eine Datei oder einen Ordner auswählen lassen 263
Eine »GetOpenFilename«-Anweisung erstellen 264
Eine Datei mit »GetOpenFilename« auswählen 264
Pfad und Dateinamen mit »GetSaveAsFilename« ermitteln 266
Einen Ordnernamen ermitteln 267
Eingebaute Excel-Dialogfelder anzeigen 267
Teil IV: Kommunikation mit Ihren Benutzern271
Kapitel 16 UserForm-Grundlagen273
Erkennen, wann man ein UserForm braucht 273
UserForms erstellen: ein Überblick 275
Mit UserForms arbeiten 276
Ein neues UserForm einfügen 276
Einem UserForm Steuerelemente hinzufügen 277
Die Eigenschaften eines UserForm-Steuerelements ändern 277
Den Codebereich für ein UserForm anzeigen 279
Ein UserForm anzeigen 279
Informationen aus einem UserForm verarbeiten 280
Ein UserForm-Beispiel 280
Das UserForm erstellen 281
Die Befehlsschaltflächen hinzufügen 281
Optionsfelder einfügen 283
Prozeduren zur Ereignisverarbeitung einfügen 284
Ein Makro anlegen, das das Dialogfeld anzeigt 286
Das Makro für den Benutzer bereitstellen 286
Das Makro testen 288
Kapitel 17 UserForm-Steuerelemente verwenden291
Steuerelemente im Dialogfeld die ersten Schritte 291
Steuerelemente hinzufügen 292
Eigenschaften von Steuerelementen Grundlagen 293
Details zu den Steuerelementen in einem Dialogfeld kennenlernen 295
Das »CheckBox«-Steuerelement Kontrollkästchen 296
Das »ComboBox«-Steuerelement Kombinationsfeld 296
Das »CommandButton«-Steuerelement Befehlsschaltfläche 297
Das »Frame«-Steuerelement Rahmen 298
Das »Image«-Steuerelement (Bildfeld) 298
Das »Label«-Steuerelement (Bezeichnungsfeld) 299
Das »ListBox«-Steuerelement (Listenfeld) 300
Das »MultiPage«-Steuerelement Multiseiten 301
Das »OptionButton«-Steuerelement Optionsfelder 302
Das »RefEdit«-Steuerelement 302
Das »ScrollBar«-Steuerelement Bildlaufleiste 303
Das »SpinButton«-Steuerelement Drehfeld 304
Das »TabStrip«-Steuerelement Register 305
Das »TextBox«-Steuerelement Textfeld 305
Das »ToggleButton«-Steuerelement Umschaltfeld 306
Die Arbeit mit Steuerelementen in Dialogfeldern 306
Steuerelemente verschieben und ihre Größe ändern 307
Steuerelemente ausrichten und Abstände einhalten 307
Tastaturbenutzern helfen 308
Ein UserForm testen 310
Dialogfeld-Ästhetik 310
Kapitel 18 UserForms Techniken und Tricks 311
Dialogfelder verwenden 311
Ein UserForm-Beispiel 312
Das Dialogfeld erstellen 312
Code für die Anzeige des Dialogfelds 315
Das Makro bereitstellen 315
Ihr Dialogfeld ausprobieren 316
Prozeduren zur Ereignisverarbeitung einfügen 316
Die Daten auswerten 318
Jetzt funktioniert das Dialogfeld 319
Beispiel für ein Listenfeld-Steuerelement 319
Ein Listenfeld füllen 320
Das ausgewählte Element bestimmen 321
Mehrfachauswahlen bestimmen 322
Einen Bereich auswählen 323
Mehrere Gruppen von Optionsfeldern verwenden 325
Ein Drehfeld und ein Textfeld verwenden 326
Ein UserForm als Fortschrittsanzeige verwenden 328
Ein Dialogfeld als Fortschrittsanzeige einrichten 329
Die Prozeduren 330
Wie dieses Beispiel funktioniert 331
Ein nicht modales Dialogfeld mit Registerkarten erstellen 332
Ein Diagramm in einem UserForm anzeigen 334
Eine Checkliste für Dialogfelder 335
Kapitel 19 Zugriff auf Ihre Makros über die Benutzeroberfläche 337
Das Menüband anpassen 337
Das Menüband manuell anpassen 338
Dem Menüband ein Makro hinzufügen 340
Anpassung des Menübands mit XML 340
Die Excel-Benutzeroberfläche mit VBA anpassen 345
Befehle zur Registerkarte »Add-Ins « des Menübands hinzufügen 346
Dem Kontextmenü »Cell« einen neuen Eintrag hinzufügen 347
Anpassungen automatisch hinzufügen 349
Kontextmenüs und das Single Document Interface verstehen 349
Teil V: Das große Ganze351
Kapitel 20 Arbeitsblattfunktionen erstellen353
Vereinfachen Sie mit benutzerdefinierten Funktionen Ihre Arbeit 353
Grundlagen der VBA-Funktionen 354
Funktionen schreiben 355
Mit Funktionsargumenten arbeiten 356
Eine Funktion ohne Argumente 356
Eine Funktion mit einem Argument 357
Eine Funktion mit zwei Argumenten 359
Eine Funktion mit einem Bereichsargument 360
Eine Funktion mit einem optionalen Argument 362
Wrapper-Funktionen 364
Die »NumberFormat«-Funktion 364
Die »ExtractElement«-Funktion 364
Die »SayIt«-Funktion 365
Die »IsLike«-Funktion 366
Funktionen, die ein Array zurückgeben 366
Ein Array mit Monatsnamen zurückgeben 366
Eine sortierte Liste zurückgeben 367
Das Dialogfeld »Funktion einfügen« verwenden 369
Die Funktionsbeschreibung anzeigen 369
Argumentbeschreibungen 371
Kapitel 21 Add-Ins in Excel erstellen373
Was ist ein Add-In? 373
Gründe für die Erstellung von Add-Ins 374
Die Arbeit mit Add-Ins 375
Add-In-Grundlagen 376
Sehen Sie sich ein Beispiel für ein Add-In an 377
Einrichtung der Arbeitsmappe 377
Die Arbeitsmappe testen 379
Beschreibende Informationen hinzufügen 380
Den VBA-Code schützen 381
Das Add-In anlegen 381
Das Add-In öffnen 382
Das Add-In weitergeben 383
Das Add-In ändern 383
Teil VI: Der Top-Ten-Teil385
Kapitel 22 Zehn nützliche Tipps für den Visual Basic-Editor387
Kommentarblöcke verwenden 387
Mehrere Codezeilen kopieren 389
Zwischen Modulen und Prozeduren springen 389
Beamen Sie sich zu Ihren Funktionen 389
In der richtigen Prozedur bleiben 390
Den Code schrittweise ausführen 391
Zu einer bestimmten Codezeile springen 392
Die Codeausführung an einer bestimmten Stelle unterbrechen 392
Den Anfang und das Ende des Variablenwerts anzeigen 393
Die automatische Syntaxüberprüfung ausschalten 394
Kapitel 23 Ressourcen mit Hilfe zu VBA397
Lassen Sie Excel die Makros für Sie schreiben 397
Nutzen Sie das Hilfesystem 398
Stibitzen Sie Code im Internet 398
Userforen optimal nutzen 399
Besuchen Sie Experten-Blogs 400
Suchen Sie auf YouTube nach Schulungsvideos 400
Nehmen Sie an Onlinekursen teil 401
Vom Office Dev Center lernen 401
Analysieren Sie andere Excel-Dateien in Ihrem Unternehmen 401
Fragen Sie die Excel-Experten vor Ort 402
Kapitel 24 Zehn Dinge, die Sie beherzigen oder vermeiden sollten403
Deklarieren Sie alle Variablen 403
Verwechseln Sie Passwörter nicht mit Sicherheit 404
Bereinigen Sie Ihren Code 404
Schreiben Sie nicht alles in eine Prozedur 405
Denken Sie daran, dass es noch andere Software gibt 405
Gehen Sie nicht davon aus, dass alle Benutzer Makros aktivieren 405
Gewöhnen Sie sich an, zu experimentieren 405
Gehen Sie nicht davon aus, dass Ihr Code in anderen Excel-Versionen funktioniert 406
Denken Sie immer an Ihre Benutzer 406
Vergessen Sie die Datensicherung nicht! 406
Abbildungsverzeichnis 407
Stichwortverzeichnis 415