Cover | 1 |
Vorwort | 5 |
Inhaltsverzeichnis | 8 |
1 Die Entwicklungsumgebung von VBA | 12 |
1.1 Makros einfügen | 12 |
1.2 Makros starten | 14 |
1.3 Den Makrorekorder einsetzen | 14 |
1.3.1 Makro aufzeichnen | 14 |
1.3.2 Resultate des Makrorekorders ansehen | 16 |
1.3.3 Zusatzinformationen anzeigen | 18 |
1.4 Die Arbeitsumgebung | 19 |
1.4.1 Der Projekt-Explorer | 19 |
1.4.2 Das Eigenschaftsfenster | 21 |
1.4.3 Das Code-Fenster | 22 |
1.4.4 Das Direktfenster | 23 |
1.4.5 Das Überwachungsfenster | 24 |
1.4.6 Das Lokal-Fenster | 26 |
1.5 Wertvolle Helfer bei der Programmierung | 27 |
1.5.1 Die Symbolleiste Bearbeiten | 27 |
1.5.2 Die Symbolleiste Debuggen | 32 |
1.6 Weitere Einstellungen | 34 |
1.6.1 Registerkarte Editor | 34 |
1.6.2 Registerkarte Editorformat | 35 |
1.6.3 Registerkarte Allgemein | 36 |
1.6.4 Registerkarte Verankern | 37 |
2 Die Sprachelemente von VBA | 40 |
2.1 Variablen und Konstanten | 40 |
2.2 Operatoren | 43 |
2.3 Verzweigungen | 45 |
2.3.1 Office-Version erkennen | 45 |
2.3.2 Rückfrage einholen | 47 |
2.3.3 Datei nach bestimmter Zeit löschen | 48 |
2.3.4 Existiert eine bestimmte Datei? | 49 |
2.4 Die Anweisung Select Case | 49 |
2.4.1 Fensterstatus ermitteln | 50 |
2.4.2 Steuerelemente identifizieren | 51 |
2.4.3 Zahlenformate ermitteln | 54 |
2.4.4 Eingaben überprüfen | 55 |
2.5 Schleifen | 57 |
2.5.1 Die Schleife For...Next | 57 |
2.5.2 Tabellen anlegen | 57 |
2.5.3 Die Schleife For Each...Next | 64 |
2.5.4 Die Schleife Do Until | 74 |
2.5.5 Die Schleife Do While...Loop | 81 |
3 VBA-Standardfunktionen nutzen | 90 |
3.1 Textfunktionen einsetzen | 90 |
3.1.1 Textteile trennen | 90 |
3.1.2 Texte zusammenführen | 93 |
3.1.3 Datei- und Pfadnamen ermitteln | 94 |
3.1.4 PLZ von Stadt trennen | 96 |
3.1.5 Komplette Zeichenfolge zerlegen | 97 |
3.1.6 Texte spiegeln & verdrehen | 99 |
3.1.7 Leerzeichen aus Zellen entfernen | 101 |
3.1.8 Aus klein mach GROSS | 102 |
3.2 Mit Verzeichnissen und Laufwerken arbeiten | 107 |
3.2.1 Dateien eines Verzeichnisses auflisten | 108 |
3.2.2 Verzeichnisse erstellen | 110 |
3.2.3 Verzeichnisse löschen | 111 |
3.3 Datums- und Zeitfunktionen einsetzen | 111 |
3.3.1 Den Wochentag ermitteln | 111 |
3.3.2 Den Tag, Monat und das Jahr ermitteln | 113 |
3.3.3 Teile aus Datumsangaben extrahieren | 114 |
3.3.4 Datumsberechnungen durchführen | 115 |
3.3.5 Ein Sprung in die Zukunft/Vergangenheit | 115 |
3.3.6 Die aktuelle Uhrzeit ermitteln | 116 |
3.3.7 Pause einlegen | 117 |
3.3.8 Bild ein- und ausblenden | 118 |
3.3.9 Arbeitsmappe nach bestimmter Zeit schließen | 119 |
3.3.10 Datumsangaben formatieren | 119 |
3.3.11 Tabellen einfügen und formatieren | 121 |
3.3.12 Datumsangaben erkennen | 122 |
3.3.13 Datumsangaben in Kopf- und Fußzeile integrieren | 123 |
3.4 Prüffunktionen | 125 |
3.4.1 Die Funktion IsNumeric | 125 |
3.4.2 Die Funktion IsDate | 129 |
3.4.3 Die Funktion IsEmpty | 131 |
3.4.4 Die Funktion IsArray | 133 |
3.5 Sonstige Funktionen | 135 |
3.5.1 Fremde Programme aufrufen mit Shell | 135 |
3.5.2 Texteile ersetzen mit Replace | 136 |
3.5.3 Farben erzeugen mit der Funktion RGB | 138 |
3.5.4 Leerzeichen einfügen mit der Funktion Space | 141 |
3.5.5 Ganzzahlige Werte erstellen mit der Funktion Int | 142 |
4 Eigene Funktionen programmieren | 146 |
4.1 Farbige Zellen addieren | 146 |
4.2 Dateiprüfung | 148 |
4.3 Daten bereinigen | 149 |
4.4 Aktive Zelle im Zielbereich? | 152 |
4.5 Dokumentschutz aufheben und neu setzen | 153 |
4.6 Römische Zahlen wandeln | 155 |
4.7 Eingefügte Objekte in PowerPoint-Folien ermitteln | 157 |
4.7.1 Einzelne Verknüpfung gezielt aufspüren | 158 |
4.7.2 Alle eingefügten Objekte aufspüren | 160 |
4.8 Läuft eine Anwendung bereits? | 161 |
4.8.1 Word-Anwendung bereits aktiv? | 161 |
4.8.2 Access-Anwendung aktiv? | 163 |
4.8.3 PowerPoint-Anwendung aktiv? | 165 |
4.9 Hyperlinks auf Shape-Objekten identifizieren | 166 |
4.10 Ist Dokument passwortgeschützt? | 169 |
4.11 Ist Arbeitsmappe passwortgeschützt? | 170 |
4.12 Wo bin ich? | 172 |
4.12.1 Die aktuelle Word-Dokumentseite ermitteln | 172 |
4.12.2 Die aktuelle Position in Excel bestimmen | 174 |
4.13 Das älteste Dokument in einem Verzeichnis ermitteln | 175 |
4.14 Die Dokumenteigenschaften ermitteln | 177 |
4.15 Wie viele Tage hat ein Monat? | 179 |
4.16 Initialen aus Namen bilden | 179 |
4.17 Automatisch E-Mail-Adressen generieren | 182 |
4.18 Ist Add-In bereits eingebunden | 183 |
4.19 Wo steckt der größte Wert? | 184 |
4.20 Wird Name bereits verwendet? | 187 |
5 Meldungen, Eingabemasken, Dialoge und UserForms programmieren | 190 |
5.1 Meldungen programmieren | 190 |
5.1.1 Abfrage vor Löschung von Texten | 192 |
5.2 Eingabemasken programmieren | 193 |
5.2.1 Wort suchen über Inputbox | 194 |
5.3 Integrierte Dialoge verwenden | 196 |
5.3.1 Excel-Dialoge aufrufen | 196 |
5.3.3 Word-Dialoge einsetzen | 201 |
5.3.2 Access-Dialoge aufrufen | 199 |
5.4 UserForms programmieren | 202 |
5.4.1 Die UserForm und ihre Steuerelemente | 204 |
5.4.2 Steuerelemente einfügen | 206 |
5.4.3 Die UserForm aufrufen | 207 |
5.4.4 Die UserForm ausprogrammieren | 211 |
5.4.5 Ein Unterformular anlegen | 215 |
5.4.6 Mitarbeiter & Skills suchen | 222 |
6 Menü- und Symbolleisten programmieren | 230 |
6.1 Allgemeine Anmerkungen zu Leisten | 230 |
6.2 Menüleisten programmieren | 232 |
6.2.1 Menüleiste ausblenden | 233 |
6.2.2 Ein neues Menü anlegen | 233 |
6.2.3 Menüs löschen | 235 |
6.2.4 Menübefehle einfügen | 235 |
6.2.5 Erstellung beim Öffnen des Dokuments | 238 |
6.2.6 Menünamen feststellen | 239 |
6.2.7 Menübefehl in bestehendes Menü integrieren | 240 |
6.2.8 Menübefehl löschen | 241 |
6.2.9 Menü-IDs ermitteln | 242 |
6.2.10 Menübefehl-ID ermitteln | 243 |
6.2.11 Menübefehle deaktivieren | 244 |
6.2.12 Ganze Menüs deaktivieren | 246 |
6.2.13 Kaskade erstellen | 247 |
6.3 Symbolleisten programmieren | 250 |
6.3.1 Symbol-IDs bestimmen | 250 |
6.3.2 FaceIDs bestimmen | 252 |
6.3.3 Neue Symbolleiste anlegen | 253 |
6.3.4 Symbolleiste löschen | 254 |
6.3.5 Symbolleiste zurücksetzen | 255 |
6.3.6 Symbolleiste ausblenden | 255 |
6.3.7 Symbole deaktivieren | 257 |
6.3.8 Symbolleisten schützen | 258 |
6.4 Kontextmenüs programmieren | 259 |
6.4.1 Kontextmenüs ermitteln | 260 |
6.4.2 Kontextmenüs deaktivieren | 261 |
6.4.4 Kontextmenüs zurücksetzen | 263 |
6.4.3 Kontextmenü erweitern | 261 |
7 »Internette« Funktionen in Office programmieren | 264 |
7.1 Inhaltsverzeichnis einer Arbeitsmappe erstellen | 264 |
7.2 Inhaltsverzeichnis eines Verzeichnisses erstellen | 266 |
7.3 E-Mail-Links einfügen | 268 |
7.3.1 E-Mail-Adressen blockweise umsetzen | 270 |
7.4 URL-Links einfügen | 272 |
7.4.1 Hyperlinks bei Gültigkeit umsetzen | 273 |
7.4.2 Hyperlinks entfernen | 275 |
7.5 Aktienkurse abfragen | 275 |
7.6 E-Mails per VBA verschicken | 277 |
7.6.1 Direktversand einer E-Mail | 277 |
7.6.2 E-Mail mit Dateianhang versenden | 278 |
7.6.3 Aktive Tabelle per E-Mail versenden | 281 |
7.6.4 Tabelle ohne Verknüpfungen versenden | 282 |
7.6.5 Mehrere Dateianhänge versenden | 283 |
7.6.6 Einen Bereich versenden | 284 |
7.6.7 Auf Outlook-Funktionen zugreifen | 286 |
7.6.8 Eine Sammel-E-Mail erstellen | 287 |
8 VBE-Programmierung in Office | 290 |
8.1 Die Voraussetzung | 290 |
8.2 Bibliotheken einbinden | 291 |
8.2.1 Gesetzte Verweise ermitteln | 292 |
8.2.2 Die VBE-Bibliothek einbinden | 293 |
8.2.3 Die VBE-Bibliothek entladen | 294 |
8.2.4 Bibliotheksinfos schreiben | 294 |
8.3 Die VBE-Komponenten | 295 |
8.4 VBE-Komponenten auflisten | 297 |
8.5 VBE-Komponenten entfernen | 299 |
8.6 VBE-Komponenten exportieren | 299 |
8.7 VBE-Komponenten importieren | 300 |
8.8 Alle VBE-Komponenten aus Dokument entfernen | 303 |
8.9 VBE aufrufen | 304 |
8.10 Codezeilen auflisten | 304 |
9 Excel-Programmierung | 308 |
9.1 Zellen programmieren | 308 |
9.1.1 Zellen ansprechen | 308 |
9.1.2 Zellen benennen | 313 |
9.1.3 Formeln einsetzen | 315 |
9.1.4 Zellen formatieren | 322 |
9.2 Zeilen und Spalten programmieren | 327 |
9.2.1 Zeilen ein- und ausblenden | 327 |
9.2.2 Spalten ein- und ausblenden | 329 |
9.2.3 Zeilen löschen und einfügen | 332 |
9.2.4 Spalten löschen und einfügen | 336 |
9.2.5 Zeilenhöhe und Spaltenbreite einstellen | 339 |
9.3 Tabellen programmieren | 342 |
9.3.1 Tabellenblätter zählen und identifizieren | 343 |
9.3.3 Tabellen ein- und ausblenden | 347 |
9.3.2 Neue Tabellen einfügen | 344 |
9.3.4 Tabellen schützen | 350 |
9.3.5 Tabellenschutz entfernen | 352 |
9.3.6 Registerlaschen einfärben | 352 |
9.4 Arbeitsmappen programmieren | 354 |
9.4.1 Geöffnete Arbeitsmappen ermitteln | 354 |
9.4.2 Arbeitsmappen anlegen | 355 |
9.4.3 Arbeitsmappen speichern | 356 |
9.4.4 Arbeitsmappen drucken | 358 |
9.4.5 Verknüpfungen ersetzen | 359 |
9.4.6 Verknüpfungen auskundschaften | 362 |
9.4.7 Verknüpfungen tauschen | 363 |
10 Die Programmierung mit Word | 366 |
10.1 Dokument(e) identifizieren | 367 |
10.2 Dokumentvorlage ermitteln | 368 |
10.3 Dokumentvorlage wechseln | 369 |
10.4 Einstellungen am Dokument durchführen | 370 |
10.5 Schriftarten ermitteln | 371 |
10.6 Dokumenteigenschaften auslesen und setzen | 373 |
10.6.1 Dokumenteigenschaften auflisten | 374 |
10.6.2 Dokumenteigenschaften gezielt abfragen | 375 |
10.6.3 Dokumenteigenschaften setzen | 377 |
10.7 Kommentare aufspüren und auslesen | 379 |
10.7.1 Kommentarinformationen auslesen | 379 |
10.7.2 Kommentare formatieren | 380 |
10.8 Texte/Formate suchen und ersetzen | 382 |
10.8.1 Text suchen und Schriftart formatieren | 382 |
10.8.2 Text suchen und Hervorhebung aktivieren | 385 |
10.8.3 Text suchen und Lesemarken setzen | 387 |
10.8.4 Die Suchergebnisse in neues Dokument transferieren | 390 |
10.8.5 Texte suchen und ersetzen | 391 |
10.8.6 Formate suchen und entfernen | 393 |
10.8.7 Formate suchen und ergänzen | 394 |
10.9 Arbeiten mit Hyperlinks | 396 |
10.9.1 Hyperlinks in Dokumenten löschen | 396 |
10.9.2 Hyperlink einfügen | 396 |
10.9.3 Bilderhyperlinks einfügen | 397 |
10.10 Bilder in Dokumenten verarbeiten | 400 |
10.10.1 Bild einfügen | 400 |
10.10.2 Mehrere Bilder einfügen | 401 |
10.10.3 Bilder dokumentieren | 403 |
10.10.4 Verknüpfte Bilder im Dokument aktualisieren | 404 |
10.11 Arbeiten mit Tabellen | 405 |
10.11.1 Tabelle einfügen, füllen und formatieren | 405 |
10.11.2 Tabelle löschen | 409 |
11 Programmierung mit Access | 410 |
11.1 Das Programmieren von Tabellen | 410 |
11.1.1 Tabelle öffnen | 410 |
11.1.2 Tabelle öffnen und durchsuchen | 412 |
11.1.3 Tabelle öffnen und positionieren | 413 |
11.1.4 Tabelle öffnen und filtern | 415 |
11.1.5 Tabelle öffnen und drucken | 417 |
11.1.6 Tabelle kopieren | 418 |
11.1.7 Tabelle umbenennen | 420 |
11.1.8 Tabelle löschen | 420 |
11.1.9 Tabelle speichern | 421 |
11.1.10 Tabellen auslesen | 421 |
11.1.11 Tabelleninhalte auslesen | 422 |
11.1.12 Tabellen abfragen | 425 |
11.1.13 Tabellen ändern | 428 |
11.1.14 Datensätze aus einer Tabelle entfernen | 431 |
11.1.15 Datensätze hinzufügen | 432 |
11.2 Das Programmieren von Abfragen | 435 |
11.2.1 Abfrage duchführen | 435 |
11.2.2 Aktualisierungsabfrage durchführen | 436 |
11.2.3 Anfügeabfrage ausführen | 437 |
11.2.4 Löschabfrage ausführen | 439 |
11.2.5 Tabellenerstellungsabfrage ausführen | 440 |
11.2.6 Definitionsabfragen ausführen | 441 |
11.2.7 Abfrage erzeugen mit ADO | 445 |
11.2.8 Paramterabfrage erstellen | 448 |
11.3 Das Programmieren von Formularen | 449 |
11.3.1 Formular aufrufen | 450 |
11.3.2 Formular öffnen mit eingestelltem Filter | 451 |
11.3.3 Formular schließen | 452 |
11.3.4 Formulare weiter ausbauen | 452 |
12 Office im Zusammenspiel | 458 |
12.1 Adressen nach Outlook transferieren | 458 |
12.2 E-Mail-Verkehr in Word protokollieren | 461 |
12.3 Access-DB in Word verfügbar machen | 463 |
12.4 Objekte in Word-Dokumente integrieren | 469 |
12.4.1 Arbeitsmappe als Symbol einfügen | 469 |
12.4.2 Mehrere Arbeitsmappen als Symbol einfügen | 471 |
12.5 Excel-Daten nach Word kopieren | 472 |
12.5.1 Daten unverknüpft übertragen | 473 |
12.5.2 Daten verknüpft übertragen | 475 |
12.6 Der Datenaustausch zwischen Access und Excel | 476 |
12.6.1 Import einer Excel-Tabelle nach Access | 476 |
12.6.2 Export einer Access-Tabelle nach Excel | 478 |
13 Auf Fehlersuche in Office | 480 |
13.1 Typische Fehlerquellen | 480 |
13.1.1 Syntaxfehler | 480 |
13.1.2 Nicht verfügbare Befehle | 481 |
13.1.3 Der Griff ins Ungewisse | 483 |
13.1.4 Falscher Einsatz von Variablen | 484 |
13.1.5 Fehlerliste einsehen | 487 |
13.2 Die Fehlerbehandlung | 487 |
13.3 Allgemeine Punkte zur Programmierung | 489 |
14 Tuning der VBA-Programme | 490 |
14.1 Makros schneller ablaufen lassen | 490 |
14.1.1 Bildschirmaktualisierung abschalten | 490 |
14.1.2 Auflistungen einsetzen | 492 |
14.1.3 Objekte nicht markieren | 493 |
14.1.4 Berechnung abschalten | 494 |
14.1.5 Auf Sprünge verzichten | 497 |
14.2 VBA-Abläufe sichtbar machen | 498 |
14.2.1 Statusleiste einsetzen | 498 |
14.2.2 Einen Fortschrittsbalken einsetzen | 499 |
15 Die Office-VBA-FAQ | 502 |
15.1 Office-Animationen erstellen | 502 |
15.1.1 Objekte rotieren lassen | 502 |
15.1.2 Laufrahmen erstellen | 504 |
15.1.3 Einen blinkenden Hintergrund programmieren | 506 |
15.1.4 Eine blinkende Zelle programmieren | 507 |
15.2 Termine in den Outlook-Kalender übertragen | 508 |
15.3 Excel-Auswertungen nach PowerPoint transportieren | 510 |
15.4 Das Steuerelement TreeControl | 512 |
15.5 Diagramme als Grafiken speichern | 514 |
15.6 Das Kalendersteuerelement einsetzen | 515 |
15.7 Zugriff auf Microsoft Graph programmieren | 517 |
A Die Dateien zum Buch | 520 |
Anhang B | 522 |
Stichwortverzeichnis | 534 |