Description
(Text)
Um noch mehr aus Excel herauszuholen, empfiehlt sich die VBA-Programmierung, mit der Sie Excel auf Ihre Bedürfnisse zuschneiden können. John Walkenbach zeigt Ihnen, wie Sie Excel-Berechnungen mit VBA automatisieren. Er erklärt Ihnen zunächst die notwendigen VBA-Grundlagen und wichtigsten Werkzeuge sowie VBA-Abläufe des VBA-Editors. Außerdem erhalten Sie eine Übersicht über die wichtigsten Bestandteile und Begriffe, die für die VBA-Programmierung in Excel relevant sind, und Sie erfahren, wie Sie Programmierfehler ausfindig machen und beheben.
(Table of content)
Über den Autor 9
Einführung 25
Haben Sie das richtige Buch gewählt? 25
Sie wollen also Programmierer werden . . . 26
Warum das Ganze? 26
Was Sie mitbringen sollten 27
Der obligatorische Abschnitt über typografische Konventionen 27
Überprüfen Sie Ihre Sicherheitseinstellungen 28
Wie dieses Buch aufgebaut ist 30
Teil 1: Erste Schritte mit der Excel VBA-Programmierung 30
Teil II: Wie VBA mit Excel zusammenarbeitet 30
Teil III: Programmierkonzepte 30
Teil IV: Kommunikation mit Ihren Benutzern 30
Teil V: Wie alles zusammenpasst 30
Teil VI: Der Top-Ten-Teil 30
Symbole in diesem Buch 31
Beispieldateien herunterladen 31
Und jetzt? 32
Teil I Excel VBA - Die ersten Schritte 33
Kapitel 1 Was ist VBA? 35
Was also ist VBA? 35
Was ist mit VBA möglich? 36
Text einfügen 36
Eine häufig ausgeführte Aufgabe automatisieren 37
Automatisierung wiederholter Operationen 37
Einen benutzerdefinierten Befehl anlegen 37
Eine benutzerdefinierte Schaltfläche erstellen 37
Neue Funktionen für die Arbeitsmappe entwickeln 37
Benutzerdefinierte Add-Ins für Excel erstellen 38
Vollständige Makro-gesteuerte Anwendungen erstellen 38
Vorteile und Nachteile von VBA 38
Vorteile von VBA 38
Nachteile von VBA 39
VBA in Kürze 39
Überblick über verschiedene Versionen 41
Kapitel 2 Ein Sprung ins kalte Wasser 45
Das Erste zuerst 45
Was auf Sie zukommt 46
Die ersten Schritte 46
Das Makro aufzeichnen 46
Das Makro testen 48
Das Makro überprüfen 48
Das Makro abändern 50
Arbeitsmappen mit Makros speichern 51
Makrosicherheit 52
Weitere Informationen über das Makro NameUndZeit 54
Teil II Die Zusammenarbeit von VBA und Excel 55
Kapitel 3 Der Visual Basic Editor 57
Was ist der Visual Basic Editor? 57
Den VBE aktivieren 57
VBE-Komponenten 58
Arbeiten im Projektfenster 60
Ein neues VBA-Modul hinzufügen 61
Ein VBA-Modul entfernen 61
Objekte exportieren und importieren 62
Arbeiten in einem Codefenster 62
Fenster minimieren und maximieren 63
Ein Modul erstellen 64
VBA-Code in ein Modul einfügen 64
Code direkt eingeben 65
Verwendung des Makro-Recorders 68
VBA-Code kopieren 70
Anpassung der VBA-Umgebung 70
Die Registerkarte Editor 70
Die Registerkarte Editorformat 74
Die Registerkarte Allgemein 75
Die Registerkarte Verankern 75
Kapitel 4 Das Objektmodell in VBA 77
Ist Excel ein Objekt? 77
Navigation innerhalb der Objekthierarchie 78
Alles dreht sich um Collections 79
Verweise auf Objekte - Referenzen 79
Navigation innerhalb der Hierarchie 80
Objektreferenzen vereinfachen 81
Objekteigenschaften und Methoden 82
Objekteigenschaften 83
Objektmethoden 85
Objektereignisse 86
Weitere Informationen 86
Das Hilfesystem von VBA 86
Der Objektkatalog 88
Automatische Auflistung von Eigenschaften und Methoden 88
Kapitel 5 Sub- und Funktionsprozeduren in VBA 91
Sub-Prozeduren im Vergleich zu Funktionsprozeduren 91Sub-Prozeduren 91
Funktionsprozeduren 92
Namen für Sub-Prozeduren und Funktionsprozeduren 92
Sub-Prozeduren ausführen 93
Die Sub-Prozedur direkt ausführen 95
Die Prozedur vom Dialogfeld Makro aus ausführen 95
Ein Makro mithilfe einer Tastenkombination ausführen 96
Die Prozedur über eine Schaltfläche oder eine Form ausführen 98
Die Prozedur von einer anderen Prozedur aus ausführen 99
Funktionsprozeduren ausführen 100
Die Funktion aus einer Sub-Prozedur aufrufen 100
Aufruf einer Funktion von einer Formel in einer Tabelle aus 101
Aufruf der Funktion von einer Sub-Prozedur aus 102
Eine Funktion von einer Formel in einer Tabelle aus aufrufen 103
Kapitel 6 Mit dem Excel Makro-Recorder arbeiten 105
Ist es live oder ist es VBA? 105
Grundlagen der Aufzeichnung 105
Vorbereitung auf die Aufzeichnung 108
Relativ oder absolut? 108
Aufzeichnung im absoluten Modus 108
Aufzeichnu
Contents
Uber den Autor 9 Einfuhrung 25 Haben Sie das richtige Buch gewahlt? 25 Sie wollen also Programmierer werden ... 26 Warum das Ganze? 26 Was Sie mitbringen sollten 27 Der obligatorische Abschnitt uber typografische Konventionen 27 Uberprufen Sie Ihre Sicherheitseinstellungen 28 Wie dieses Buch aufgebaut ist 30 Teil 1: Erste Schritte mit der Excel VBA-Programmierung 30 Teil II: Wie VBA mit Excel zusammenarbeitet 30 Teil III: Programmierkonzepte 30 Teil IV: Kommunikation mit Ihren Benutzern 30 Teil V: Wie alles zusammenpasst 30 Teil VI: Der Top-Ten-Teil 30 Symbole in diesem Buch 31 Beispieldateien herunterladen 31 Und jetzt? 32 Teil I Excel VBA Die ersten Schritte 33 Kapitel 1 Was ist VBA? 35 Was also ist VBA? 35 Was ist mit VBA moglich? 36 Text einfugen 36 Eine haufig ausgefuhrte Aufgabe automatisieren 37 Automatisierung wiederholter Operationen 37 Einen benutzerdefinierten Befehl anlegen 37 Eine benutzerdefinierte Schaltflache erstellen 37 Neue Funktionen fur die Arbeitsmappe entwickeln 37 Benutzerdefinierte Add-Ins fur Excel erstellen 38 Vollstandige Makro-gesteuerte Anwendungen erstellen 38 Vorteile und Nachteile von VBA 38 Vorteile von VBA 38 Nachteile von VBA 39 VBA in Kurze 39 Uberblick uber verschiedene Versionen 41 Kapitel 2 Ein Sprung ins kalte Wasser 45 Das Erste zuerst 45 Was auf Sie zukommt 46 Die ersten Schritte 46 Das Makro aufzeichnen 46 Das Makro testen 48 Das Makro uberprufen 48 Das Makro abandern 50 Arbeitsmappen mit Makros speichern 51 Makrosicherheit 52 Weitere Informationen uber das Makro NameUndZeit 54 Teil II Die Zusammenarbeit von VBA und Excel 55 Kapitel 3 Der Visual Basic Editor 57 Was ist der Visual Basic Editor? 57 Den VBE aktivieren 57 VBE-Komponenten 58 Arbeiten im Projektfenster 60 Ein neues VBA-Modul hinzufugen 61 Ein VBA-Modul entfernen 61 Objekte exportieren und importieren 62 Arbeiten in einem Codefenster 62 Fenster minimieren und maximieren 63 Ein Modul erstellen 64 VBA-Code in ein Modul einfugen 64 Code direkt eingeben 65 Verwendung des Makro-Recorders 68 VBA-Code kopieren 70 Anpassung der VBA-Umgebung 70 Die Registerkarte Editor 70 Die Registerkarte Editorformat 74 Die Registerkarte Allgemein 75 Die Registerkarte Verankern 75 Kapitel 4 Das Objektmodell in VBA 77 Ist Excel ein Objekt? 77 Navigation innerhalb der Objekthierarchie 78 Alles dreht sich um Collections 79 Verweise auf Objekte Referenzen 79 Navigation innerhalb der Hierarchie 80 Objektreferenzen vereinfachen 81 Objekteigenschaften und Methoden 82 Objekteigenschaften 83 Objektmethoden 85 Objektereignisse 86 Weitere Informationen 86 Das Hilfesystem von VBA 86 Der Objektkatalog 88 Automatische Auflistung von Eigenschaften und Methoden 88 Kapitel 5 Sub- und Funktionsprozeduren in VBA 91 Sub-Prozeduren im Vergleich zu Funktionsprozeduren 91 Sub-Prozeduren 91 Funktionsprozeduren 92 Namen fur Sub-Prozeduren und Funktionsprozeduren 92 Sub-Prozeduren ausfuhren 93 Die Sub-Prozedur direkt ausfuhren 95 Die Prozedur vom Dialogfeld Makro aus ausfuhren 95 Ein Makro mithilfe einer Tastenkombination ausfuhren 96 Die Prozedur uber eine Schaltflache oder eine Form ausfuhren 98 Die Prozedur von einer anderen Prozedur aus ausfuhren 99 Funktionsprozeduren ausfuhren 100 Die Funktion aus einer Sub-Prozedur aufrufen 100 Aufruf einer Funktion von einer Formel in einer Tabelle aus 101 Aufruf der Funktion von einer Sub-Prozedur aus 102 Eine Funktion von einer Formel in einer Tabelle aus aufrufen 103 Kapitel 6 Mit dem Excel Makro-Recorder arbeiten 105 Ist es live oder ist es VBA? 105 Grundlagen der Aufzeichnung 105 Vorbereitung auf die Aufzeichnung 108 Relativ oder absolut? 108 Aufzeichnung im absoluten Modus 108 Aufzeichnung im relativen Modus 109 Was wird eigentlich aufgezeichnet? 111 Aufzeichnungsoptionen 111 Makroname 113 Tastenkombination 113 Makro speichern in 113 Beschreibung 113 Und wie effizient ist das Ganze? 113 Teil III Programmierkonzepte 117 Kapitel 7 Wichtige Elemente der Sprache VBA 119 Kommentare in Ihrem VBA-Code 119 Variablen, Konstanten und Datentypen 121 Variablen verstehen 121 Was sind Datentypen in VBA? 122 Variablen deklarieren und ihnen einen Gultigkeitsbereich zuweisen 123 Mit Konstanten arbeiten 130 Vorgefertigte Konstanten 131 Mit Zeichenfolgen arbeiten 131 Mit Datumswerten arbeiten 132 Zuweisungsbefehle verwenden 133 Beispiele fur den Zuweisungsbefehl 133 Das Gleichheitszeichen 134 Hilfreiche Operatoren 134 Arrays 136 Arrays deklarieren 136 Mehrdimensionale Arrays 137 Dynamische Arrays 137 Die Verwendung von Zeilenmarken (Labels) 138 Kapitel 8 Mit Range-Objekten arbeiten 139 Ein schneller Uberblick 139 Andere Methoden, auf einen Bereich zu verweisen 141 Die Cells-Eigenschaft 141 Die Offset-Eigenschaft 142 Einige praktische Eigenschaften des Range-Objekts 143 Die Value-Eigenschaft 143 Die Text-Eigenschaft 144 Die Count-Eigenschaft 144 Die Column- und Row-Eigenschaften 145 Die Address-Eigenschaft 145 Die HasFormula-Eigenschaft 145 Die Font-Eigenschaft 146 Die Interior-Eigenschaft 147 Die Formula-Eigenschaft 148 Die NumberFormat-Eigenschaft 149 Einige praktische Methoden des Range-Objekts 150 Die Select-Methode 150 Die Methoden Copy und Paste 150 Die Clear-Methode 151 Die Delete-Methode 151 Kapitel 9 VBA- und Arbeitsblattfunktionen 153 Was ist eine Funktion? 153 Eingebaute VBA-Funktionen verwenden 153 Beispiele fur VBA-Funktionen 154 VBA-Funktionen, die mehr tun, als einen Wert zuruckzugeben 156 VBA-Funktionen finden 157 Arbeitsblattfunktionen in VBA verwenden 159 Beispiele fur Arbeitsblattfunktionen 160 Eingabe von Arbeitsblattfunktionen 163 Weitere Informationen uber die Verwendung von Arbeitsblattfunktionen 163 Benutzerdefinierte Funktionen verwenden 164 Kapitel 10 Steuerung des Programmablaufs und Entscheidungen 165 Schwimmen mit dem Strom 165 Die GoTo-Anweisung 166 Entscheidungen, Entscheidungen! 167 Die If-Then-Struktur 167 Die Select-Case-Struktur 172 Ihr Code fur eine Schleife 175 For-Next-Schleifen 175 Do-While-Schleifen 181 Do-Until-Schleifen 181 For-Each-Next-Schleifen fur Collections ausfuhren 182 Kapitel 11 Automatische Prozeduren und Ereignisse 185 Vorbereitung auf das grosse Ereignis 185 Sind Ereignisse praktisch? 186 Programmierung von Prozeduren zur Ereignisverarbeitung 187 Wo steht der VBA-Code? 188 Eine Prozedur zur Ereignisverarbeitung schreiben 189 Einfuhrende Beispiele 190 Das Open-Ereignis fur eine Arbeitsmappe 190 Das BeforeClose-Ereignis fur eine Arbeitsmappe 193 Das BeforeSave-Ereignis fur eine Arbeitsmappe 194 Beispiele fur Aktivierungsereignisse 195 Aktivierungs- und Deaktivierungsereignisse in einem Arbeitsblatt 195 Aktivierungs- und Deaktivierungsereignisse in einer Arbeitsmappe 196 Arbeitsmappen-Aktivierungsereignisse 198 Andere Arbeitsblatt-Ereignisse 198 Das BeforeDoubleClick-Ereignis 199 Das BeforeRightClick-Ereignis 199 Das Change-Ereignis 200 Ereignisse, die keinen Objekten zugeordnet sind 201 Das OnTime-Ereignis 202 Tastenaktionen 205 Kapitel 12 Techniken zur Fehlerverarbeitung 207 Fehlertypen 207 Ein fehlerbehaftetes Beispiel 208 Das Makro ist nicht ganz perfekt 209 Das Makro ist immer noch nicht perfekt 210 Ist das Makro immer noch nicht perfekt? 211 Verabschieden Sie sich von der Perfektion! 212 Fehler anders verarbeiten 212 Noch einmal die Prozedur EnterSquareRoot 212 Die On-Error-Anweisung 213 Fehlerverarbeitung: Die Details 214 Fortsetzung nach einem Fehler 214 Fehlerverarbeitung im Uberblick 216 Erkennen, wann Fehler ignoriert werden konnen 216 Spezifische Fehler identifizieren 217 Ein beabsichtigter Fehler 219 Kapitel 13 Techniken, mit denen Sie Fehler loswerden 221 Verschiedene Fehlerarten 221 Programmierfehler identifizieren 222 Debugging-Techniken 223 Ihren Code uberprufen 223 Die MsgBox-Funktion verwenden 223 Debug.Print-Anweisungen einfugen 225 Verwendung des VBA-Debuggers 226 Der Debugger 226 Haltepunkte in Ihrem Code setzen 226 Das Uberwachungsfenster verwenden 230 Das Lokal-Fenster 232 Tipps, wie Sie weniger Programmierfehler machen 232 Kapitel 14 VBA-Programmierbeispiele 235 Mit Bereichen arbeiten 235 Einen Bereich kopieren 236 Einen variablen Bereich kopieren 237 Auswahl bis zum Ende einer Zeile oder Spalte 238 Eine Zeile oder Spalte auswahlen 239 Einen Bereich verschieben 239 Einen Bereich effizient durchlaufen 240 Einen Bereich effizient durchlaufen (Teil II) 241 Einen Zellwert anfordern 242 Den Auswahltyp bestimmen 243 Eine Mehrfachauswahl erkennen 243 Excel-Einstellungen abandern 244 Boolesche Einstellungen andern 245 Nicht-Boolesche Einstellungen andern 245 Diagramme 246 AddChart im Vergleich zu AddChart2 247 Den Diagrammtyp andern 248 Die ChartObjects-Collection durchlaufen 249 Diagrammeigenschaften andern 249 Diagrammformatierungen anwenden 250 VBA-Geschwindigkeitstipps 251 Die Bildschirmaktualisierung abschalten 251 Die automatische Berechnung ausschalten 252 Lastige Warnungen deaktivieren 253 Objektreferenzen vereinfachen 253 Variablentypen deklarieren 254 Die With-End-With-Struktur 255 Teil IV Kommunikation mit Ihren Benutzern 257 Kapitel 15 Einfache Dialogfelder 259 Alternativen zu UserForms 259 Die MsgBox-Funktion 260 Ein einfaches Meldungsfeld anzeigen 260 Eine Antwort aus einem Meldungsfeld ermitteln 261 Meldungsfelder anpassen 262 Die InputBox-Funktion 265 Die Syntax von InputBox 265 Ein Beispiel fur eine InputBox 266 Ein weiterer Typ InputBox 267 Die Methode GetOpenFilename 268 Die Syntax fur die GetOpenFilename-Methode 268 Ein Beispiel fur GetOpenFilename 269 Die GetSaveAsFilename-Methode 270 Einen Ordnernamen ermitteln 271 Eingebaute Excel-Dialogfelder anzeigen 272 Kapitel 16 UserForm-Grundlagen 275 Erkennen, wann man ein UserForm braucht 275 UserForms erstellen: Ein Uberblick 276 Mit UserForms arbeiten 277 Ein neues UserForm einfugen 277 Einem UserForm Steuerelemente hinzufugen 278 Die Eigenschaften eines UserForm-Steuerelements andern 279 Das Codefenster fur ein UserForm anzeigen 281 Ein UserForm anzeigen 281 Informationen aus einem UserForm verarbeiten 281 Ein UserForm-Beispiel 282 Das UserForm anlegen 282 Die Befehlsschaltflachen hinzufugen 283 Optionsfelder einfugen 284 Prozeduren zur Ereignisverarbeitung einfugen 286 Ein Makro anlegen, das das Dialogfeld anzeigt 288 Das Makro fur den Benutzer bereitstellen 289 Das Makro testen 290 Kapitel 17 UserForm-Steuerelemente verwenden 293 Steuerelemente im Dialogfeld die ersten Schritte 293 Steuerelemente hinzufugen 293 Eigenschaften von Steuerelementen Grundlagen 294 Steuerelemente in einem Dialogfeld: Die Details 297 Das CheckBox-Steuerelement Kontrollkastchen 297 Das ComboBox-Steuerelement Kombinationsfeld 298 Das CommandButton-Steuerelement Befehlsschaltflache 298 Das Frame-Steuerelement Rahmen 299 Das Image-Steuerelement (Bildfeld) 299 Das Label-Steuerelement (Bezeichnungsfeld) 300 Das ListBox-Steuerelement (Listenfeld) 301 Das MultiPage-Steuerelement Multiseiten 302 Das OptionButton-Steuerelement Optionsfelder 303 Das RefEdit-Steuerelement 303 Das ScrollBar-Steuerelement Bildlaufleiste 304 Das SpinButton-Steuerelement Drehfeld 305 Das TabStrip-Steuerelement Register 305 Das TextBox-Steuerelement Textfeld 306 Das ToggleButton-Steuerelement Umschaltfeld 307 Die Arbeit mit Steuerelementen in Dialogfeldern 307 Steuerelemente verschieben und ihre Grosse andern 307 Steuerelemente ausrichten und Abstande einhalten 308 Tastaturbenutzern helfen 308 Ein UserForm testen 310 Dialogfeld-Asthetik 311 Kapitel 18 UserForms Techniken und Tricks 313 Dialogfelder verwenden 313 Ein UserForm-Beispiel 313 Das Dialogfeld anlegen 314 Code fur die Anzeige des Dialogfelds 317 Das Makro bereitstellen 317 Ihr Dialogfeld ausprobieren 318 Prozeduren zur Ereignisverarbeitung einfugen 318 Die Daten auswerten 320 Jetzt funktioniert das Dialogfeld 320 Weitere UserForm-Beispiele 321 Ein Listenfeld-Beispiel 321 Einen Bereich auswahlen 325 Mehrere Optionsfeldgruppen verwenden 327 Ein Drehfeld und ein Textfeld verwenden 328 Ein UserForm als Fortschrittsanzeige verwenden 330 Ein nicht modales Dialogfeld mit Registerkarten erstellen 333 Ein Diagramm in einem UserForm anzeigen 335 Dialogfeld-Checkliste 336 Kapitel 19 Zugriff auf Ihre Makros uber die Benutzeroberflache 339 Das Menuband anpassen 339 Das Menuband manuell anpassen 339 Dem Menuband ein Makro hinzufugen 342 Anpassung des Menubands mit XML 342 Kontextmenus anpassen 347 Die CommandBars-Collection nutzen 347 Alle Kontextmenus auflisten 347 Verweise auf CommandBars 349 Verweis auf Steuerelemente in einer CommandBar 349 Eigenschaften von CommandBar-Steuerelementen 350 Beispiele fur VBA-Kontextmenus 352 Alle eingebauten Kontextmenus zurucksetzen 352 Dem Kontextmenu Zelle einen neuen Eintrag hinzufugen 353 Ein Kontextmenu deaktivieren 356 Eine benutzerdefinierte Symbolleiste erstellen 356 Teil V Das grosse Ganze 359 Kapitel 20 Funktionen fur Arbeitsblatter erstellen 361 Wozu benutzerdefinierte Funktionen? 361 Grundlagen der VBA-Funktionen 362 Funktionen schreiben 363 Mit Funktionsargumenten arbeiten 364 Beispiele fur Funktionen 364 Eine Funktion ohne Argumente 364 Eine Funktion mit einem Argument 365 Eine Funktion mit zwei Argumenten 366 Eine Funktion mit einem Bereichsargument 368 Eine Funktion mit einem optionalen Argument 370 Wrapper-Funktionen 371 Die NumberFormat-Funktion 372 Die ExtractElement-Funktion 372 Die SayIt-Funktion 373 Die IsLike-Funktion 373 Funktionen, die ein Array zuruckgeben 374 Ein Array mit Monatsnamen zuruckgeben 374 Eine sortierte Liste zuruckgeben 375 Das Dialogfeld Funktion einfugen verwenden 376 Die Funktionsbeschreibung anzeigen 377 Argumentbeschreibungen 378 Kapitel 21 Add-Ins in Excel erstellen 381 Und was ist ein Add-In? 381 Wozu legt man Add-Ins an? 382 Die Arbeit mit Add-Ins 383 Add-In-Grundlagen 384 Ein Add-In-Beispiel 385 Einrichtung der Arbeitsmappe 385 Die Arbeitsmappe testen 387 Beschreibende Informationen hinzufugen 388 Den VBA-Code schutzen 389 Das Add-In anlegen 389 Das Add-In offnen 389 Das Add-In weitergeben 390 Das Add-In andern 390 Teil VI Der Top-Ten-Teil 393 Kapitel 22 10 Fragen (und Antworten) zu VBA 395 Kapitel 23 (Fast) 10 Excel-Ressourcen 399 Das VBA-Hilfesystem 399 Microsoft Produkt-Support 399 Internet-Websites 400 Excel-Blogs 400 Google 400 Bing 400 Lokale User Groups 401 Meine anderen Bucher 401 Kapitel 24 10 Dinge, die Sie beherzigen oder vermeiden sollten 403 Deklarieren Sie alle Variablen 403 Verwechseln Sie Passworter nicht mit Sicherheit 403 Bereinigen Sie Ihren Code 404 Schreiben Sie nicht alles in eine Prozedur 404 Denken Sie daran, dass es noch andere Software gibt 405 Gehen Sie nicht davon aus, dass alle Benutzer Makros aktivieren 405 Gewohnen Sie sich an, zu experimentieren 405 Gehen Sie nicht davon aus, dass Ihr Code in anderen Excel-Versionen funktioniert 405 Denken Sie immer an Ihre Benutzer 406 Vergessen Sie die Sicherung nicht! 406 Stichwortverzeichnis 407