Michael Alexander, Dick Kusleika
Excel-VBA Power-Programmierung für Dummies
Übersetzung:Haselier, Rainer G.; Muhr, Judith
Michael Alexander, Dick Kusleika
Excel-VBA Power-Programmierung für Dummies
Übersetzung:Haselier, Rainer G.; Muhr, Judith
- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Kenntnisse in VBA-Programmierung sind wichtig, um noch mehr aus Excel herauszuholen. Die Excel-Experten Michael Alexander und Dick Kusleika erklären Ihnen zunächst die Grundlagen von VBA. Dann geben Sie Ihnen einen Einblick in die wichtigsten Programmiertechniken. Später widmen Sie sich den fortgeschritteneren Techniken und erläutern wie Sie UserForms arbeiten. Sie führen Sie auch in viele scheinbar kleine, aber trotzdem wichtige Gebiete rund um Excel-VBA ein. So finden Sie in diesem Buch was Sie brauchen, ob Sie Einsteiger in Excel-VBA sind oder hier schon erste Erfahrungen gesammelt haben.
Andere Kunden interessierten sich auch für
- Bernd HeldRichtig einsteigen: Excel-VBA-Programmierung19,90 €
- Dick KusleikaExcel-VBA für Dummies22,00 €
- Bernd HeldVBA mit Excel49,90 €
- Thomas TheisEinstieg in VBA mit Excel19,90 €
- Michael AlexanderExcel Makros für Dummies20,00 €
- Stephen L. NelsonExcel Datenanalyse für Dummies24,99 €
- Inge BaumeisterVBA mit Excel - Der leichte Einstieg19,90 €
-
-
-
Kenntnisse in VBA-Programmierung sind wichtig, um noch mehr aus Excel herauszuholen. Die Excel-Experten Michael Alexander und Dick Kusleika erklären Ihnen zunächst die Grundlagen von VBA. Dann geben Sie Ihnen einen Einblick in die wichtigsten Programmiertechniken. Später widmen Sie sich den fortgeschritteneren Techniken und erläutern wie Sie UserForms arbeiten. Sie führen Sie auch in viele scheinbar kleine, aber trotzdem wichtige Gebiete rund um Excel-VBA ein. So finden Sie in diesem Buch was Sie brauchen, ob Sie Einsteiger in Excel-VBA sind oder hier schon erste Erfahrungen gesammelt haben.
Produktdetails
- Produktdetails
- ...für Dummies
- Verlag: Wiley-VCH Dummies
- Artikelnr. des Verlages: 1171299 000
- 1. Auflage
- Seitenzahl: 828
- Erscheinungstermin: 7. September 2016
- Deutsch
- Abmessung: 238mm x 174mm x 45mm
- Gewicht: 1403g
- ISBN-13: 9783527712991
- ISBN-10: 3527712992
- Artikelnr.: 44150264
- Herstellerkennzeichnung
- Wiley-VCH GmbH
- Boschstr. 12
- 69469 Weinheim
- wiley.buha@zeitfracht.de
- www.wiley-vch.de
- +49 (06201) 606-0 (AB ab 18.00 Uhr)
- ...für Dummies
- Verlag: Wiley-VCH Dummies
- Artikelnr. des Verlages: 1171299 000
- 1. Auflage
- Seitenzahl: 828
- Erscheinungstermin: 7. September 2016
- Deutsch
- Abmessung: 238mm x 174mm x 45mm
- Gewicht: 1403g
- ISBN-13: 9783527712991
- ISBN-10: 3527712992
- Artikelnr.: 44150264
- Herstellerkennzeichnung
- Wiley-VCH GmbH
- Boschstr. 12
- 69469 Weinheim
- wiley.buha@zeitfracht.de
- www.wiley-vch.de
- +49 (06201) 606-0 (AB ab 18.00 Uhr)
Michael Alexander ist Microsoft Certified Application Developer (MCAD) und Autor zahlreicher Bücher zu fortgeschrittener Business-Analyse mit Microsoft Access und Microsoft Excel. Dick Kusleika wurde für zwölf aufeinanderfolgende Jahre als Microsoft Most Valuable Professional ausgezeichnet; seit mehr als 20 Jahren setzt er Microsoft Office ein.
Über die Autoren 7
Einleitung 27
Themen dieses Buches 27
Was Sie wissen sollten 28
Was Sie brauchen 28
Konventionen in diesem Buch 28
Excel-Befehle 29
Visual-Basic-Editor-Befehle 29
Tastatureingaben 29
Was die Symbole bedeuten 30
Wie dieses Buch aufgebaut ist 31
Teil I: Einführung in Excel-VBA 31
Teil II: Fortgeschrittene VBA-Techniken 31
Teil III: Mit UserForms arbeiten 31
Teil IV: Excel-Anwendungen entwickeln 32
Teil V: Anhang 32
Über die Website zum Buch 32
Teil I Einführung in Excel-VBA 33
Kapitel 1 Grundlagen der Entwicklung von Arbeitsblattanwendungen 35
Was ist eine Arbeitsblattanwendung 35
Schritte bei der Entwicklung der Anwendung 36
Die Anforderungen der Anwender ermitteln 37
Eine Anwendung planen, die die Anforderungen der Anwender erfüllt 38
Die am besten geeignete Benutzeroberfläche festlegen 40
Anpassen des Menübands 41
Anpassen der Kontextmenüs 41
Tastenkombinationen definieren 41
Benutzerdefinierte Dialogfelder erstellen 42
ActiveX-Steuerelemente auf einem Arbeitsblatt verwenden 43
Die Anwendung entwickeln 45
Denken Sie immer an den Anwender 45
Die Anwendung testen 45
Die Anwendung narrensicher machen 46
Erstellen Sie eine ästhetisch ansprechende und intuitive Anwendung 48
Ein Hilfesystem erstellen 49
Dokumentieren Sie Ihre Entwicklungsarbeit 50
Die Anwendung an die Benutzer verteilen 50
Die Anwendung updaten, falls nötig 51
Weitere Punkte, die für die Entwicklung wichtig sind 51
Die beim Anwender installierte Excel-Version 51
Probleme aufgrund der Sprache 51
Systemgeschwindigkeit 52
Videomodi 52
Kapitel 2 Einführung in Visual Basic for Applications 55
Sich mit dem Makrorekorder einen Vorsprung verschaffen 55
Ihr erstes Makro erstellen 56
Das Makro untersuchen 57
Ihr Makro testen 58
Ihr Makro bearbeiten 59
Absolute und relative Makroaufzeichnung im Vergleich 59
Makros mit absoluten Verweisen aufzeichnen 59
Makros mit relativen Verweisen aufzeichnen 62
Weitere Konzepte für die Makroaufzeichnung 64
Dateierweiterungen für Arbeitsmappen mit Makros 65
Makrosicherheit in Excel 65
Vertrauenswürdige Speicherorte 65
Makros in Ihrer persönlichen Makroarbeitsmappe abspeichern 66
Ein Makro einer Schaltfläche oder einem anderen Formularsteuerelement
zuweisen 67
Ein Makro in die Symbolleiste für den Schnellzugriff einfügen 69
In Visual Basic-Editor arbeiten 70
Die VBE-Komponenten verstehen 70
Mit dem Projekt-Explorer arbeiten 72
Ein neues VBA-Modul einfügen 73
Ein VBA-Modul entfernen 74
Im Codefenster arbeiten 75
Fenster minimieren und maximieren 75
VBA-Code in ein Modul einfügen 75
Die VBA-Entwicklungsumgebung anpassen 78
Die Registerkarte 'Editor' 78
Die Registerkarte 'Editorformat' 80
Die Registerkarte 'Allgemein' 81
Die Registerkarte 'Verankern' 82
VBA-Grundlagen 82
Objekte verstehen 83
Sammlungen verstehen 84
Eigenschaften verstehen 84
Methoden verstehen 87
Tiefer einsteigen: Range-Objekte einsetzen 89
Die Eigenschaften des Range-Objekts finden 89
Die Eigenschaft Range 89
Die Eigenschaft Cells 91
Die Eigenschaft Offset 93
Wichtige Konzepte, die Sie sich merken sollten 95
Keine Panik - Sie sind nicht allein 97
Lesen Sie den Rest dieses Buches 97
Lassen Sie sich von Excel beim Schreiben Ihres Makros helfen 97
Verwenden Sie die VBA-Hilfedateien 97
Verwenden Sie den Objektkatalog 98
Stibitzen Sie Code im Internet 100
Userforen optimal nutzen 100
Besuchen Sie Experten-Blogs 101
Suchen Sie auf YouTube nach Schulungsvideos 102
Vom Office Dev Center lernen 102
Analysieren Sie andere Excel-Dateien in Ihrem Unternehmen 102
Fragen Sie die Excel-Experten vor Ort 102
Kapitel 3 VBA-Programmiergrundlagen 103
VBA-Sprachelemente - Ein Überblick 103
Kommentare 105
Variablen, Datentypen und Konstanten 107
Datentypen definieren 108
Variablen deklarieren 110
Den Datentyp ermitteln 111
Zwingen Sie sich, alle Variablen zu deklarieren 111
Gültigkeitsbereich von Variablen 112
Öffentliche Variablen 115
Konstanten verwenden 115
Mit Zeichenfolgen arbeiten 117
Mit Datumswerten arbeiten 117
Zuweisungsanweisungen 119
Arrays 121
Arrays deklarieren 121
Mehrdimensionale Arrays deklarieren 122
Dynamische Arrays deklarieren 123
Objektvariablen 123
Benutzerdefinierte Datentypen 125
Eingebaute Funktionen 126
Mit Objekten und Sammlungen arbeiten 129
Das With-End With-Konstrukt 129
Die For Each-Next-Schleife 130
Die Codeausführung steuern 132
GoTo-Anweisungen 133
If-Then-Verzweigung 133
Select Case-Verzweigung 138
Anweisungsblöcke in einer Schleife ausführen 141
Do Until-Schleifen 148
Kapitel 4 VBA-Sub-Prozeduren verwenden 151
Über Prozeduren 151
Eine Sub-Prozedur deklarieren 152
Gültigkeitsbereich und Sichtbarkeit einer Prozedur festlegen 153
Sub-Prozeduren ausführen 154
Eine Prozedur mit dem Befehl 'Sub/UserForm ausführen' starten 155
Eine Prozedur vom Dialogfeld 'Makro' aus ausführen 155
Eine Prozedur durch Drücken einer Tastenkombination ausführen 156
Eine Prozedur über das Menüband ausführen 158
Eine Prozedur über ein benutzerdefiniertes Kontextmenü ausführen 158
Eine Prozedur von einer anderen Prozedur aus ausführen 158
Eine Prozedur in einem anderen Modul ausführen 160
Eine Prozedur in einer anderen Arbeitsmappe aufrufen 160
Eine Prozedur durch Anklicken eines Objekts ausführen 163
Eine Prozedur beim Eintritt eines Ereignisses ausführen 165
Eine Prozedur vom Direktfenster aus ausführen 165
Argumente an Prozeduren übergeben 166
Techniken zur Behandlung von Fehlern 170
Fehler abfangen 170
Beispiele für die Fehlerbehandlung 172
Ein realistisches Beispiel, das Sub-Prozeduren verwendet 175
Das Ziel 176
Anforderungen an das Projekt 176
Was Sie wissen 176
Der Ansatz 177
Ein paar vorbereitende Aufzeichnungen 178
Das anfängliche Setup 179
Den Code schreiben 180
Die Prozedur für die Sortierung schreiben 181
Mehr Tests 186
Die Probleme beheben 187
Verfügbarkeit des Tools 190
Das Projekt evaluieren 191
Kapitel 5 Funktionsprozeduren erstellen 193
Sub-Prozeduren und Funktionsprozeduren im Vergleich 193
Warum benutzerdefinierte Funktionen erstellen 194
Ein einführendes Beispiel für eine Funktion 194
Die Funktion in einem Tabellenblatt verwenden 195
Die Funktion in einer VBA-Prozedur verwenden 196
Die benutzerdefinierte Funktion analysieren 197
Funktionsprozeduren 199
Gültigkeitsbereich von Funktionsprozeduren 200
Funktionsprozeduren ausführen 201
Funktionsargumente 205
Beispiele für Funktionsprozeduren 205
Funktionsprozeduren ohne Argumente 205
Eine Funktionsprozedur mit einem Argument 208
Eine Funktionsprozedur mit zwei Argumenten 211
Eine Funktionsprozedur mit einem Array-Argument 212
Eine Funktionsprozedur mit optionalen Argumenten 213
Eine Funktionsprozedur, die ein VBA-Array zurückgibt 215
Eine Funktionsprozedur, die einen Fehlerwert zurückgibt 218
Eine Funktionsprozedur mit einer beliebigen Anzahl Argumenten 219
Die Excel-Funktion SUMME emulieren 221
Erweiterte Datumsfunktionen 224
Funktionen debuggen 226
Das Dialogfeld 'Funktion einfügen' berücksichtigen 228
Die Methode 'MacroOptions' verwenden 228
Eine Funktionskategorie angeben 230
Eine Funktionsbeschreibung von Hand hinzufügen 232
Benutzerdefinierte Funktionen in Add-Ins speichern 232
Die Windows-API verwenden 233
Windows-API-Beispiele 234
Das Windows-Verzeichnis ermitteln 234
Den Status der Umschalttasten ermitteln 235
Mehr über API-Funktionen lernen 236
Kapitel 6 Die Excel-Ereignisse verstehen 237
Was Sie über Ereignisse wissen sollten 237
Ereignissequenzen verstehen 238
Wo kommen die Prozeduren für die Ereignisverarbeitung hin 238
Ereignisse deaktivieren 240
Den Code für eine Ereignisprozedur eingeben 242
Prozeduren zur Ereignisverarbeitung, die Argumente verwenden 243
Sich mit den Ereignissen auf der Arbeitsmappenebene vertraut machen 245
Das Ereignis Open 246
Das Ereignis Activate 247
Das Ereignis SheetActivate 247
Das Ereignis NewSheet 247
Das Ereignis BeforeSave 248
Das Ereignis Deactivate 248
Das Ereignis BeforePrint 249
Das Ereignis BeforeClose 250
Die Arbeitsblattereignisse untersuchen 253
Das Ereignis Change 253
Einen bestimmten Bereich auf Änderungen überwachen 254
Das Ereignis SelectionChange 260
Das Ereignis BeforeDoubleClick 261
Das Ereignis BeforeRightClick 262
Ereignisse auf Anwendungsebene überwachen 263
Ereignisse auf Anwendungsebene aktivieren 264
Feststellen, wann eine Arbeitsmappe geöffnet wird 265
Ereignisse auf Anwendungsebene überwachen 266
Ereignisse verwenden, die nicht mit einem Objekt verknüpft sind 267
Das Ereignis OnTime 267
Das Ereignis OnKey 269
Kapitel 7 VBA-Programmierung: Beispiele und Techniken 275
Am Beispiel lernen 275
Mit Bereichen arbeiten 276
Einen Bereich kopieren 276
Einen Bereich verschieben 277
Einen Bereich variabler Größe kopieren 277
Unterschiedliche Arten von Bereichen auswählen und erkennen 279
Die Größe eines Bereichs ändern 282
Einen Zellwert anfordern 282
Einen Wert in die nächste leere Zelle eingeben 284
Ein Makro anhalten, damit der Anwender einen Bereich auswählen kann 285
Ausgewählte Zellen zählen 287
Den Typ des ausgewählten Bereichs bestimmen 288
Einen Bereich effizient in einer Schleife durchlaufen 290
Alle leeren Zeilen löschen 294
Zeilen beliebig oft duplizieren 295
Feststellen, ob ein Bereich in einem anderen enthalten ist 296
Den Datentyp einer Zelle bestimmen 297
Bereiche lesen und schreiben 298
Ein besserer Ansatz, um einen Bereich zu schreiben 300
Eindimensionale Arrays übertragen 302
Einen Bereich in ein Variant-Array übertragen 302
Zellen anhand ihres Wertes auswählen 303
Einen nicht zusammenhängenden Bereich kopieren 305
Mit Arbeitsmappen und Blättern arbeiten 307
Alle Arbeitsmappen speichern 307
Alle Arbeitsmappen speichern und schließen 308
Alles, bis auf die Auswahl ausblenden 308
Ein Inhaltsverzeichnis mit Hyperlinks erstellen 310
Tabellenblätter synchronisieren 311
VBA-Techniken 312
Eine boolesche Eigenschaft umschalten 312
Das Datum und die Zeit anzeigen 313
Eine freundliche Zeit anzeigen 315
Liste der installierten Schriftarten erstellen 317
Ein Array sortieren 318
Eine Reihe von Dateien bearbeiten 320
Einige nützliche Funktionen, die Sie in Ihrem Code verwenden können 322
Die Funktion FileExists 322
Die Funktion FileNameOnly 322
Die Funktion PathExists 323
Die Funktion RangeNameExists 323
Die Funktion SheetExists 324
Die Funktion WorkbookIsOpen 324
Einen Wert aus einer geschlossenen Arbeitsmappe abrufen 325
Einige nützliche Arbeitsblattfunktionen 327
Informationen über die Zellformatierung zurückgeben 328
Ein sprechendes Tabellenblatt 329
Datum anzeigen, an dem eine Datei gespeichert oder gedruckt wurde 330
Übergeordnete Objekte verstehen 331
Zellen zählen, deren Wert zwischen zwei Werten liegen 332
Die letzte, nicht leere Zelle einer Spalte oder Zeile ermitteln 333
Entspricht eine Zeichenfolge einem Muster? 334
Das n-te Elemente aus einer Zeichenfolge extrahieren 336
Eine Zahl in Worten 336
Eine Funktion mit mehreren Funktionen 337
Die Funktion SHEETOFFSET 338
Den größten Wert einer Zelle in allen Arbeitsblättern 339
Ein Array mit zufälligen Ganzzahlen ohne Duplikate zurückgeben 341
Einen Bereich zufällig anordnen 342
Einen Bereich sortieren 344
Windows-API-Aufrufe 345
API-Deklarationen verstehen 345
32-Bit- und 64-Bit-Deklarationen 346
Dateiverknüpfung ermitteln 347
Informationen zum Standarddrucker abrufen 348
Informationen zu den Bildschirmen abrufen 350
Lesen aus und schreiben in die Registrierungsdatenbank 351
Aus der Registrierungsdatenbank lesen 352
In die Registrierungsdatenbank schreiben 352
Teil II Fortgeschrittene VBA-Techniken 355
Kapitel 8 Mit PivotTables arbeiten 357
Ein einführendes Beispiel in PivotTables 357
Eine PivotTable erstellen 358
Den aufgezeichneten Code für die PivotTable untersuchen 360
Den aufgezeichneten PivotTable-Code aufräumen 361
Eine komplexere PivotTable erstellen 363
Der Code, der die PivotTable erstellt 365
So funktioniert der Code für die komplexe PivotTable 366
Mehrere PivotTables erstellen 368
Eine PivotTable in eine normale Tabelle konvertieren 372
Kapitel 9 Mit Diagrammen arbeiten 375
Das Innenleben von Diagrammen 375
Speicherorte von Diagrammen 375
Der Makrorekorder und Diagramme 376
Das Chart-Objektmodell 377
Ein eingebettetes Diagramm erstellen 378
Ein Diagramm auf einem Diagrammblatt erstellen 380
Diagramme bearbeiten 380
Mit VBA ein Diagramm aktivieren 381
Ein Diagramm verschieben 382
Mit VBA ein Diagramm deaktivieren 384
Prüfen, ob ein Diagramm aktiviert ist 384
Diagramme aus den Sammlungen ChartObjects und Charts entfernen 385
Alle Diagramme in einer Schleife durchlaufen 386
Größe und Ausrichtung eines ChartObject ändern 389
Ganz viele Diagramme erstellen 390
Ein Diagramm exportieren 393
Alle Grafiken exportieren 393
Die im Diagramm verwendeten Daten ändern 395
Diagrammdaten in Abhängigkeit von der aktiven Zelle ändern 396
Mit VBA die in einem Diagramm dargestellten Datenbereiche ermitteln 398
Mit VBA beliebige Datenbeschriftungen in einem Diagramm anzeigen 401
Ein Diagramm in einem UserForm anzeigen 405
Diagrammereignisse verstehen 408
Ein Beispiel für die Verwendung von Diagrammereignissen 409
Ereignisse für ein eingebettetes Diagramm aktivieren 411
Beispiel: Diagrammereignisse für ein eingebettetes Diagramm verwenden 413
VBA-Tricks für Diagramme 415
Eingebettete Diagramme auf einer eigenen Seite ausdrucken 415
Verknüpfung zwischen Diagramm und Datenquelle aufheben 416
Mit dem Ereignis MouseOver Text anzeigen 419
Ein Diagramm scrollen 421
Mit Sparklinediagrammen arbeiten 423
Kapitel 10 Zusammenarbeit mit anderen Anwendungen 427
Microsoft-Office-Automatisierung verstehen 427
Das Konzept der Bindung verstehen 427
Frühe Bindung 428
Späte Bindung 429
Ein einfaches Automatisierungsbeispiel 430
Access von Excel aus automatisieren 431
Eine Access-Abfrage von Excel aus ausführen 431
Ein Access-Makro von Excel aus starten 432
Word von Excel aus automatisieren 433
Excel-Daten an ein Word-Dokument senden 434
Seriendruck mit einem Word-Dokument simulieren 435
PowerPoint von Excel aus automatisieren 438
Excel-Daten an eine PowerPoint-Präsentation senden 438
Alle Excel-Diagramme an eine PowerPoint-Präsentation senden 439
Eine Arbeitsmappe in eine PowerPoint-Präsentation konvertieren 441
Outlook von Excel aus automatisieren 443
Die aktive Arbeitsmappe als Anhang mailen 443
Einen bestimmten Zellbereich als Anlage mailen 444
Ein einzelnes Arbeitsblatt als Anhang mailen 446
E-Mail an alle Adressen in Ihrer Kontaktliste senden 447
Andere Anwendungen von Excel aus starten 448
Die VBA-Funktion Shell verwenden 449
Die Windows-API-Funktion ShellExecute verwenden 451
AppActivate verwenden 453
Dialogfelder der Systemsteuerung starten 454
Kapitel 11 Externe Daten und Dateien verwenden 455
Externe Datenverbindungen verwenden 455
Manuell eine Datenverbindung einrichten 455
Datenverbindungen manuell bearbeiten 460
Mit VBA dynamische Datenverbindungen erstellen 461
Alle Verbindungen in einer Arbeitsmappe durchlaufen 464
Externe Daten mit ADO und VBA abrufen 465
Die Verbindungszeichenfolge 465
Ein Recordset deklarieren 467
Auf die ADO-Objektbibliothek verweisen 467
Alles im Code zusammenbringen 469
ADO mit der aktiven Arbeitsmappe verwenden 470
Grundlagen für das Arbeiten mit Textdateien 472
Eine Textdatei öffnen 473
Eine Textdatei lesen 474
In eine Textdatei schreiben 474
Eine Dateinummer abrufen 474
Lese-/Schreibposition ermitteln oder festlegen 475
Anweisungen für das Lesen und das Schreiben 476
Beispiele für das Arbeiten mit Textdateien 476
Daten aus einer Textdatei importieren 476
Einen Zellbereich in eine Textdatei exportieren 477
Eine Textdatei in einen Bereich importieren 478
Die Excel-Nutzung protokollieren 479
Eine Textdatei filtern 480
Gebräuchliche Dateioperationen durchführen 481
Die dateibezogenen VBA-Anweisungen verwenden 481
Das Objekt FileSystemObject verwenden 487
Zippen und Entzippen von Dateien 489
Dateien zippen 490
Eine Datei entzippen 491
Teil III Mit UserForms arbeiten 493
Kapitel 12 Benutzerdefinierte Dialogfelder 495
Bevor Sie dieses UserForm erstellen . . . 495
Eingabefelder 495
Die VBA-Funktion InputBox 495
Die Methode Application.InputBox 498
Die VBA-Funktion MsgBox 501
Die Excel-Methode GetOpenFilename 507
Die Excel-Methode GetSaveAsFilename 510
Abfrage eines Verzeichnisses 511
Die eingebauten Dialogfelder von Excel anzeigen 511
Ein Dateneingabeformular anzeigen 514
Das Datenformular bereitstellen 515
Ein Dateneingabeformular mit VBA anzeigen 516
Kapitel 13 UserForms - eine Einführung 517
Wie Excel benutzerdefinierte Dialogfelder verarbeitet 517
Ein neues UserForm einfügen 518
Einem UserForm Steuerelemente hinzufügen 518
Steuerelemente in der Toolsammlung 519
Kontrollkästchen - CheckBox 520
Kombinationsfeld - ComboBox 520
CommandButton - Befehlsschaltfläche 521
Frame - Rahmen 521
Image - Bildfeld 521
Label - Beschriftung 521
ListBox - Listenfeld 521
MultiPage - Element mit mehreren Registerkarten 521
OptionButton - Optionsfelder 522
RefEdit - Zellbereich 522
ScrollBar - Bildlaufleiste 522
SpinButton - Drehfeld 522
TabStrip - Registerfeld 522
TextBox - Textfeld 522
ToggleButton - Umschalter 523
Anpassung von UserForm-Steuerelementen 524
Die Eigenschaften eines Steuerelements anpassen 526
Das Eigenschaften-Fenster 526
Gemeinsame Eigenschaften 528
Bequemlichkeit für Tastaturbenutzer 530
Ein UserForm anzeigen 532
Die Anzeigeposition anpassen 533
Ein nicht modales UserForm anzeigen 533
Ein UserForm basierend auf einer Variablen anzeigen 533
Ein UserForm laden 534
Ereignisprozeduren 534
Ein UserForm schließen 534
Ein UserForm erstellen: Ein Beispiel 536
Das UserForm erstellen 536
Code schreiben, mit dem das Dialogfeld angezeigt wird 539
Das Dialogfeld testen 540
Ereignisprozeduren hinzufügen 541
Das fertige Dialogfeld 543
UserForm-Ereignisse 543
Informationen über Ereignisse 543
UserForm-Ereignisse 545
Drehfeld-Ereignisse 545
Ein Drehfeld mit einem Textfeld kombinieren 547
Verweise auf UserForm-Steuerelemente 550
Die Werkzeugsammlung anpassen 551
Der Werkzeugsammlung neue Seiten hinzufügen 551
Steuerelemente anpassen oder kombinieren 551
Neue ActiveX-Steuerelemente hinzufügen 553
UserForm-Schablonen erstellen 554
Eine UserForm-Checkliste 555
Kapitel 14 UserForms - Beispiele 557
Ein UserForm als 'Menü' anlegen 557
Befehlsschaltflächen in einem UserForm verwenden 557
Ein Listenfeld in einem UserForm verwenden 558
Auswahl von Bereichen in einem UserForm 560
Einen Begrüßungsbildschirm erstellen 561
Die Schließen-Schaltfläche eines UserForms deaktivieren 564
Die Größe eines UserForms ändern 565
Ein Blatt aus einem UserForm heraus vergrößern und blättern 567
Listenfeld-Techniken 569
Einem ListBox-Steuerelement Elemente hinzufügen 570
Das in einem Listenfeld ausgewählte Element ermitteln 575
Mehrfachauswahlen in einem Listenfeld bestimmen 576
Mehrere Listen in einem einzelnen Listenfeld 577
Übertragung von Listenfeldelementen 578
Elemente in einem Listenfeld verschieben 580
Mehrspaltige Listenfelder 582
Mit einem Listenfeld Zeilen in einem Arbeitsblatt auswählen 584
Mit einem Listenfeld ein Blatt aktivieren 586
Ein Listenfeld über ein Textfeld filtern 589
Das MultiPage-Steuerelement in einem UserForm verwenden 592
Ein externes Steuerelement verwenden 593
Ein Beschriftungsfeld animieren 596
Kapitel 15 Erweiterte UserForm-Techniken 599
Ein nicht modales Dialogfeld 599
Eine Fortschrittsanzeige anzeigen 603
Eine unabhängige Fortschrittsanzeige erstellen 604
Eine in ein UserForm integrierte Fortschrittsanzeige anzeigen 608
Eine nicht grafische Fortschrittsanzeige erstellen 612
Assistenten erstellen 615
Einrichtung des 'MultiPage'-Steuerelements für den Assistenten 616
Dem UserForm des Assistenten die Schaltflächen hinzufügen 617
Die Schaltflächen des Assistenten programmieren 617
Abhängigkeiten in einem Assistenten programmieren 619
Die Aufgabe mit dem Assistenten erledigen 621
Die 'MsgBox'-Funktion emulieren 622
'MsgBox'-Emulation: 'MyMsgBox'-Code 623
Wie die 'MyMsgBox'-Funktion funktioniert 624
Verwendung der 'MyMsgBox'-Funktion 626
Ein UserForm mit beweglichen Steuerelementen 626
Ein UserForm ohne Titelleiste 628
Mit einem UserForm eine Symbolleiste simulieren 630
Ein Aufgabenfeld mit einem UserForm emulieren 632
Ein größenverstellbares UserForm 634
Mehrere UserForm-Steuerelemente mit einer Ereignisprozedur verarbeiten 638
Auswahl einer Farbe in einem UserForm 641
Ein Diagramm in einem UserForm anzeigen 644
Ein Diagramm als GIF-Datei speichern 645
Die 'Picture'-Eigenschaft des Image-Steuerelements ändern 645
Ein halbtransparentes UserForm erstellen 645
Ein Puzzle auf einem UserForm 647
Video Poker auf einem UserForm 649
Teil IV Excel-Anwendungen entwickeln 651
Kapitel 16 Add-Ins erstellen und verwenden 653
Was ist ein Add-In? 653
Vergleich eines Add-Ins mit einer Standardarbeitsmappe 653
Warum erstellt man Add-Ins? 654
Der Add-In-Manager von Excel 656
Ein Add-In erstellen 658
Ein Add-In-Beispiel 659
Aussagekräftige Informationen für das Beispiel-Add-In hinzufügen 661
Ein Add-In erstellen 661
Ein Add-In installieren 662
Das Add-In testen 663
Ein Add-In weitergeben 664
Ein Add-In ändern 665
XLAM- und XLSM-Dateien vergleichen 666
Die XLAM-Datei als Element der VBA-Collection 666
Sichtbarkeit von XLSM- und XLAM-Dateien 666
Arbeitsblätter und Diagrammblätter in XLSM- und XLAM-Dateien 667
Zugriff auf VBA-Prozeduren in einem Add-In 668
Add-Ins mit VBA manipulieren 671
Der AddIns-Collection ein Element hinzufügen 672
Ein Element aus der AddIns-Collection entfernen 673
AddIn-Objekteigenschaften 673
Auf ein Add-In als Arbeitsmappe zugreifen 676
AddIn-Objektereignisse 677
Die Leistung von Add-Ins optimieren 677
Spezielle Probleme mit Add-Ins 678
Sicherstellen, dass ein Add-In installiert ist 678
Von einem Add-In aus auf andere Dateien verweisen 681
Die richtige Excel-Version für Ihr Add-In erkennen 681
Kapitel 17 Mit dem Menüband arbeiten 683
Menüband - Grundlagen 683
Das Menüband anpassen 685
Dem Menüband eine Schaltfläche hinzufügen 685
Der Symbolleiste für den Schnellzugriff eine Schaltfläche hinzufügen 688
Die Einschränkungen der Menüband-Anpassungen verstehen 690
Ein benutzerdefiniertes Menüband erstellen 691
Einer vorhandenen Registerkarte eine Schaltfläche hinzufügen 691
Einer vorhandenen Registerkarte ein Kontrollkästchen hinzufügen 696
Menüband-Steuerelemente - Demo 701
Beispiel für ein dynamicMenu-Steuerelement 710
Weitere Informationen zur Anpassung des Menübands 713
VBA für das Menüband verwenden 714
Zugriff auf ein Menüband-Steuerelement 715
Mit dem Menüband arbeiten 716
Eine Registerkarte aktivieren 718
Eine Symbolleiste im alten Stil erstellen 718
Einschränkungen der alten Symbolleisten aus Excel 2007 und früher 718
Code für die Erstellung einer Symbolleiste 719
Kapitel 18 Mit Kontextmenüs arbeiten 723
CommandBar-Übersicht 723
CommandBar-Typen 723
Kontextmenüs auflisten 724
Verweise auf CommandBars 725
Verweis auf Steuerelemente in einer CommandBar 726
Eigenschaften von CommandBar-Steuerelementen 728
Anzeige aller Kontextmenüelemente 728
Mit VBA Kontextmenüs anpassen 731
Kontextmenü und das Single-Document Interface 731
Ein Kontextmenü zurücksetzen 734
Ein Kontextmenü deaktivieren 735
Einträge von Kontextmenüs deaktivieren 736
Dem Kontextmenü 'Zelle' einen neuen Eintrag hinzufügen 736
Einem Kontextmenü ein Untermenü hinzufügen 739
Ein Kontextmenü auf eine einzelne Arbeitsmappe beschränken 741
Kontextmenüs und Ereignisse 742
Menüs automatisch hinzufügen und entfernen 742
Kontextmenüeinträge deaktivieren oder ausblenden 743
Ein kontextabhängiges Kontextmenü erstellen 743
Kapitel 19 Hilfe für Ihre Anwendungen bereitstellen 747
Hilfe für Ihre Excel-Anwendungen 747
Hilfesysteme, die Excel-Komponenten verwenden 749
Zellenkommentare für die Hilfe verwenden 750
Ein Textfeld für Hilfe verwenden 751
Hilfe auf einem Arbeitsblatt anzeigen 752
Hilfe in einem UserForm anzeigen 754
Hilfe in einem Webbrowser anzeigen 758
HTML-Dateien verwenden 758
Eine MHTML-Datei verwenden 759
Das HTML-Hilfesystem verwenden 761
Mit der Help-Methode HTML-Hilfe anzeigen 764
Ihrer Prozedur eine Hilfedatei zuordnen 765
Einer VBA-Funktion ein Hilfethema zuordnen 765
Kapitel 20 Klassenmodule 769
Was ist e
Einleitung 27
Themen dieses Buches 27
Was Sie wissen sollten 28
Was Sie brauchen 28
Konventionen in diesem Buch 28
Excel-Befehle 29
Visual-Basic-Editor-Befehle 29
Tastatureingaben 29
Was die Symbole bedeuten 30
Wie dieses Buch aufgebaut ist 31
Teil I: Einführung in Excel-VBA 31
Teil II: Fortgeschrittene VBA-Techniken 31
Teil III: Mit UserForms arbeiten 31
Teil IV: Excel-Anwendungen entwickeln 32
Teil V: Anhang 32
Über die Website zum Buch 32
Teil I Einführung in Excel-VBA 33
Kapitel 1 Grundlagen der Entwicklung von Arbeitsblattanwendungen 35
Was ist eine Arbeitsblattanwendung 35
Schritte bei der Entwicklung der Anwendung 36
Die Anforderungen der Anwender ermitteln 37
Eine Anwendung planen, die die Anforderungen der Anwender erfüllt 38
Die am besten geeignete Benutzeroberfläche festlegen 40
Anpassen des Menübands 41
Anpassen der Kontextmenüs 41
Tastenkombinationen definieren 41
Benutzerdefinierte Dialogfelder erstellen 42
ActiveX-Steuerelemente auf einem Arbeitsblatt verwenden 43
Die Anwendung entwickeln 45
Denken Sie immer an den Anwender 45
Die Anwendung testen 45
Die Anwendung narrensicher machen 46
Erstellen Sie eine ästhetisch ansprechende und intuitive Anwendung 48
Ein Hilfesystem erstellen 49
Dokumentieren Sie Ihre Entwicklungsarbeit 50
Die Anwendung an die Benutzer verteilen 50
Die Anwendung updaten, falls nötig 51
Weitere Punkte, die für die Entwicklung wichtig sind 51
Die beim Anwender installierte Excel-Version 51
Probleme aufgrund der Sprache 51
Systemgeschwindigkeit 52
Videomodi 52
Kapitel 2 Einführung in Visual Basic for Applications 55
Sich mit dem Makrorekorder einen Vorsprung verschaffen 55
Ihr erstes Makro erstellen 56
Das Makro untersuchen 57
Ihr Makro testen 58
Ihr Makro bearbeiten 59
Absolute und relative Makroaufzeichnung im Vergleich 59
Makros mit absoluten Verweisen aufzeichnen 59
Makros mit relativen Verweisen aufzeichnen 62
Weitere Konzepte für die Makroaufzeichnung 64
Dateierweiterungen für Arbeitsmappen mit Makros 65
Makrosicherheit in Excel 65
Vertrauenswürdige Speicherorte 65
Makros in Ihrer persönlichen Makroarbeitsmappe abspeichern 66
Ein Makro einer Schaltfläche oder einem anderen Formularsteuerelement
zuweisen 67
Ein Makro in die Symbolleiste für den Schnellzugriff einfügen 69
In Visual Basic-Editor arbeiten 70
Die VBE-Komponenten verstehen 70
Mit dem Projekt-Explorer arbeiten 72
Ein neues VBA-Modul einfügen 73
Ein VBA-Modul entfernen 74
Im Codefenster arbeiten 75
Fenster minimieren und maximieren 75
VBA-Code in ein Modul einfügen 75
Die VBA-Entwicklungsumgebung anpassen 78
Die Registerkarte 'Editor' 78
Die Registerkarte 'Editorformat' 80
Die Registerkarte 'Allgemein' 81
Die Registerkarte 'Verankern' 82
VBA-Grundlagen 82
Objekte verstehen 83
Sammlungen verstehen 84
Eigenschaften verstehen 84
Methoden verstehen 87
Tiefer einsteigen: Range-Objekte einsetzen 89
Die Eigenschaften des Range-Objekts finden 89
Die Eigenschaft Range 89
Die Eigenschaft Cells 91
Die Eigenschaft Offset 93
Wichtige Konzepte, die Sie sich merken sollten 95
Keine Panik - Sie sind nicht allein 97
Lesen Sie den Rest dieses Buches 97
Lassen Sie sich von Excel beim Schreiben Ihres Makros helfen 97
Verwenden Sie die VBA-Hilfedateien 97
Verwenden Sie den Objektkatalog 98
Stibitzen Sie Code im Internet 100
Userforen optimal nutzen 100
Besuchen Sie Experten-Blogs 101
Suchen Sie auf YouTube nach Schulungsvideos 102
Vom Office Dev Center lernen 102
Analysieren Sie andere Excel-Dateien in Ihrem Unternehmen 102
Fragen Sie die Excel-Experten vor Ort 102
Kapitel 3 VBA-Programmiergrundlagen 103
VBA-Sprachelemente - Ein Überblick 103
Kommentare 105
Variablen, Datentypen und Konstanten 107
Datentypen definieren 108
Variablen deklarieren 110
Den Datentyp ermitteln 111
Zwingen Sie sich, alle Variablen zu deklarieren 111
Gültigkeitsbereich von Variablen 112
Öffentliche Variablen 115
Konstanten verwenden 115
Mit Zeichenfolgen arbeiten 117
Mit Datumswerten arbeiten 117
Zuweisungsanweisungen 119
Arrays 121
Arrays deklarieren 121
Mehrdimensionale Arrays deklarieren 122
Dynamische Arrays deklarieren 123
Objektvariablen 123
Benutzerdefinierte Datentypen 125
Eingebaute Funktionen 126
Mit Objekten und Sammlungen arbeiten 129
Das With-End With-Konstrukt 129
Die For Each-Next-Schleife 130
Die Codeausführung steuern 132
GoTo-Anweisungen 133
If-Then-Verzweigung 133
Select Case-Verzweigung 138
Anweisungsblöcke in einer Schleife ausführen 141
Do Until-Schleifen 148
Kapitel 4 VBA-Sub-Prozeduren verwenden 151
Über Prozeduren 151
Eine Sub-Prozedur deklarieren 152
Gültigkeitsbereich und Sichtbarkeit einer Prozedur festlegen 153
Sub-Prozeduren ausführen 154
Eine Prozedur mit dem Befehl 'Sub/UserForm ausführen' starten 155
Eine Prozedur vom Dialogfeld 'Makro' aus ausführen 155
Eine Prozedur durch Drücken einer Tastenkombination ausführen 156
Eine Prozedur über das Menüband ausführen 158
Eine Prozedur über ein benutzerdefiniertes Kontextmenü ausführen 158
Eine Prozedur von einer anderen Prozedur aus ausführen 158
Eine Prozedur in einem anderen Modul ausführen 160
Eine Prozedur in einer anderen Arbeitsmappe aufrufen 160
Eine Prozedur durch Anklicken eines Objekts ausführen 163
Eine Prozedur beim Eintritt eines Ereignisses ausführen 165
Eine Prozedur vom Direktfenster aus ausführen 165
Argumente an Prozeduren übergeben 166
Techniken zur Behandlung von Fehlern 170
Fehler abfangen 170
Beispiele für die Fehlerbehandlung 172
Ein realistisches Beispiel, das Sub-Prozeduren verwendet 175
Das Ziel 176
Anforderungen an das Projekt 176
Was Sie wissen 176
Der Ansatz 177
Ein paar vorbereitende Aufzeichnungen 178
Das anfängliche Setup 179
Den Code schreiben 180
Die Prozedur für die Sortierung schreiben 181
Mehr Tests 186
Die Probleme beheben 187
Verfügbarkeit des Tools 190
Das Projekt evaluieren 191
Kapitel 5 Funktionsprozeduren erstellen 193
Sub-Prozeduren und Funktionsprozeduren im Vergleich 193
Warum benutzerdefinierte Funktionen erstellen 194
Ein einführendes Beispiel für eine Funktion 194
Die Funktion in einem Tabellenblatt verwenden 195
Die Funktion in einer VBA-Prozedur verwenden 196
Die benutzerdefinierte Funktion analysieren 197
Funktionsprozeduren 199
Gültigkeitsbereich von Funktionsprozeduren 200
Funktionsprozeduren ausführen 201
Funktionsargumente 205
Beispiele für Funktionsprozeduren 205
Funktionsprozeduren ohne Argumente 205
Eine Funktionsprozedur mit einem Argument 208
Eine Funktionsprozedur mit zwei Argumenten 211
Eine Funktionsprozedur mit einem Array-Argument 212
Eine Funktionsprozedur mit optionalen Argumenten 213
Eine Funktionsprozedur, die ein VBA-Array zurückgibt 215
Eine Funktionsprozedur, die einen Fehlerwert zurückgibt 218
Eine Funktionsprozedur mit einer beliebigen Anzahl Argumenten 219
Die Excel-Funktion SUMME emulieren 221
Erweiterte Datumsfunktionen 224
Funktionen debuggen 226
Das Dialogfeld 'Funktion einfügen' berücksichtigen 228
Die Methode 'MacroOptions' verwenden 228
Eine Funktionskategorie angeben 230
Eine Funktionsbeschreibung von Hand hinzufügen 232
Benutzerdefinierte Funktionen in Add-Ins speichern 232
Die Windows-API verwenden 233
Windows-API-Beispiele 234
Das Windows-Verzeichnis ermitteln 234
Den Status der Umschalttasten ermitteln 235
Mehr über API-Funktionen lernen 236
Kapitel 6 Die Excel-Ereignisse verstehen 237
Was Sie über Ereignisse wissen sollten 237
Ereignissequenzen verstehen 238
Wo kommen die Prozeduren für die Ereignisverarbeitung hin 238
Ereignisse deaktivieren 240
Den Code für eine Ereignisprozedur eingeben 242
Prozeduren zur Ereignisverarbeitung, die Argumente verwenden 243
Sich mit den Ereignissen auf der Arbeitsmappenebene vertraut machen 245
Das Ereignis Open 246
Das Ereignis Activate 247
Das Ereignis SheetActivate 247
Das Ereignis NewSheet 247
Das Ereignis BeforeSave 248
Das Ereignis Deactivate 248
Das Ereignis BeforePrint 249
Das Ereignis BeforeClose 250
Die Arbeitsblattereignisse untersuchen 253
Das Ereignis Change 253
Einen bestimmten Bereich auf Änderungen überwachen 254
Das Ereignis SelectionChange 260
Das Ereignis BeforeDoubleClick 261
Das Ereignis BeforeRightClick 262
Ereignisse auf Anwendungsebene überwachen 263
Ereignisse auf Anwendungsebene aktivieren 264
Feststellen, wann eine Arbeitsmappe geöffnet wird 265
Ereignisse auf Anwendungsebene überwachen 266
Ereignisse verwenden, die nicht mit einem Objekt verknüpft sind 267
Das Ereignis OnTime 267
Das Ereignis OnKey 269
Kapitel 7 VBA-Programmierung: Beispiele und Techniken 275
Am Beispiel lernen 275
Mit Bereichen arbeiten 276
Einen Bereich kopieren 276
Einen Bereich verschieben 277
Einen Bereich variabler Größe kopieren 277
Unterschiedliche Arten von Bereichen auswählen und erkennen 279
Die Größe eines Bereichs ändern 282
Einen Zellwert anfordern 282
Einen Wert in die nächste leere Zelle eingeben 284
Ein Makro anhalten, damit der Anwender einen Bereich auswählen kann 285
Ausgewählte Zellen zählen 287
Den Typ des ausgewählten Bereichs bestimmen 288
Einen Bereich effizient in einer Schleife durchlaufen 290
Alle leeren Zeilen löschen 294
Zeilen beliebig oft duplizieren 295
Feststellen, ob ein Bereich in einem anderen enthalten ist 296
Den Datentyp einer Zelle bestimmen 297
Bereiche lesen und schreiben 298
Ein besserer Ansatz, um einen Bereich zu schreiben 300
Eindimensionale Arrays übertragen 302
Einen Bereich in ein Variant-Array übertragen 302
Zellen anhand ihres Wertes auswählen 303
Einen nicht zusammenhängenden Bereich kopieren 305
Mit Arbeitsmappen und Blättern arbeiten 307
Alle Arbeitsmappen speichern 307
Alle Arbeitsmappen speichern und schließen 308
Alles, bis auf die Auswahl ausblenden 308
Ein Inhaltsverzeichnis mit Hyperlinks erstellen 310
Tabellenblätter synchronisieren 311
VBA-Techniken 312
Eine boolesche Eigenschaft umschalten 312
Das Datum und die Zeit anzeigen 313
Eine freundliche Zeit anzeigen 315
Liste der installierten Schriftarten erstellen 317
Ein Array sortieren 318
Eine Reihe von Dateien bearbeiten 320
Einige nützliche Funktionen, die Sie in Ihrem Code verwenden können 322
Die Funktion FileExists 322
Die Funktion FileNameOnly 322
Die Funktion PathExists 323
Die Funktion RangeNameExists 323
Die Funktion SheetExists 324
Die Funktion WorkbookIsOpen 324
Einen Wert aus einer geschlossenen Arbeitsmappe abrufen 325
Einige nützliche Arbeitsblattfunktionen 327
Informationen über die Zellformatierung zurückgeben 328
Ein sprechendes Tabellenblatt 329
Datum anzeigen, an dem eine Datei gespeichert oder gedruckt wurde 330
Übergeordnete Objekte verstehen 331
Zellen zählen, deren Wert zwischen zwei Werten liegen 332
Die letzte, nicht leere Zelle einer Spalte oder Zeile ermitteln 333
Entspricht eine Zeichenfolge einem Muster? 334
Das n-te Elemente aus einer Zeichenfolge extrahieren 336
Eine Zahl in Worten 336
Eine Funktion mit mehreren Funktionen 337
Die Funktion SHEETOFFSET 338
Den größten Wert einer Zelle in allen Arbeitsblättern 339
Ein Array mit zufälligen Ganzzahlen ohne Duplikate zurückgeben 341
Einen Bereich zufällig anordnen 342
Einen Bereich sortieren 344
Windows-API-Aufrufe 345
API-Deklarationen verstehen 345
32-Bit- und 64-Bit-Deklarationen 346
Dateiverknüpfung ermitteln 347
Informationen zum Standarddrucker abrufen 348
Informationen zu den Bildschirmen abrufen 350
Lesen aus und schreiben in die Registrierungsdatenbank 351
Aus der Registrierungsdatenbank lesen 352
In die Registrierungsdatenbank schreiben 352
Teil II Fortgeschrittene VBA-Techniken 355
Kapitel 8 Mit PivotTables arbeiten 357
Ein einführendes Beispiel in PivotTables 357
Eine PivotTable erstellen 358
Den aufgezeichneten Code für die PivotTable untersuchen 360
Den aufgezeichneten PivotTable-Code aufräumen 361
Eine komplexere PivotTable erstellen 363
Der Code, der die PivotTable erstellt 365
So funktioniert der Code für die komplexe PivotTable 366
Mehrere PivotTables erstellen 368
Eine PivotTable in eine normale Tabelle konvertieren 372
Kapitel 9 Mit Diagrammen arbeiten 375
Das Innenleben von Diagrammen 375
Speicherorte von Diagrammen 375
Der Makrorekorder und Diagramme 376
Das Chart-Objektmodell 377
Ein eingebettetes Diagramm erstellen 378
Ein Diagramm auf einem Diagrammblatt erstellen 380
Diagramme bearbeiten 380
Mit VBA ein Diagramm aktivieren 381
Ein Diagramm verschieben 382
Mit VBA ein Diagramm deaktivieren 384
Prüfen, ob ein Diagramm aktiviert ist 384
Diagramme aus den Sammlungen ChartObjects und Charts entfernen 385
Alle Diagramme in einer Schleife durchlaufen 386
Größe und Ausrichtung eines ChartObject ändern 389
Ganz viele Diagramme erstellen 390
Ein Diagramm exportieren 393
Alle Grafiken exportieren 393
Die im Diagramm verwendeten Daten ändern 395
Diagrammdaten in Abhängigkeit von der aktiven Zelle ändern 396
Mit VBA die in einem Diagramm dargestellten Datenbereiche ermitteln 398
Mit VBA beliebige Datenbeschriftungen in einem Diagramm anzeigen 401
Ein Diagramm in einem UserForm anzeigen 405
Diagrammereignisse verstehen 408
Ein Beispiel für die Verwendung von Diagrammereignissen 409
Ereignisse für ein eingebettetes Diagramm aktivieren 411
Beispiel: Diagrammereignisse für ein eingebettetes Diagramm verwenden 413
VBA-Tricks für Diagramme 415
Eingebettete Diagramme auf einer eigenen Seite ausdrucken 415
Verknüpfung zwischen Diagramm und Datenquelle aufheben 416
Mit dem Ereignis MouseOver Text anzeigen 419
Ein Diagramm scrollen 421
Mit Sparklinediagrammen arbeiten 423
Kapitel 10 Zusammenarbeit mit anderen Anwendungen 427
Microsoft-Office-Automatisierung verstehen 427
Das Konzept der Bindung verstehen 427
Frühe Bindung 428
Späte Bindung 429
Ein einfaches Automatisierungsbeispiel 430
Access von Excel aus automatisieren 431
Eine Access-Abfrage von Excel aus ausführen 431
Ein Access-Makro von Excel aus starten 432
Word von Excel aus automatisieren 433
Excel-Daten an ein Word-Dokument senden 434
Seriendruck mit einem Word-Dokument simulieren 435
PowerPoint von Excel aus automatisieren 438
Excel-Daten an eine PowerPoint-Präsentation senden 438
Alle Excel-Diagramme an eine PowerPoint-Präsentation senden 439
Eine Arbeitsmappe in eine PowerPoint-Präsentation konvertieren 441
Outlook von Excel aus automatisieren 443
Die aktive Arbeitsmappe als Anhang mailen 443
Einen bestimmten Zellbereich als Anlage mailen 444
Ein einzelnes Arbeitsblatt als Anhang mailen 446
E-Mail an alle Adressen in Ihrer Kontaktliste senden 447
Andere Anwendungen von Excel aus starten 448
Die VBA-Funktion Shell verwenden 449
Die Windows-API-Funktion ShellExecute verwenden 451
AppActivate verwenden 453
Dialogfelder der Systemsteuerung starten 454
Kapitel 11 Externe Daten und Dateien verwenden 455
Externe Datenverbindungen verwenden 455
Manuell eine Datenverbindung einrichten 455
Datenverbindungen manuell bearbeiten 460
Mit VBA dynamische Datenverbindungen erstellen 461
Alle Verbindungen in einer Arbeitsmappe durchlaufen 464
Externe Daten mit ADO und VBA abrufen 465
Die Verbindungszeichenfolge 465
Ein Recordset deklarieren 467
Auf die ADO-Objektbibliothek verweisen 467
Alles im Code zusammenbringen 469
ADO mit der aktiven Arbeitsmappe verwenden 470
Grundlagen für das Arbeiten mit Textdateien 472
Eine Textdatei öffnen 473
Eine Textdatei lesen 474
In eine Textdatei schreiben 474
Eine Dateinummer abrufen 474
Lese-/Schreibposition ermitteln oder festlegen 475
Anweisungen für das Lesen und das Schreiben 476
Beispiele für das Arbeiten mit Textdateien 476
Daten aus einer Textdatei importieren 476
Einen Zellbereich in eine Textdatei exportieren 477
Eine Textdatei in einen Bereich importieren 478
Die Excel-Nutzung protokollieren 479
Eine Textdatei filtern 480
Gebräuchliche Dateioperationen durchführen 481
Die dateibezogenen VBA-Anweisungen verwenden 481
Das Objekt FileSystemObject verwenden 487
Zippen und Entzippen von Dateien 489
Dateien zippen 490
Eine Datei entzippen 491
Teil III Mit UserForms arbeiten 493
Kapitel 12 Benutzerdefinierte Dialogfelder 495
Bevor Sie dieses UserForm erstellen . . . 495
Eingabefelder 495
Die VBA-Funktion InputBox 495
Die Methode Application.InputBox 498
Die VBA-Funktion MsgBox 501
Die Excel-Methode GetOpenFilename 507
Die Excel-Methode GetSaveAsFilename 510
Abfrage eines Verzeichnisses 511
Die eingebauten Dialogfelder von Excel anzeigen 511
Ein Dateneingabeformular anzeigen 514
Das Datenformular bereitstellen 515
Ein Dateneingabeformular mit VBA anzeigen 516
Kapitel 13 UserForms - eine Einführung 517
Wie Excel benutzerdefinierte Dialogfelder verarbeitet 517
Ein neues UserForm einfügen 518
Einem UserForm Steuerelemente hinzufügen 518
Steuerelemente in der Toolsammlung 519
Kontrollkästchen - CheckBox 520
Kombinationsfeld - ComboBox 520
CommandButton - Befehlsschaltfläche 521
Frame - Rahmen 521
Image - Bildfeld 521
Label - Beschriftung 521
ListBox - Listenfeld 521
MultiPage - Element mit mehreren Registerkarten 521
OptionButton - Optionsfelder 522
RefEdit - Zellbereich 522
ScrollBar - Bildlaufleiste 522
SpinButton - Drehfeld 522
TabStrip - Registerfeld 522
TextBox - Textfeld 522
ToggleButton - Umschalter 523
Anpassung von UserForm-Steuerelementen 524
Die Eigenschaften eines Steuerelements anpassen 526
Das Eigenschaften-Fenster 526
Gemeinsame Eigenschaften 528
Bequemlichkeit für Tastaturbenutzer 530
Ein UserForm anzeigen 532
Die Anzeigeposition anpassen 533
Ein nicht modales UserForm anzeigen 533
Ein UserForm basierend auf einer Variablen anzeigen 533
Ein UserForm laden 534
Ereignisprozeduren 534
Ein UserForm schließen 534
Ein UserForm erstellen: Ein Beispiel 536
Das UserForm erstellen 536
Code schreiben, mit dem das Dialogfeld angezeigt wird 539
Das Dialogfeld testen 540
Ereignisprozeduren hinzufügen 541
Das fertige Dialogfeld 543
UserForm-Ereignisse 543
Informationen über Ereignisse 543
UserForm-Ereignisse 545
Drehfeld-Ereignisse 545
Ein Drehfeld mit einem Textfeld kombinieren 547
Verweise auf UserForm-Steuerelemente 550
Die Werkzeugsammlung anpassen 551
Der Werkzeugsammlung neue Seiten hinzufügen 551
Steuerelemente anpassen oder kombinieren 551
Neue ActiveX-Steuerelemente hinzufügen 553
UserForm-Schablonen erstellen 554
Eine UserForm-Checkliste 555
Kapitel 14 UserForms - Beispiele 557
Ein UserForm als 'Menü' anlegen 557
Befehlsschaltflächen in einem UserForm verwenden 557
Ein Listenfeld in einem UserForm verwenden 558
Auswahl von Bereichen in einem UserForm 560
Einen Begrüßungsbildschirm erstellen 561
Die Schließen-Schaltfläche eines UserForms deaktivieren 564
Die Größe eines UserForms ändern 565
Ein Blatt aus einem UserForm heraus vergrößern und blättern 567
Listenfeld-Techniken 569
Einem ListBox-Steuerelement Elemente hinzufügen 570
Das in einem Listenfeld ausgewählte Element ermitteln 575
Mehrfachauswahlen in einem Listenfeld bestimmen 576
Mehrere Listen in einem einzelnen Listenfeld 577
Übertragung von Listenfeldelementen 578
Elemente in einem Listenfeld verschieben 580
Mehrspaltige Listenfelder 582
Mit einem Listenfeld Zeilen in einem Arbeitsblatt auswählen 584
Mit einem Listenfeld ein Blatt aktivieren 586
Ein Listenfeld über ein Textfeld filtern 589
Das MultiPage-Steuerelement in einem UserForm verwenden 592
Ein externes Steuerelement verwenden 593
Ein Beschriftungsfeld animieren 596
Kapitel 15 Erweiterte UserForm-Techniken 599
Ein nicht modales Dialogfeld 599
Eine Fortschrittsanzeige anzeigen 603
Eine unabhängige Fortschrittsanzeige erstellen 604
Eine in ein UserForm integrierte Fortschrittsanzeige anzeigen 608
Eine nicht grafische Fortschrittsanzeige erstellen 612
Assistenten erstellen 615
Einrichtung des 'MultiPage'-Steuerelements für den Assistenten 616
Dem UserForm des Assistenten die Schaltflächen hinzufügen 617
Die Schaltflächen des Assistenten programmieren 617
Abhängigkeiten in einem Assistenten programmieren 619
Die Aufgabe mit dem Assistenten erledigen 621
Die 'MsgBox'-Funktion emulieren 622
'MsgBox'-Emulation: 'MyMsgBox'-Code 623
Wie die 'MyMsgBox'-Funktion funktioniert 624
Verwendung der 'MyMsgBox'-Funktion 626
Ein UserForm mit beweglichen Steuerelementen 626
Ein UserForm ohne Titelleiste 628
Mit einem UserForm eine Symbolleiste simulieren 630
Ein Aufgabenfeld mit einem UserForm emulieren 632
Ein größenverstellbares UserForm 634
Mehrere UserForm-Steuerelemente mit einer Ereignisprozedur verarbeiten 638
Auswahl einer Farbe in einem UserForm 641
Ein Diagramm in einem UserForm anzeigen 644
Ein Diagramm als GIF-Datei speichern 645
Die 'Picture'-Eigenschaft des Image-Steuerelements ändern 645
Ein halbtransparentes UserForm erstellen 645
Ein Puzzle auf einem UserForm 647
Video Poker auf einem UserForm 649
Teil IV Excel-Anwendungen entwickeln 651
Kapitel 16 Add-Ins erstellen und verwenden 653
Was ist ein Add-In? 653
Vergleich eines Add-Ins mit einer Standardarbeitsmappe 653
Warum erstellt man Add-Ins? 654
Der Add-In-Manager von Excel 656
Ein Add-In erstellen 658
Ein Add-In-Beispiel 659
Aussagekräftige Informationen für das Beispiel-Add-In hinzufügen 661
Ein Add-In erstellen 661
Ein Add-In installieren 662
Das Add-In testen 663
Ein Add-In weitergeben 664
Ein Add-In ändern 665
XLAM- und XLSM-Dateien vergleichen 666
Die XLAM-Datei als Element der VBA-Collection 666
Sichtbarkeit von XLSM- und XLAM-Dateien 666
Arbeitsblätter und Diagrammblätter in XLSM- und XLAM-Dateien 667
Zugriff auf VBA-Prozeduren in einem Add-In 668
Add-Ins mit VBA manipulieren 671
Der AddIns-Collection ein Element hinzufügen 672
Ein Element aus der AddIns-Collection entfernen 673
AddIn-Objekteigenschaften 673
Auf ein Add-In als Arbeitsmappe zugreifen 676
AddIn-Objektereignisse 677
Die Leistung von Add-Ins optimieren 677
Spezielle Probleme mit Add-Ins 678
Sicherstellen, dass ein Add-In installiert ist 678
Von einem Add-In aus auf andere Dateien verweisen 681
Die richtige Excel-Version für Ihr Add-In erkennen 681
Kapitel 17 Mit dem Menüband arbeiten 683
Menüband - Grundlagen 683
Das Menüband anpassen 685
Dem Menüband eine Schaltfläche hinzufügen 685
Der Symbolleiste für den Schnellzugriff eine Schaltfläche hinzufügen 688
Die Einschränkungen der Menüband-Anpassungen verstehen 690
Ein benutzerdefiniertes Menüband erstellen 691
Einer vorhandenen Registerkarte eine Schaltfläche hinzufügen 691
Einer vorhandenen Registerkarte ein Kontrollkästchen hinzufügen 696
Menüband-Steuerelemente - Demo 701
Beispiel für ein dynamicMenu-Steuerelement 710
Weitere Informationen zur Anpassung des Menübands 713
VBA für das Menüband verwenden 714
Zugriff auf ein Menüband-Steuerelement 715
Mit dem Menüband arbeiten 716
Eine Registerkarte aktivieren 718
Eine Symbolleiste im alten Stil erstellen 718
Einschränkungen der alten Symbolleisten aus Excel 2007 und früher 718
Code für die Erstellung einer Symbolleiste 719
Kapitel 18 Mit Kontextmenüs arbeiten 723
CommandBar-Übersicht 723
CommandBar-Typen 723
Kontextmenüs auflisten 724
Verweise auf CommandBars 725
Verweis auf Steuerelemente in einer CommandBar 726
Eigenschaften von CommandBar-Steuerelementen 728
Anzeige aller Kontextmenüelemente 728
Mit VBA Kontextmenüs anpassen 731
Kontextmenü und das Single-Document Interface 731
Ein Kontextmenü zurücksetzen 734
Ein Kontextmenü deaktivieren 735
Einträge von Kontextmenüs deaktivieren 736
Dem Kontextmenü 'Zelle' einen neuen Eintrag hinzufügen 736
Einem Kontextmenü ein Untermenü hinzufügen 739
Ein Kontextmenü auf eine einzelne Arbeitsmappe beschränken 741
Kontextmenüs und Ereignisse 742
Menüs automatisch hinzufügen und entfernen 742
Kontextmenüeinträge deaktivieren oder ausblenden 743
Ein kontextabhängiges Kontextmenü erstellen 743
Kapitel 19 Hilfe für Ihre Anwendungen bereitstellen 747
Hilfe für Ihre Excel-Anwendungen 747
Hilfesysteme, die Excel-Komponenten verwenden 749
Zellenkommentare für die Hilfe verwenden 750
Ein Textfeld für Hilfe verwenden 751
Hilfe auf einem Arbeitsblatt anzeigen 752
Hilfe in einem UserForm anzeigen 754
Hilfe in einem Webbrowser anzeigen 758
HTML-Dateien verwenden 758
Eine MHTML-Datei verwenden 759
Das HTML-Hilfesystem verwenden 761
Mit der Help-Methode HTML-Hilfe anzeigen 764
Ihrer Prozedur eine Hilfedatei zuordnen 765
Einer VBA-Funktion ein Hilfethema zuordnen 765
Kapitel 20 Klassenmodule 769
Was ist e
Über die Autoren 7
Einleitung 27
Themen dieses Buches 27
Was Sie wissen sollten 28
Was Sie brauchen 28
Konventionen in diesem Buch 28
Excel-Befehle 29
Visual-Basic-Editor-Befehle 29
Tastatureingaben 29
Was die Symbole bedeuten 30
Wie dieses Buch aufgebaut ist 31
Teil I: Einführung in Excel-VBA 31
Teil II: Fortgeschrittene VBA-Techniken 31
Teil III: Mit UserForms arbeiten 31
Teil IV: Excel-Anwendungen entwickeln 32
Teil V: Anhang 32
Über die Website zum Buch 32
Teil I Einführung in Excel-VBA 33
Kapitel 1 Grundlagen der Entwicklung von Arbeitsblattanwendungen 35
Was ist eine Arbeitsblattanwendung 35
Schritte bei der Entwicklung der Anwendung 36
Die Anforderungen der Anwender ermitteln 37
Eine Anwendung planen, die die Anforderungen der Anwender erfüllt 38
Die am besten geeignete Benutzeroberfläche festlegen 40
Anpassen des Menübands 41
Anpassen der Kontextmenüs 41
Tastenkombinationen definieren 41
Benutzerdefinierte Dialogfelder erstellen 42
ActiveX-Steuerelemente auf einem Arbeitsblatt verwenden 43
Die Anwendung entwickeln 45
Denken Sie immer an den Anwender 45
Die Anwendung testen 45
Die Anwendung narrensicher machen 46
Erstellen Sie eine ästhetisch ansprechende und intuitive Anwendung 48
Ein Hilfesystem erstellen 49
Dokumentieren Sie Ihre Entwicklungsarbeit 50
Die Anwendung an die Benutzer verteilen 50
Die Anwendung updaten, falls nötig 51
Weitere Punkte, die für die Entwicklung wichtig sind 51
Die beim Anwender installierte Excel-Version 51
Probleme aufgrund der Sprache 51
Systemgeschwindigkeit 52
Videomodi 52
Kapitel 2 Einführung in Visual Basic for Applications 55
Sich mit dem Makrorekorder einen Vorsprung verschaffen 55
Ihr erstes Makro erstellen 56
Das Makro untersuchen 57
Ihr Makro testen 58
Ihr Makro bearbeiten 59
Absolute und relative Makroaufzeichnung im Vergleich 59
Makros mit absoluten Verweisen aufzeichnen 59
Makros mit relativen Verweisen aufzeichnen 62
Weitere Konzepte für die Makroaufzeichnung 64
Dateierweiterungen für Arbeitsmappen mit Makros 65
Makrosicherheit in Excel 65
Vertrauenswürdige Speicherorte 65
Makros in Ihrer persönlichen Makroarbeitsmappe abspeichern 66
Ein Makro einer Schaltfläche oder einem anderen Formularsteuerelement
zuweisen 67
Ein Makro in die Symbolleiste für den Schnellzugriff einfügen 69
In Visual Basic-Editor arbeiten 70
Die VBE-Komponenten verstehen 70
Mit dem Projekt-Explorer arbeiten 72
Ein neues VBA-Modul einfügen 73
Ein VBA-Modul entfernen 74
Im Codefenster arbeiten 75
Fenster minimieren und maximieren 75
VBA-Code in ein Modul einfügen 75
Die VBA-Entwicklungsumgebung anpassen 78
Die Registerkarte 'Editor' 78
Die Registerkarte 'Editorformat' 80
Die Registerkarte 'Allgemein' 81
Die Registerkarte 'Verankern' 82
VBA-Grundlagen 82
Objekte verstehen 83
Sammlungen verstehen 84
Eigenschaften verstehen 84
Methoden verstehen 87
Tiefer einsteigen: Range-Objekte einsetzen 89
Die Eigenschaften des Range-Objekts finden 89
Die Eigenschaft Range 89
Die Eigenschaft Cells 91
Die Eigenschaft Offset 93
Wichtige Konzepte, die Sie sich merken sollten 95
Keine Panik - Sie sind nicht allein 97
Lesen Sie den Rest dieses Buches 97
Lassen Sie sich von Excel beim Schreiben Ihres Makros helfen 97
Verwenden Sie die VBA-Hilfedateien 97
Verwenden Sie den Objektkatalog 98
Stibitzen Sie Code im Internet 100
Userforen optimal nutzen 100
Besuchen Sie Experten-Blogs 101
Suchen Sie auf YouTube nach Schulungsvideos 102
Vom Office Dev Center lernen 102
Analysieren Sie andere Excel-Dateien in Ihrem Unternehmen 102
Fragen Sie die Excel-Experten vor Ort 102
Kapitel 3 VBA-Programmiergrundlagen 103
VBA-Sprachelemente - Ein Überblick 103
Kommentare 105
Variablen, Datentypen und Konstanten 107
Datentypen definieren 108
Variablen deklarieren 110
Den Datentyp ermitteln 111
Zwingen Sie sich, alle Variablen zu deklarieren 111
Gültigkeitsbereich von Variablen 112
Öffentliche Variablen 115
Konstanten verwenden 115
Mit Zeichenfolgen arbeiten 117
Mit Datumswerten arbeiten 117
Zuweisungsanweisungen 119
Arrays 121
Arrays deklarieren 121
Mehrdimensionale Arrays deklarieren 122
Dynamische Arrays deklarieren 123
Objektvariablen 123
Benutzerdefinierte Datentypen 125
Eingebaute Funktionen 126
Mit Objekten und Sammlungen arbeiten 129
Das With-End With-Konstrukt 129
Die For Each-Next-Schleife 130
Die Codeausführung steuern 132
GoTo-Anweisungen 133
If-Then-Verzweigung 133
Select Case-Verzweigung 138
Anweisungsblöcke in einer Schleife ausführen 141
Do Until-Schleifen 148
Kapitel 4 VBA-Sub-Prozeduren verwenden 151
Über Prozeduren 151
Eine Sub-Prozedur deklarieren 152
Gültigkeitsbereich und Sichtbarkeit einer Prozedur festlegen 153
Sub-Prozeduren ausführen 154
Eine Prozedur mit dem Befehl 'Sub/UserForm ausführen' starten 155
Eine Prozedur vom Dialogfeld 'Makro' aus ausführen 155
Eine Prozedur durch Drücken einer Tastenkombination ausführen 156
Eine Prozedur über das Menüband ausführen 158
Eine Prozedur über ein benutzerdefiniertes Kontextmenü ausführen 158
Eine Prozedur von einer anderen Prozedur aus ausführen 158
Eine Prozedur in einem anderen Modul ausführen 160
Eine Prozedur in einer anderen Arbeitsmappe aufrufen 160
Eine Prozedur durch Anklicken eines Objekts ausführen 163
Eine Prozedur beim Eintritt eines Ereignisses ausführen 165
Eine Prozedur vom Direktfenster aus ausführen 165
Argumente an Prozeduren übergeben 166
Techniken zur Behandlung von Fehlern 170
Fehler abfangen 170
Beispiele für die Fehlerbehandlung 172
Ein realistisches Beispiel, das Sub-Prozeduren verwendet 175
Das Ziel 176
Anforderungen an das Projekt 176
Was Sie wissen 176
Der Ansatz 177
Ein paar vorbereitende Aufzeichnungen 178
Das anfängliche Setup 179
Den Code schreiben 180
Die Prozedur für die Sortierung schreiben 181
Mehr Tests 186
Die Probleme beheben 187
Verfügbarkeit des Tools 190
Das Projekt evaluieren 191
Kapitel 5 Funktionsprozeduren erstellen 193
Sub-Prozeduren und Funktionsprozeduren im Vergleich 193
Warum benutzerdefinierte Funktionen erstellen 194
Ein einführendes Beispiel für eine Funktion 194
Die Funktion in einem Tabellenblatt verwenden 195
Die Funktion in einer VBA-Prozedur verwenden 196
Die benutzerdefinierte Funktion analysieren 197
Funktionsprozeduren 199
Gültigkeitsbereich von Funktionsprozeduren 200
Funktionsprozeduren ausführen 201
Funktionsargumente 205
Beispiele für Funktionsprozeduren 205
Funktionsprozeduren ohne Argumente 205
Eine Funktionsprozedur mit einem Argument 208
Eine Funktionsprozedur mit zwei Argumenten 211
Eine Funktionsprozedur mit einem Array-Argument 212
Eine Funktionsprozedur mit optionalen Argumenten 213
Eine Funktionsprozedur, die ein VBA-Array zurückgibt 215
Eine Funktionsprozedur, die einen Fehlerwert zurückgibt 218
Eine Funktionsprozedur mit einer beliebigen Anzahl Argumenten 219
Die Excel-Funktion SUMME emulieren 221
Erweiterte Datumsfunktionen 224
Funktionen debuggen 226
Das Dialogfeld 'Funktion einfügen' berücksichtigen 228
Die Methode 'MacroOptions' verwenden 228
Eine Funktionskategorie angeben 230
Eine Funktionsbeschreibung von Hand hinzufügen 232
Benutzerdefinierte Funktionen in Add-Ins speichern 232
Die Windows-API verwenden 233
Windows-API-Beispiele 234
Das Windows-Verzeichnis ermitteln 234
Den Status der Umschalttasten ermitteln 235
Mehr über API-Funktionen lernen 236
Kapitel 6 Die Excel-Ereignisse verstehen 237
Was Sie über Ereignisse wissen sollten 237
Ereignissequenzen verstehen 238
Wo kommen die Prozeduren für die Ereignisverarbeitung hin 238
Ereignisse deaktivieren 240
Den Code für eine Ereignisprozedur eingeben 242
Prozeduren zur Ereignisverarbeitung, die Argumente verwenden 243
Sich mit den Ereignissen auf der Arbeitsmappenebene vertraut machen 245
Das Ereignis Open 246
Das Ereignis Activate 247
Das Ereignis SheetActivate 247
Das Ereignis NewSheet 247
Das Ereignis BeforeSave 248
Das Ereignis Deactivate 248
Das Ereignis BeforePrint 249
Das Ereignis BeforeClose 250
Die Arbeitsblattereignisse untersuchen 253
Das Ereignis Change 253
Einen bestimmten Bereich auf Änderungen überwachen 254
Das Ereignis SelectionChange 260
Das Ereignis BeforeDoubleClick 261
Das Ereignis BeforeRightClick 262
Ereignisse auf Anwendungsebene überwachen 263
Ereignisse auf Anwendungsebene aktivieren 264
Feststellen, wann eine Arbeitsmappe geöffnet wird 265
Ereignisse auf Anwendungsebene überwachen 266
Ereignisse verwenden, die nicht mit einem Objekt verknüpft sind 267
Das Ereignis OnTime 267
Das Ereignis OnKey 269
Kapitel 7 VBA-Programmierung: Beispiele und Techniken 275
Am Beispiel lernen 275
Mit Bereichen arbeiten 276
Einen Bereich kopieren 276
Einen Bereich verschieben 277
Einen Bereich variabler Größe kopieren 277
Unterschiedliche Arten von Bereichen auswählen und erkennen 279
Die Größe eines Bereichs ändern 282
Einen Zellwert anfordern 282
Einen Wert in die nächste leere Zelle eingeben 284
Ein Makro anhalten, damit der Anwender einen Bereich auswählen kann 285
Ausgewählte Zellen zählen 287
Den Typ des ausgewählten Bereichs bestimmen 288
Einen Bereich effizient in einer Schleife durchlaufen 290
Alle leeren Zeilen löschen 294
Zeilen beliebig oft duplizieren 295
Feststellen, ob ein Bereich in einem anderen enthalten ist 296
Den Datentyp einer Zelle bestimmen 297
Bereiche lesen und schreiben 298
Ein besserer Ansatz, um einen Bereich zu schreiben 300
Eindimensionale Arrays übertragen 302
Einen Bereich in ein Variant-Array übertragen 302
Zellen anhand ihres Wertes auswählen 303
Einen nicht zusammenhängenden Bereich kopieren 305
Mit Arbeitsmappen und Blättern arbeiten 307
Alle Arbeitsmappen speichern 307
Alle Arbeitsmappen speichern und schließen 308
Alles, bis auf die Auswahl ausblenden 308
Ein Inhaltsverzeichnis mit Hyperlinks erstellen 310
Tabellenblätter synchronisieren 311
VBA-Techniken 312
Eine boolesche Eigenschaft umschalten 312
Das Datum und die Zeit anzeigen 313
Eine freundliche Zeit anzeigen 315
Liste der installierten Schriftarten erstellen 317
Ein Array sortieren 318
Eine Reihe von Dateien bearbeiten 320
Einige nützliche Funktionen, die Sie in Ihrem Code verwenden können 322
Die Funktion FileExists 322
Die Funktion FileNameOnly 322
Die Funktion PathExists 323
Die Funktion RangeNameExists 323
Die Funktion SheetExists 324
Die Funktion WorkbookIsOpen 324
Einen Wert aus einer geschlossenen Arbeitsmappe abrufen 325
Einige nützliche Arbeitsblattfunktionen 327
Informationen über die Zellformatierung zurückgeben 328
Ein sprechendes Tabellenblatt 329
Datum anzeigen, an dem eine Datei gespeichert oder gedruckt wurde 330
Übergeordnete Objekte verstehen 331
Zellen zählen, deren Wert zwischen zwei Werten liegen 332
Die letzte, nicht leere Zelle einer Spalte oder Zeile ermitteln 333
Entspricht eine Zeichenfolge einem Muster? 334
Das n-te Elemente aus einer Zeichenfolge extrahieren 336
Eine Zahl in Worten 336
Eine Funktion mit mehreren Funktionen 337
Die Funktion SHEETOFFSET 338
Den größten Wert einer Zelle in allen Arbeitsblättern 339
Ein Array mit zufälligen Ganzzahlen ohne Duplikate zurückgeben 341
Einen Bereich zufällig anordnen 342
Einen Bereich sortieren 344
Windows-API-Aufrufe 345
API-Deklarationen verstehen 345
32-Bit- und 64-Bit-Deklarationen 346
Dateiverknüpfung ermitteln 347
Informationen zum Standarddrucker abrufen 348
Informationen zu den Bildschirmen abrufen 350
Lesen aus und schreiben in die Registrierungsdatenbank 351
Aus der Registrierungsdatenbank lesen 352
In die Registrierungsdatenbank schreiben 352
Teil II Fortgeschrittene VBA-Techniken 355
Kapitel 8 Mit PivotTables arbeiten 357
Ein einführendes Beispiel in PivotTables 357
Eine PivotTable erstellen 358
Den aufgezeichneten Code für die PivotTable untersuchen 360
Den aufgezeichneten PivotTable-Code aufräumen 361
Eine komplexere PivotTable erstellen 363
Der Code, der die PivotTable erstellt 365
So funktioniert der Code für die komplexe PivotTable 366
Mehrere PivotTables erstellen 368
Eine PivotTable in eine normale Tabelle konvertieren 372
Kapitel 9 Mit Diagrammen arbeiten 375
Das Innenleben von Diagrammen 375
Speicherorte von Diagrammen 375
Der Makrorekorder und Diagramme 376
Das Chart-Objektmodell 377
Ein eingebettetes Diagramm erstellen 378
Ein Diagramm auf einem Diagrammblatt erstellen 380
Diagramme bearbeiten 380
Mit VBA ein Diagramm aktivieren 381
Ein Diagramm verschieben 382
Mit VBA ein Diagramm deaktivieren 384
Prüfen, ob ein Diagramm aktiviert ist 384
Diagramme aus den Sammlungen ChartObjects und Charts entfernen 385
Alle Diagramme in einer Schleife durchlaufen 386
Größe und Ausrichtung eines ChartObject ändern 389
Ganz viele Diagramme erstellen 390
Ein Diagramm exportieren 393
Alle Grafiken exportieren 393
Die im Diagramm verwendeten Daten ändern 395
Diagrammdaten in Abhängigkeit von der aktiven Zelle ändern 396
Mit VBA die in einem Diagramm dargestellten Datenbereiche ermitteln 398
Mit VBA beliebige Datenbeschriftungen in einem Diagramm anzeigen 401
Ein Diagramm in einem UserForm anzeigen 405
Diagrammereignisse verstehen 408
Ein Beispiel für die Verwendung von Diagrammereignissen 409
Ereignisse für ein eingebettetes Diagramm aktivieren 411
Beispiel: Diagrammereignisse für ein eingebettetes Diagramm verwenden 413
VBA-Tricks für Diagramme 415
Eingebettete Diagramme auf einer eigenen Seite ausdrucken 415
Verknüpfung zwischen Diagramm und Datenquelle aufheben 416
Mit dem Ereignis MouseOver Text anzeigen 419
Ein Diagramm scrollen 421
Mit Sparklinediagrammen arbeiten 423
Kapitel 10 Zusammenarbeit mit anderen Anwendungen 427
Microsoft-Office-Automatisierung verstehen 427
Das Konzept der Bindung verstehen 427
Frühe Bindung 428
Späte Bindung 429
Ein einfaches Automatisierungsbeispiel 430
Access von Excel aus automatisieren 431
Eine Access-Abfrage von Excel aus ausführen 431
Ein Access-Makro von Excel aus starten 432
Word von Excel aus automatisieren 433
Excel-Daten an ein Word-Dokument senden 434
Seriendruck mit einem Word-Dokument simulieren 435
PowerPoint von Excel aus automatisieren 438
Excel-Daten an eine PowerPoint-Präsentation senden 438
Alle Excel-Diagramme an eine PowerPoint-Präsentation senden 439
Eine Arbeitsmappe in eine PowerPoint-Präsentation konvertieren 441
Outlook von Excel aus automatisieren 443
Die aktive Arbeitsmappe als Anhang mailen 443
Einen bestimmten Zellbereich als Anlage mailen 444
Ein einzelnes Arbeitsblatt als Anhang mailen 446
E-Mail an alle Adressen in Ihrer Kontaktliste senden 447
Andere Anwendungen von Excel aus starten 448
Die VBA-Funktion Shell verwenden 449
Die Windows-API-Funktion ShellExecute verwenden 451
AppActivate verwenden 453
Dialogfelder der Systemsteuerung starten 454
Kapitel 11 Externe Daten und Dateien verwenden 455
Externe Datenverbindungen verwenden 455
Manuell eine Datenverbindung einrichten 455
Datenverbindungen manuell bearbeiten 460
Mit VBA dynamische Datenverbindungen erstellen 461
Alle Verbindungen in einer Arbeitsmappe durchlaufen 464
Externe Daten mit ADO und VBA abrufen 465
Die Verbindungszeichenfolge 465
Ein Recordset deklarieren 467
Auf die ADO-Objektbibliothek verweisen 467
Alles im Code zusammenbringen 469
ADO mit der aktiven Arbeitsmappe verwenden 470
Grundlagen für das Arbeiten mit Textdateien 472
Eine Textdatei öffnen 473
Eine Textdatei lesen 474
In eine Textdatei schreiben 474
Eine Dateinummer abrufen 474
Lese-/Schreibposition ermitteln oder festlegen 475
Anweisungen für das Lesen und das Schreiben 476
Beispiele für das Arbeiten mit Textdateien 476
Daten aus einer Textdatei importieren 476
Einen Zellbereich in eine Textdatei exportieren 477
Eine Textdatei in einen Bereich importieren 478
Die Excel-Nutzung protokollieren 479
Eine Textdatei filtern 480
Gebräuchliche Dateioperationen durchführen 481
Die dateibezogenen VBA-Anweisungen verwenden 481
Das Objekt FileSystemObject verwenden 487
Zippen und Entzippen von Dateien 489
Dateien zippen 490
Eine Datei entzippen 491
Teil III Mit UserForms arbeiten 493
Kapitel 12 Benutzerdefinierte Dialogfelder 495
Bevor Sie dieses UserForm erstellen . . . 495
Eingabefelder 495
Die VBA-Funktion InputBox 495
Die Methode Application.InputBox 498
Die VBA-Funktion MsgBox 501
Die Excel-Methode GetOpenFilename 507
Die Excel-Methode GetSaveAsFilename 510
Abfrage eines Verzeichnisses 511
Die eingebauten Dialogfelder von Excel anzeigen 511
Ein Dateneingabeformular anzeigen 514
Das Datenformular bereitstellen 515
Ein Dateneingabeformular mit VBA anzeigen 516
Kapitel 13 UserForms - eine Einführung 517
Wie Excel benutzerdefinierte Dialogfelder verarbeitet 517
Ein neues UserForm einfügen 518
Einem UserForm Steuerelemente hinzufügen 518
Steuerelemente in der Toolsammlung 519
Kontrollkästchen - CheckBox 520
Kombinationsfeld - ComboBox 520
CommandButton - Befehlsschaltfläche 521
Frame - Rahmen 521
Image - Bildfeld 521
Label - Beschriftung 521
ListBox - Listenfeld 521
MultiPage - Element mit mehreren Registerkarten 521
OptionButton - Optionsfelder 522
RefEdit - Zellbereich 522
ScrollBar - Bildlaufleiste 522
SpinButton - Drehfeld 522
TabStrip - Registerfeld 522
TextBox - Textfeld 522
ToggleButton - Umschalter 523
Anpassung von UserForm-Steuerelementen 524
Die Eigenschaften eines Steuerelements anpassen 526
Das Eigenschaften-Fenster 526
Gemeinsame Eigenschaften 528
Bequemlichkeit für Tastaturbenutzer 530
Ein UserForm anzeigen 532
Die Anzeigeposition anpassen 533
Ein nicht modales UserForm anzeigen 533
Ein UserForm basierend auf einer Variablen anzeigen 533
Ein UserForm laden 534
Ereignisprozeduren 534
Ein UserForm schließen 534
Ein UserForm erstellen: Ein Beispiel 536
Das UserForm erstellen 536
Code schreiben, mit dem das Dialogfeld angezeigt wird 539
Das Dialogfeld testen 540
Ereignisprozeduren hinzufügen 541
Das fertige Dialogfeld 543
UserForm-Ereignisse 543
Informationen über Ereignisse 543
UserForm-Ereignisse 545
Drehfeld-Ereignisse 545
Ein Drehfeld mit einem Textfeld kombinieren 547
Verweise auf UserForm-Steuerelemente 550
Die Werkzeugsammlung anpassen 551
Der Werkzeugsammlung neue Seiten hinzufügen 551
Steuerelemente anpassen oder kombinieren 551
Neue ActiveX-Steuerelemente hinzufügen 553
UserForm-Schablonen erstellen 554
Eine UserForm-Checkliste 555
Kapitel 14 UserForms - Beispiele 557
Ein UserForm als 'Menü' anlegen 557
Befehlsschaltflächen in einem UserForm verwenden 557
Ein Listenfeld in einem UserForm verwenden 558
Auswahl von Bereichen in einem UserForm 560
Einen Begrüßungsbildschirm erstellen 561
Die Schließen-Schaltfläche eines UserForms deaktivieren 564
Die Größe eines UserForms ändern 565
Ein Blatt aus einem UserForm heraus vergrößern und blättern 567
Listenfeld-Techniken 569
Einem ListBox-Steuerelement Elemente hinzufügen 570
Das in einem Listenfeld ausgewählte Element ermitteln 575
Mehrfachauswahlen in einem Listenfeld bestimmen 576
Mehrere Listen in einem einzelnen Listenfeld 577
Übertragung von Listenfeldelementen 578
Elemente in einem Listenfeld verschieben 580
Mehrspaltige Listenfelder 582
Mit einem Listenfeld Zeilen in einem Arbeitsblatt auswählen 584
Mit einem Listenfeld ein Blatt aktivieren 586
Ein Listenfeld über ein Textfeld filtern 589
Das MultiPage-Steuerelement in einem UserForm verwenden 592
Ein externes Steuerelement verwenden 593
Ein Beschriftungsfeld animieren 596
Kapitel 15 Erweiterte UserForm-Techniken 599
Ein nicht modales Dialogfeld 599
Eine Fortschrittsanzeige anzeigen 603
Eine unabhängige Fortschrittsanzeige erstellen 604
Eine in ein UserForm integrierte Fortschrittsanzeige anzeigen 608
Eine nicht grafische Fortschrittsanzeige erstellen 612
Assistenten erstellen 615
Einrichtung des 'MultiPage'-Steuerelements für den Assistenten 616
Dem UserForm des Assistenten die Schaltflächen hinzufügen 617
Die Schaltflächen des Assistenten programmieren 617
Abhängigkeiten in einem Assistenten programmieren 619
Die Aufgabe mit dem Assistenten erledigen 621
Die 'MsgBox'-Funktion emulieren 622
'MsgBox'-Emulation: 'MyMsgBox'-Code 623
Wie die 'MyMsgBox'-Funktion funktioniert 624
Verwendung der 'MyMsgBox'-Funktion 626
Ein UserForm mit beweglichen Steuerelementen 626
Ein UserForm ohne Titelleiste 628
Mit einem UserForm eine Symbolleiste simulieren 630
Ein Aufgabenfeld mit einem UserForm emulieren 632
Ein größenverstellbares UserForm 634
Mehrere UserForm-Steuerelemente mit einer Ereignisprozedur verarbeiten 638
Auswahl einer Farbe in einem UserForm 641
Ein Diagramm in einem UserForm anzeigen 644
Ein Diagramm als GIF-Datei speichern 645
Die 'Picture'-Eigenschaft des Image-Steuerelements ändern 645
Ein halbtransparentes UserForm erstellen 645
Ein Puzzle auf einem UserForm 647
Video Poker auf einem UserForm 649
Teil IV Excel-Anwendungen entwickeln 651
Kapitel 16 Add-Ins erstellen und verwenden 653
Was ist ein Add-In? 653
Vergleich eines Add-Ins mit einer Standardarbeitsmappe 653
Warum erstellt man Add-Ins? 654
Der Add-In-Manager von Excel 656
Ein Add-In erstellen 658
Ein Add-In-Beispiel 659
Aussagekräftige Informationen für das Beispiel-Add-In hinzufügen 661
Ein Add-In erstellen 661
Ein Add-In installieren 662
Das Add-In testen 663
Ein Add-In weitergeben 664
Ein Add-In ändern 665
XLAM- und XLSM-Dateien vergleichen 666
Die XLAM-Datei als Element der VBA-Collection 666
Sichtbarkeit von XLSM- und XLAM-Dateien 666
Arbeitsblätter und Diagrammblätter in XLSM- und XLAM-Dateien 667
Zugriff auf VBA-Prozeduren in einem Add-In 668
Add-Ins mit VBA manipulieren 671
Der AddIns-Collection ein Element hinzufügen 672
Ein Element aus der AddIns-Collection entfernen 673
AddIn-Objekteigenschaften 673
Auf ein Add-In als Arbeitsmappe zugreifen 676
AddIn-Objektereignisse 677
Die Leistung von Add-Ins optimieren 677
Spezielle Probleme mit Add-Ins 678
Sicherstellen, dass ein Add-In installiert ist 678
Von einem Add-In aus auf andere Dateien verweisen 681
Die richtige Excel-Version für Ihr Add-In erkennen 681
Kapitel 17 Mit dem Menüband arbeiten 683
Menüband - Grundlagen 683
Das Menüband anpassen 685
Dem Menüband eine Schaltfläche hinzufügen 685
Der Symbolleiste für den Schnellzugriff eine Schaltfläche hinzufügen 688
Die Einschränkungen der Menüband-Anpassungen verstehen 690
Ein benutzerdefiniertes Menüband erstellen 691
Einer vorhandenen Registerkarte eine Schaltfläche hinzufügen 691
Einer vorhandenen Registerkarte ein Kontrollkästchen hinzufügen 696
Menüband-Steuerelemente - Demo 701
Beispiel für ein dynamicMenu-Steuerelement 710
Weitere Informationen zur Anpassung des Menübands 713
VBA für das Menüband verwenden 714
Zugriff auf ein Menüband-Steuerelement 715
Mit dem Menüband arbeiten 716
Eine Registerkarte aktivieren 718
Eine Symbolleiste im alten Stil erstellen 718
Einschränkungen der alten Symbolleisten aus Excel 2007 und früher 718
Code für die Erstellung einer Symbolleiste 719
Kapitel 18 Mit Kontextmenüs arbeiten 723
CommandBar-Übersicht 723
CommandBar-Typen 723
Kontextmenüs auflisten 724
Verweise auf CommandBars 725
Verweis auf Steuerelemente in einer CommandBar 726
Eigenschaften von CommandBar-Steuerelementen 728
Anzeige aller Kontextmenüelemente 728
Mit VBA Kontextmenüs anpassen 731
Kontextmenü und das Single-Document Interface 731
Ein Kontextmenü zurücksetzen 734
Ein Kontextmenü deaktivieren 735
Einträge von Kontextmenüs deaktivieren 736
Dem Kontextmenü 'Zelle' einen neuen Eintrag hinzufügen 736
Einem Kontextmenü ein Untermenü hinzufügen 739
Ein Kontextmenü auf eine einzelne Arbeitsmappe beschränken 741
Kontextmenüs und Ereignisse 742
Menüs automatisch hinzufügen und entfernen 742
Kontextmenüeinträge deaktivieren oder ausblenden 743
Ein kontextabhängiges Kontextmenü erstellen 743
Kapitel 19 Hilfe für Ihre Anwendungen bereitstellen 747
Hilfe für Ihre Excel-Anwendungen 747
Hilfesysteme, die Excel-Komponenten verwenden 749
Zellenkommentare für die Hilfe verwenden 750
Ein Textfeld für Hilfe verwenden 751
Hilfe auf einem Arbeitsblatt anzeigen 752
Hilfe in einem UserForm anzeigen 754
Hilfe in einem Webbrowser anzeigen 758
HTML-Dateien verwenden 758
Eine MHTML-Datei verwenden 759
Das HTML-Hilfesystem verwenden 761
Mit der Help-Methode HTML-Hilfe anzeigen 764
Ihrer Prozedur eine Hilfedatei zuordnen 765
Einer VBA-Funktion ein Hilfethema zuordnen 765
Kapitel 20 Klassenmodule 769
Was ist e
Einleitung 27
Themen dieses Buches 27
Was Sie wissen sollten 28
Was Sie brauchen 28
Konventionen in diesem Buch 28
Excel-Befehle 29
Visual-Basic-Editor-Befehle 29
Tastatureingaben 29
Was die Symbole bedeuten 30
Wie dieses Buch aufgebaut ist 31
Teil I: Einführung in Excel-VBA 31
Teil II: Fortgeschrittene VBA-Techniken 31
Teil III: Mit UserForms arbeiten 31
Teil IV: Excel-Anwendungen entwickeln 32
Teil V: Anhang 32
Über die Website zum Buch 32
Teil I Einführung in Excel-VBA 33
Kapitel 1 Grundlagen der Entwicklung von Arbeitsblattanwendungen 35
Was ist eine Arbeitsblattanwendung 35
Schritte bei der Entwicklung der Anwendung 36
Die Anforderungen der Anwender ermitteln 37
Eine Anwendung planen, die die Anforderungen der Anwender erfüllt 38
Die am besten geeignete Benutzeroberfläche festlegen 40
Anpassen des Menübands 41
Anpassen der Kontextmenüs 41
Tastenkombinationen definieren 41
Benutzerdefinierte Dialogfelder erstellen 42
ActiveX-Steuerelemente auf einem Arbeitsblatt verwenden 43
Die Anwendung entwickeln 45
Denken Sie immer an den Anwender 45
Die Anwendung testen 45
Die Anwendung narrensicher machen 46
Erstellen Sie eine ästhetisch ansprechende und intuitive Anwendung 48
Ein Hilfesystem erstellen 49
Dokumentieren Sie Ihre Entwicklungsarbeit 50
Die Anwendung an die Benutzer verteilen 50
Die Anwendung updaten, falls nötig 51
Weitere Punkte, die für die Entwicklung wichtig sind 51
Die beim Anwender installierte Excel-Version 51
Probleme aufgrund der Sprache 51
Systemgeschwindigkeit 52
Videomodi 52
Kapitel 2 Einführung in Visual Basic for Applications 55
Sich mit dem Makrorekorder einen Vorsprung verschaffen 55
Ihr erstes Makro erstellen 56
Das Makro untersuchen 57
Ihr Makro testen 58
Ihr Makro bearbeiten 59
Absolute und relative Makroaufzeichnung im Vergleich 59
Makros mit absoluten Verweisen aufzeichnen 59
Makros mit relativen Verweisen aufzeichnen 62
Weitere Konzepte für die Makroaufzeichnung 64
Dateierweiterungen für Arbeitsmappen mit Makros 65
Makrosicherheit in Excel 65
Vertrauenswürdige Speicherorte 65
Makros in Ihrer persönlichen Makroarbeitsmappe abspeichern 66
Ein Makro einer Schaltfläche oder einem anderen Formularsteuerelement
zuweisen 67
Ein Makro in die Symbolleiste für den Schnellzugriff einfügen 69
In Visual Basic-Editor arbeiten 70
Die VBE-Komponenten verstehen 70
Mit dem Projekt-Explorer arbeiten 72
Ein neues VBA-Modul einfügen 73
Ein VBA-Modul entfernen 74
Im Codefenster arbeiten 75
Fenster minimieren und maximieren 75
VBA-Code in ein Modul einfügen 75
Die VBA-Entwicklungsumgebung anpassen 78
Die Registerkarte 'Editor' 78
Die Registerkarte 'Editorformat' 80
Die Registerkarte 'Allgemein' 81
Die Registerkarte 'Verankern' 82
VBA-Grundlagen 82
Objekte verstehen 83
Sammlungen verstehen 84
Eigenschaften verstehen 84
Methoden verstehen 87
Tiefer einsteigen: Range-Objekte einsetzen 89
Die Eigenschaften des Range-Objekts finden 89
Die Eigenschaft Range 89
Die Eigenschaft Cells 91
Die Eigenschaft Offset 93
Wichtige Konzepte, die Sie sich merken sollten 95
Keine Panik - Sie sind nicht allein 97
Lesen Sie den Rest dieses Buches 97
Lassen Sie sich von Excel beim Schreiben Ihres Makros helfen 97
Verwenden Sie die VBA-Hilfedateien 97
Verwenden Sie den Objektkatalog 98
Stibitzen Sie Code im Internet 100
Userforen optimal nutzen 100
Besuchen Sie Experten-Blogs 101
Suchen Sie auf YouTube nach Schulungsvideos 102
Vom Office Dev Center lernen 102
Analysieren Sie andere Excel-Dateien in Ihrem Unternehmen 102
Fragen Sie die Excel-Experten vor Ort 102
Kapitel 3 VBA-Programmiergrundlagen 103
VBA-Sprachelemente - Ein Überblick 103
Kommentare 105
Variablen, Datentypen und Konstanten 107
Datentypen definieren 108
Variablen deklarieren 110
Den Datentyp ermitteln 111
Zwingen Sie sich, alle Variablen zu deklarieren 111
Gültigkeitsbereich von Variablen 112
Öffentliche Variablen 115
Konstanten verwenden 115
Mit Zeichenfolgen arbeiten 117
Mit Datumswerten arbeiten 117
Zuweisungsanweisungen 119
Arrays 121
Arrays deklarieren 121
Mehrdimensionale Arrays deklarieren 122
Dynamische Arrays deklarieren 123
Objektvariablen 123
Benutzerdefinierte Datentypen 125
Eingebaute Funktionen 126
Mit Objekten und Sammlungen arbeiten 129
Das With-End With-Konstrukt 129
Die For Each-Next-Schleife 130
Die Codeausführung steuern 132
GoTo-Anweisungen 133
If-Then-Verzweigung 133
Select Case-Verzweigung 138
Anweisungsblöcke in einer Schleife ausführen 141
Do Until-Schleifen 148
Kapitel 4 VBA-Sub-Prozeduren verwenden 151
Über Prozeduren 151
Eine Sub-Prozedur deklarieren 152
Gültigkeitsbereich und Sichtbarkeit einer Prozedur festlegen 153
Sub-Prozeduren ausführen 154
Eine Prozedur mit dem Befehl 'Sub/UserForm ausführen' starten 155
Eine Prozedur vom Dialogfeld 'Makro' aus ausführen 155
Eine Prozedur durch Drücken einer Tastenkombination ausführen 156
Eine Prozedur über das Menüband ausführen 158
Eine Prozedur über ein benutzerdefiniertes Kontextmenü ausführen 158
Eine Prozedur von einer anderen Prozedur aus ausführen 158
Eine Prozedur in einem anderen Modul ausführen 160
Eine Prozedur in einer anderen Arbeitsmappe aufrufen 160
Eine Prozedur durch Anklicken eines Objekts ausführen 163
Eine Prozedur beim Eintritt eines Ereignisses ausführen 165
Eine Prozedur vom Direktfenster aus ausführen 165
Argumente an Prozeduren übergeben 166
Techniken zur Behandlung von Fehlern 170
Fehler abfangen 170
Beispiele für die Fehlerbehandlung 172
Ein realistisches Beispiel, das Sub-Prozeduren verwendet 175
Das Ziel 176
Anforderungen an das Projekt 176
Was Sie wissen 176
Der Ansatz 177
Ein paar vorbereitende Aufzeichnungen 178
Das anfängliche Setup 179
Den Code schreiben 180
Die Prozedur für die Sortierung schreiben 181
Mehr Tests 186
Die Probleme beheben 187
Verfügbarkeit des Tools 190
Das Projekt evaluieren 191
Kapitel 5 Funktionsprozeduren erstellen 193
Sub-Prozeduren und Funktionsprozeduren im Vergleich 193
Warum benutzerdefinierte Funktionen erstellen 194
Ein einführendes Beispiel für eine Funktion 194
Die Funktion in einem Tabellenblatt verwenden 195
Die Funktion in einer VBA-Prozedur verwenden 196
Die benutzerdefinierte Funktion analysieren 197
Funktionsprozeduren 199
Gültigkeitsbereich von Funktionsprozeduren 200
Funktionsprozeduren ausführen 201
Funktionsargumente 205
Beispiele für Funktionsprozeduren 205
Funktionsprozeduren ohne Argumente 205
Eine Funktionsprozedur mit einem Argument 208
Eine Funktionsprozedur mit zwei Argumenten 211
Eine Funktionsprozedur mit einem Array-Argument 212
Eine Funktionsprozedur mit optionalen Argumenten 213
Eine Funktionsprozedur, die ein VBA-Array zurückgibt 215
Eine Funktionsprozedur, die einen Fehlerwert zurückgibt 218
Eine Funktionsprozedur mit einer beliebigen Anzahl Argumenten 219
Die Excel-Funktion SUMME emulieren 221
Erweiterte Datumsfunktionen 224
Funktionen debuggen 226
Das Dialogfeld 'Funktion einfügen' berücksichtigen 228
Die Methode 'MacroOptions' verwenden 228
Eine Funktionskategorie angeben 230
Eine Funktionsbeschreibung von Hand hinzufügen 232
Benutzerdefinierte Funktionen in Add-Ins speichern 232
Die Windows-API verwenden 233
Windows-API-Beispiele 234
Das Windows-Verzeichnis ermitteln 234
Den Status der Umschalttasten ermitteln 235
Mehr über API-Funktionen lernen 236
Kapitel 6 Die Excel-Ereignisse verstehen 237
Was Sie über Ereignisse wissen sollten 237
Ereignissequenzen verstehen 238
Wo kommen die Prozeduren für die Ereignisverarbeitung hin 238
Ereignisse deaktivieren 240
Den Code für eine Ereignisprozedur eingeben 242
Prozeduren zur Ereignisverarbeitung, die Argumente verwenden 243
Sich mit den Ereignissen auf der Arbeitsmappenebene vertraut machen 245
Das Ereignis Open 246
Das Ereignis Activate 247
Das Ereignis SheetActivate 247
Das Ereignis NewSheet 247
Das Ereignis BeforeSave 248
Das Ereignis Deactivate 248
Das Ereignis BeforePrint 249
Das Ereignis BeforeClose 250
Die Arbeitsblattereignisse untersuchen 253
Das Ereignis Change 253
Einen bestimmten Bereich auf Änderungen überwachen 254
Das Ereignis SelectionChange 260
Das Ereignis BeforeDoubleClick 261
Das Ereignis BeforeRightClick 262
Ereignisse auf Anwendungsebene überwachen 263
Ereignisse auf Anwendungsebene aktivieren 264
Feststellen, wann eine Arbeitsmappe geöffnet wird 265
Ereignisse auf Anwendungsebene überwachen 266
Ereignisse verwenden, die nicht mit einem Objekt verknüpft sind 267
Das Ereignis OnTime 267
Das Ereignis OnKey 269
Kapitel 7 VBA-Programmierung: Beispiele und Techniken 275
Am Beispiel lernen 275
Mit Bereichen arbeiten 276
Einen Bereich kopieren 276
Einen Bereich verschieben 277
Einen Bereich variabler Größe kopieren 277
Unterschiedliche Arten von Bereichen auswählen und erkennen 279
Die Größe eines Bereichs ändern 282
Einen Zellwert anfordern 282
Einen Wert in die nächste leere Zelle eingeben 284
Ein Makro anhalten, damit der Anwender einen Bereich auswählen kann 285
Ausgewählte Zellen zählen 287
Den Typ des ausgewählten Bereichs bestimmen 288
Einen Bereich effizient in einer Schleife durchlaufen 290
Alle leeren Zeilen löschen 294
Zeilen beliebig oft duplizieren 295
Feststellen, ob ein Bereich in einem anderen enthalten ist 296
Den Datentyp einer Zelle bestimmen 297
Bereiche lesen und schreiben 298
Ein besserer Ansatz, um einen Bereich zu schreiben 300
Eindimensionale Arrays übertragen 302
Einen Bereich in ein Variant-Array übertragen 302
Zellen anhand ihres Wertes auswählen 303
Einen nicht zusammenhängenden Bereich kopieren 305
Mit Arbeitsmappen und Blättern arbeiten 307
Alle Arbeitsmappen speichern 307
Alle Arbeitsmappen speichern und schließen 308
Alles, bis auf die Auswahl ausblenden 308
Ein Inhaltsverzeichnis mit Hyperlinks erstellen 310
Tabellenblätter synchronisieren 311
VBA-Techniken 312
Eine boolesche Eigenschaft umschalten 312
Das Datum und die Zeit anzeigen 313
Eine freundliche Zeit anzeigen 315
Liste der installierten Schriftarten erstellen 317
Ein Array sortieren 318
Eine Reihe von Dateien bearbeiten 320
Einige nützliche Funktionen, die Sie in Ihrem Code verwenden können 322
Die Funktion FileExists 322
Die Funktion FileNameOnly 322
Die Funktion PathExists 323
Die Funktion RangeNameExists 323
Die Funktion SheetExists 324
Die Funktion WorkbookIsOpen 324
Einen Wert aus einer geschlossenen Arbeitsmappe abrufen 325
Einige nützliche Arbeitsblattfunktionen 327
Informationen über die Zellformatierung zurückgeben 328
Ein sprechendes Tabellenblatt 329
Datum anzeigen, an dem eine Datei gespeichert oder gedruckt wurde 330
Übergeordnete Objekte verstehen 331
Zellen zählen, deren Wert zwischen zwei Werten liegen 332
Die letzte, nicht leere Zelle einer Spalte oder Zeile ermitteln 333
Entspricht eine Zeichenfolge einem Muster? 334
Das n-te Elemente aus einer Zeichenfolge extrahieren 336
Eine Zahl in Worten 336
Eine Funktion mit mehreren Funktionen 337
Die Funktion SHEETOFFSET 338
Den größten Wert einer Zelle in allen Arbeitsblättern 339
Ein Array mit zufälligen Ganzzahlen ohne Duplikate zurückgeben 341
Einen Bereich zufällig anordnen 342
Einen Bereich sortieren 344
Windows-API-Aufrufe 345
API-Deklarationen verstehen 345
32-Bit- und 64-Bit-Deklarationen 346
Dateiverknüpfung ermitteln 347
Informationen zum Standarddrucker abrufen 348
Informationen zu den Bildschirmen abrufen 350
Lesen aus und schreiben in die Registrierungsdatenbank 351
Aus der Registrierungsdatenbank lesen 352
In die Registrierungsdatenbank schreiben 352
Teil II Fortgeschrittene VBA-Techniken 355
Kapitel 8 Mit PivotTables arbeiten 357
Ein einführendes Beispiel in PivotTables 357
Eine PivotTable erstellen 358
Den aufgezeichneten Code für die PivotTable untersuchen 360
Den aufgezeichneten PivotTable-Code aufräumen 361
Eine komplexere PivotTable erstellen 363
Der Code, der die PivotTable erstellt 365
So funktioniert der Code für die komplexe PivotTable 366
Mehrere PivotTables erstellen 368
Eine PivotTable in eine normale Tabelle konvertieren 372
Kapitel 9 Mit Diagrammen arbeiten 375
Das Innenleben von Diagrammen 375
Speicherorte von Diagrammen 375
Der Makrorekorder und Diagramme 376
Das Chart-Objektmodell 377
Ein eingebettetes Diagramm erstellen 378
Ein Diagramm auf einem Diagrammblatt erstellen 380
Diagramme bearbeiten 380
Mit VBA ein Diagramm aktivieren 381
Ein Diagramm verschieben 382
Mit VBA ein Diagramm deaktivieren 384
Prüfen, ob ein Diagramm aktiviert ist 384
Diagramme aus den Sammlungen ChartObjects und Charts entfernen 385
Alle Diagramme in einer Schleife durchlaufen 386
Größe und Ausrichtung eines ChartObject ändern 389
Ganz viele Diagramme erstellen 390
Ein Diagramm exportieren 393
Alle Grafiken exportieren 393
Die im Diagramm verwendeten Daten ändern 395
Diagrammdaten in Abhängigkeit von der aktiven Zelle ändern 396
Mit VBA die in einem Diagramm dargestellten Datenbereiche ermitteln 398
Mit VBA beliebige Datenbeschriftungen in einem Diagramm anzeigen 401
Ein Diagramm in einem UserForm anzeigen 405
Diagrammereignisse verstehen 408
Ein Beispiel für die Verwendung von Diagrammereignissen 409
Ereignisse für ein eingebettetes Diagramm aktivieren 411
Beispiel: Diagrammereignisse für ein eingebettetes Diagramm verwenden 413
VBA-Tricks für Diagramme 415
Eingebettete Diagramme auf einer eigenen Seite ausdrucken 415
Verknüpfung zwischen Diagramm und Datenquelle aufheben 416
Mit dem Ereignis MouseOver Text anzeigen 419
Ein Diagramm scrollen 421
Mit Sparklinediagrammen arbeiten 423
Kapitel 10 Zusammenarbeit mit anderen Anwendungen 427
Microsoft-Office-Automatisierung verstehen 427
Das Konzept der Bindung verstehen 427
Frühe Bindung 428
Späte Bindung 429
Ein einfaches Automatisierungsbeispiel 430
Access von Excel aus automatisieren 431
Eine Access-Abfrage von Excel aus ausführen 431
Ein Access-Makro von Excel aus starten 432
Word von Excel aus automatisieren 433
Excel-Daten an ein Word-Dokument senden 434
Seriendruck mit einem Word-Dokument simulieren 435
PowerPoint von Excel aus automatisieren 438
Excel-Daten an eine PowerPoint-Präsentation senden 438
Alle Excel-Diagramme an eine PowerPoint-Präsentation senden 439
Eine Arbeitsmappe in eine PowerPoint-Präsentation konvertieren 441
Outlook von Excel aus automatisieren 443
Die aktive Arbeitsmappe als Anhang mailen 443
Einen bestimmten Zellbereich als Anlage mailen 444
Ein einzelnes Arbeitsblatt als Anhang mailen 446
E-Mail an alle Adressen in Ihrer Kontaktliste senden 447
Andere Anwendungen von Excel aus starten 448
Die VBA-Funktion Shell verwenden 449
Die Windows-API-Funktion ShellExecute verwenden 451
AppActivate verwenden 453
Dialogfelder der Systemsteuerung starten 454
Kapitel 11 Externe Daten und Dateien verwenden 455
Externe Datenverbindungen verwenden 455
Manuell eine Datenverbindung einrichten 455
Datenverbindungen manuell bearbeiten 460
Mit VBA dynamische Datenverbindungen erstellen 461
Alle Verbindungen in einer Arbeitsmappe durchlaufen 464
Externe Daten mit ADO und VBA abrufen 465
Die Verbindungszeichenfolge 465
Ein Recordset deklarieren 467
Auf die ADO-Objektbibliothek verweisen 467
Alles im Code zusammenbringen 469
ADO mit der aktiven Arbeitsmappe verwenden 470
Grundlagen für das Arbeiten mit Textdateien 472
Eine Textdatei öffnen 473
Eine Textdatei lesen 474
In eine Textdatei schreiben 474
Eine Dateinummer abrufen 474
Lese-/Schreibposition ermitteln oder festlegen 475
Anweisungen für das Lesen und das Schreiben 476
Beispiele für das Arbeiten mit Textdateien 476
Daten aus einer Textdatei importieren 476
Einen Zellbereich in eine Textdatei exportieren 477
Eine Textdatei in einen Bereich importieren 478
Die Excel-Nutzung protokollieren 479
Eine Textdatei filtern 480
Gebräuchliche Dateioperationen durchführen 481
Die dateibezogenen VBA-Anweisungen verwenden 481
Das Objekt FileSystemObject verwenden 487
Zippen und Entzippen von Dateien 489
Dateien zippen 490
Eine Datei entzippen 491
Teil III Mit UserForms arbeiten 493
Kapitel 12 Benutzerdefinierte Dialogfelder 495
Bevor Sie dieses UserForm erstellen . . . 495
Eingabefelder 495
Die VBA-Funktion InputBox 495
Die Methode Application.InputBox 498
Die VBA-Funktion MsgBox 501
Die Excel-Methode GetOpenFilename 507
Die Excel-Methode GetSaveAsFilename 510
Abfrage eines Verzeichnisses 511
Die eingebauten Dialogfelder von Excel anzeigen 511
Ein Dateneingabeformular anzeigen 514
Das Datenformular bereitstellen 515
Ein Dateneingabeformular mit VBA anzeigen 516
Kapitel 13 UserForms - eine Einführung 517
Wie Excel benutzerdefinierte Dialogfelder verarbeitet 517
Ein neues UserForm einfügen 518
Einem UserForm Steuerelemente hinzufügen 518
Steuerelemente in der Toolsammlung 519
Kontrollkästchen - CheckBox 520
Kombinationsfeld - ComboBox 520
CommandButton - Befehlsschaltfläche 521
Frame - Rahmen 521
Image - Bildfeld 521
Label - Beschriftung 521
ListBox - Listenfeld 521
MultiPage - Element mit mehreren Registerkarten 521
OptionButton - Optionsfelder 522
RefEdit - Zellbereich 522
ScrollBar - Bildlaufleiste 522
SpinButton - Drehfeld 522
TabStrip - Registerfeld 522
TextBox - Textfeld 522
ToggleButton - Umschalter 523
Anpassung von UserForm-Steuerelementen 524
Die Eigenschaften eines Steuerelements anpassen 526
Das Eigenschaften-Fenster 526
Gemeinsame Eigenschaften 528
Bequemlichkeit für Tastaturbenutzer 530
Ein UserForm anzeigen 532
Die Anzeigeposition anpassen 533
Ein nicht modales UserForm anzeigen 533
Ein UserForm basierend auf einer Variablen anzeigen 533
Ein UserForm laden 534
Ereignisprozeduren 534
Ein UserForm schließen 534
Ein UserForm erstellen: Ein Beispiel 536
Das UserForm erstellen 536
Code schreiben, mit dem das Dialogfeld angezeigt wird 539
Das Dialogfeld testen 540
Ereignisprozeduren hinzufügen 541
Das fertige Dialogfeld 543
UserForm-Ereignisse 543
Informationen über Ereignisse 543
UserForm-Ereignisse 545
Drehfeld-Ereignisse 545
Ein Drehfeld mit einem Textfeld kombinieren 547
Verweise auf UserForm-Steuerelemente 550
Die Werkzeugsammlung anpassen 551
Der Werkzeugsammlung neue Seiten hinzufügen 551
Steuerelemente anpassen oder kombinieren 551
Neue ActiveX-Steuerelemente hinzufügen 553
UserForm-Schablonen erstellen 554
Eine UserForm-Checkliste 555
Kapitel 14 UserForms - Beispiele 557
Ein UserForm als 'Menü' anlegen 557
Befehlsschaltflächen in einem UserForm verwenden 557
Ein Listenfeld in einem UserForm verwenden 558
Auswahl von Bereichen in einem UserForm 560
Einen Begrüßungsbildschirm erstellen 561
Die Schließen-Schaltfläche eines UserForms deaktivieren 564
Die Größe eines UserForms ändern 565
Ein Blatt aus einem UserForm heraus vergrößern und blättern 567
Listenfeld-Techniken 569
Einem ListBox-Steuerelement Elemente hinzufügen 570
Das in einem Listenfeld ausgewählte Element ermitteln 575
Mehrfachauswahlen in einem Listenfeld bestimmen 576
Mehrere Listen in einem einzelnen Listenfeld 577
Übertragung von Listenfeldelementen 578
Elemente in einem Listenfeld verschieben 580
Mehrspaltige Listenfelder 582
Mit einem Listenfeld Zeilen in einem Arbeitsblatt auswählen 584
Mit einem Listenfeld ein Blatt aktivieren 586
Ein Listenfeld über ein Textfeld filtern 589
Das MultiPage-Steuerelement in einem UserForm verwenden 592
Ein externes Steuerelement verwenden 593
Ein Beschriftungsfeld animieren 596
Kapitel 15 Erweiterte UserForm-Techniken 599
Ein nicht modales Dialogfeld 599
Eine Fortschrittsanzeige anzeigen 603
Eine unabhängige Fortschrittsanzeige erstellen 604
Eine in ein UserForm integrierte Fortschrittsanzeige anzeigen 608
Eine nicht grafische Fortschrittsanzeige erstellen 612
Assistenten erstellen 615
Einrichtung des 'MultiPage'-Steuerelements für den Assistenten 616
Dem UserForm des Assistenten die Schaltflächen hinzufügen 617
Die Schaltflächen des Assistenten programmieren 617
Abhängigkeiten in einem Assistenten programmieren 619
Die Aufgabe mit dem Assistenten erledigen 621
Die 'MsgBox'-Funktion emulieren 622
'MsgBox'-Emulation: 'MyMsgBox'-Code 623
Wie die 'MyMsgBox'-Funktion funktioniert 624
Verwendung der 'MyMsgBox'-Funktion 626
Ein UserForm mit beweglichen Steuerelementen 626
Ein UserForm ohne Titelleiste 628
Mit einem UserForm eine Symbolleiste simulieren 630
Ein Aufgabenfeld mit einem UserForm emulieren 632
Ein größenverstellbares UserForm 634
Mehrere UserForm-Steuerelemente mit einer Ereignisprozedur verarbeiten 638
Auswahl einer Farbe in einem UserForm 641
Ein Diagramm in einem UserForm anzeigen 644
Ein Diagramm als GIF-Datei speichern 645
Die 'Picture'-Eigenschaft des Image-Steuerelements ändern 645
Ein halbtransparentes UserForm erstellen 645
Ein Puzzle auf einem UserForm 647
Video Poker auf einem UserForm 649
Teil IV Excel-Anwendungen entwickeln 651
Kapitel 16 Add-Ins erstellen und verwenden 653
Was ist ein Add-In? 653
Vergleich eines Add-Ins mit einer Standardarbeitsmappe 653
Warum erstellt man Add-Ins? 654
Der Add-In-Manager von Excel 656
Ein Add-In erstellen 658
Ein Add-In-Beispiel 659
Aussagekräftige Informationen für das Beispiel-Add-In hinzufügen 661
Ein Add-In erstellen 661
Ein Add-In installieren 662
Das Add-In testen 663
Ein Add-In weitergeben 664
Ein Add-In ändern 665
XLAM- und XLSM-Dateien vergleichen 666
Die XLAM-Datei als Element der VBA-Collection 666
Sichtbarkeit von XLSM- und XLAM-Dateien 666
Arbeitsblätter und Diagrammblätter in XLSM- und XLAM-Dateien 667
Zugriff auf VBA-Prozeduren in einem Add-In 668
Add-Ins mit VBA manipulieren 671
Der AddIns-Collection ein Element hinzufügen 672
Ein Element aus der AddIns-Collection entfernen 673
AddIn-Objekteigenschaften 673
Auf ein Add-In als Arbeitsmappe zugreifen 676
AddIn-Objektereignisse 677
Die Leistung von Add-Ins optimieren 677
Spezielle Probleme mit Add-Ins 678
Sicherstellen, dass ein Add-In installiert ist 678
Von einem Add-In aus auf andere Dateien verweisen 681
Die richtige Excel-Version für Ihr Add-In erkennen 681
Kapitel 17 Mit dem Menüband arbeiten 683
Menüband - Grundlagen 683
Das Menüband anpassen 685
Dem Menüband eine Schaltfläche hinzufügen 685
Der Symbolleiste für den Schnellzugriff eine Schaltfläche hinzufügen 688
Die Einschränkungen der Menüband-Anpassungen verstehen 690
Ein benutzerdefiniertes Menüband erstellen 691
Einer vorhandenen Registerkarte eine Schaltfläche hinzufügen 691
Einer vorhandenen Registerkarte ein Kontrollkästchen hinzufügen 696
Menüband-Steuerelemente - Demo 701
Beispiel für ein dynamicMenu-Steuerelement 710
Weitere Informationen zur Anpassung des Menübands 713
VBA für das Menüband verwenden 714
Zugriff auf ein Menüband-Steuerelement 715
Mit dem Menüband arbeiten 716
Eine Registerkarte aktivieren 718
Eine Symbolleiste im alten Stil erstellen 718
Einschränkungen der alten Symbolleisten aus Excel 2007 und früher 718
Code für die Erstellung einer Symbolleiste 719
Kapitel 18 Mit Kontextmenüs arbeiten 723
CommandBar-Übersicht 723
CommandBar-Typen 723
Kontextmenüs auflisten 724
Verweise auf CommandBars 725
Verweis auf Steuerelemente in einer CommandBar 726
Eigenschaften von CommandBar-Steuerelementen 728
Anzeige aller Kontextmenüelemente 728
Mit VBA Kontextmenüs anpassen 731
Kontextmenü und das Single-Document Interface 731
Ein Kontextmenü zurücksetzen 734
Ein Kontextmenü deaktivieren 735
Einträge von Kontextmenüs deaktivieren 736
Dem Kontextmenü 'Zelle' einen neuen Eintrag hinzufügen 736
Einem Kontextmenü ein Untermenü hinzufügen 739
Ein Kontextmenü auf eine einzelne Arbeitsmappe beschränken 741
Kontextmenüs und Ereignisse 742
Menüs automatisch hinzufügen und entfernen 742
Kontextmenüeinträge deaktivieren oder ausblenden 743
Ein kontextabhängiges Kontextmenü erstellen 743
Kapitel 19 Hilfe für Ihre Anwendungen bereitstellen 747
Hilfe für Ihre Excel-Anwendungen 747
Hilfesysteme, die Excel-Komponenten verwenden 749
Zellenkommentare für die Hilfe verwenden 750
Ein Textfeld für Hilfe verwenden 751
Hilfe auf einem Arbeitsblatt anzeigen 752
Hilfe in einem UserForm anzeigen 754
Hilfe in einem Webbrowser anzeigen 758
HTML-Dateien verwenden 758
Eine MHTML-Datei verwenden 759
Das HTML-Hilfesystem verwenden 761
Mit der Help-Methode HTML-Hilfe anzeigen 764
Ihrer Prozedur eine Hilfedatei zuordnen 765
Einer VBA-Funktion ein Hilfethema zuordnen 765
Kapitel 20 Klassenmodule 769
Was ist e