|
Inhalt |
6 |
|
|
Vorwort |
15 |
|
|
Konzeption des Buchs |
19 |
|
|
TEIL I: Intuitiver Einstieg |
22 |
|
|
1 Das erste Makro |
24 |
|
|
1.1 Begriffsdefinition |
24 |
|
|
1.2 Was ist Visual Basic für Applikationen? |
27 |
|
|
1.3 Beispiel: eine Formatvorlage mit einem Symbol verbinden |
28 |
|
|
1.4 Beispiel: Makro zur Eingabeerleichterung |
34 |
|
|
1.5 Beispiel: einfache Literaturdatenbank |
36 |
|
|
1.6 Beispiel: Formular zur Berechnung der Verzinsung von Spareinlagen |
42 |
|
|
1.7 Beispiel: benutzerdefinierte Funktionen |
47 |
|
|
1.8 Beispiel: Analyse komplexer Tabellen |
48 |
|
|
1.9 Beispiel: Vokabeltrainer |
49 |
|
|
1.10 Weitere Beispiele zum Ausprobieren |
55 |
|
|
2 Neuerungen in Excel 2007 bis 2016 |
62 |
|
|
2.1 Die Benutzeroberfläche RibbonX |
63 |
|
|
2.2 Neue Programmfunktionen |
66 |
|
|
2.3 Office-Add-ins |
70 |
|
|
2.4 Neues in Sachen Programmierung |
72 |
|
|
2.4.1 Kompatibilitätskrücke Add-ins-Register |
73 |
|
|
2.4.2 Zu- und Abgänge im Objektmodell |
74 |
|
|
2.4.3 Anpassen der Benutzeroberfläche |
75 |
|
|
2.4.4 Die Grenzen von VBA |
76 |
|
|
2.5 Probleme und Inkompatibilitäten |
77 |
|
|
TEIL II: Grundlagen |
80 |
|
|
3 Entwicklungsumgebung |
82 |
|
|
3.1 Komponenten von VBA-Programmen |
82 |
|
|
3.2 Komponenten der Entwicklungsumgebung |
83 |
|
|
3.3 Codeeingabe in Modulen |
90 |
|
|
3.4 Makros ausführen |
94 |
|
|
3.5 Makroaufzeichnung |
95 |
|
|
3.6 Tastenkürzel |
97 |
|
|
4 VBA-Konzepte |
100 |
|
|
4.1 Variablen und Felder |
100 |
|
|
4.1.1 Variablenverwaltung |
100 |
|
|
4.1.2 Felder |
105 |
|
|
4.1.3 Syntaxzusammenfassung |
108 |
|
|
4.2 Prozedurale Programmierung |
110 |
|
|
4.2.1 Prozeduren und Parameter |
110 |
|
|
4.2.2 Gültigkeitsbereich von Variablen und Prozeduren |
119 |
|
|
4.2.3 Verzweigungen (Abfragen) |
123 |
|
|
4.2.4 Schleifen |
126 |
|
|
4.2.5 Syntaxzusammenfassung |
129 |
|
|
4.3 Objekte |
132 |
|
|
4.3.1 Der Umgang mit Objekten, Methoden und Eigenschaften |
132 |
|
|
4.3.2 Der Objektkatalog (Verweise) |
138 |
|
|
4.3.3 Übersichtlicher Objektzugriff durch das Schlüsselwort With |
141 |
|
|
4.3.4 Objektvariablen |
142 |
|
|
4.3.5 Syntaxzusammenfassung |
144 |
|
|
4.4 Ereignisse |
145 |
|
|
4.4.1 Ereignisprozeduren |
146 |
|
|
4.4.2 Ereignisprozeduren deaktivieren |
149 |
|
|
4.4.3 Überblick über wichtige Excel-Ereignisse |
150 |
|
|
4.4.4 Ereignisse beliebiger Objekte empfangen |
155 |
|
|
4.4.5 Ereignisprozeduren per Programmcode erzeugen |
157 |
|
|
4.4.6 Syntaxzusammenfassung |
159 |
|
|
4.5 Programmierung eigener Klassen |
162 |
|
|
4.5.1 Eigene Methoden, Eigenschaften und Ereignisse |
164 |
|
|
4.5.2 Collection-Objekt |
167 |
|
|
4.5.3 Beispiel für ein Klassenmodul |
168 |
|
|
4.5.4 Beispiel für abgeleitete Klassen (Implements) |
170 |
|
|
4.5.5 Eine Klasse als FileSearch-Ersatz |
174 |
|
|
4.5.6 Syntaxzusammenfassung |
181 |
|
|
4.6 Operatoren in VBA |
182 |
|
|
4.7 Virenschutz |
185 |
|
|
4.7.1 Vorhandene Schutzmaßnahmen nutzen |
186 |
|
|
4.7.2 Viren selbst entdecken |
189 |
|
|
4.7.3 Vertrauenswürdige Makros ohne Einschränkungen ausführen |
189 |
|
|
5 Programmiertechniken |
192 |
|
|
5.1 Zellen und Zellbereiche |
192 |
|
|
5.1.1 Objekte, Methoden, Eigenschaften |
192 |
|
|
5.1.2 Anwendungsbeispiele |
207 |
|
|
5.1.3 Syntaxzusammenfassung |
216 |
|
|
5.2 Arbeitsmappen, Fenster und Arbeitsblätter |
218 |
|
|
5.1.4 Objekte, Methoden und Eigenschaften |
219 |
|
|
5.1.5 Anwendungsbeispiele |
225 |
|
|
5.1.6 Syntaxzusammenfassung |
229 |
|
|
5.3 Datentransfer über die Zwischenablage |
231 |
|
|
5.3.1 Zellbereiche kopieren, ausschneiden und einfügen |
231 |
|
|
5.3.2 Zugriff auf die Zwischenablage mit dem DataObject |
233 |
|
|
5.3.3 Syntaxzusammenfassung |
234 |
|
|
5.4 Umgang mit Zahlen und Zeichenketten |
235 |
|
|
5.4.1 Numerische Funktionen, Zufallszahlen |
235 |
|
|
5.4.2 Zeichenketten |
237 |
|
|
5.4.3 Umwandlungsfunktionen |
242 |
|
|
5.4.4 Syntaxzusammenfassung |
244 |
|
|
5.5 Rechnen mit Datum und Uhrzeit |
246 |
|
|
5.5.1 VBA-Funktionen |
250 |
|
|
5.5.2 Tabellenfunktionen |
252 |
|
|
5.5.3 Anwendungs- und Programmiertechniken |
253 |
|
|
5.5.4 Feiertage |
256 |
|
|
5.5.5 Syntaxzusammenfassung |
262 |
|
|
5.6 Umgang mit Dateien, Textimport/-export |
263 |
|
|
5.6.1 File System Objects – Überblick |
264 |
|
|
5.6.2 Laufwerke, Verzeichnisse und Dateien |
266 |
|
|
5.6.3 Textdateien (TextStream) |
272 |
|
|
5.6.4 Binärdateien (Open) |
274 |
|
|
5.6.5 Excel-spezifische Methoden und Eigenschaften |
278 |
|
|
5.6.6 Textdateien importieren und exportieren |
281 |
|
|
5.6.7 Textexport für Mathematica-Listen |
289 |
|
|
5.6.8 Syntaxzusammenfassung |
294 |
|
|
5.7 Benutzerdefinierte Tabellenfunktionen |
298 |
|
|
5.7.1 Grundlagen |
298 |
|
|
5.7.2 Beispiele |
305 |
|
|
5.8 Schutzmechanismen |
307 |
|
|
5.8.1 Bewegungsradius einschränken |
308 |
|
|
5.8.2 Zellen, Tabellenblätter und Arbeitsmappen schützen |
309 |
|
|
5.8.3 Schutzmechanismen für den gemeinsamen Zugriff |
313 |
|
|
5.8.4 Programmcode und Symbolleiste schützen |
314 |
|
|
5.8.5 Syntaxzusammenfassung |
315 |
|
|
5.9 Konfigurationsdateien, individuelle Konfiguration |
316 |
|
|
5.9.1 Optionen |
316 |
|
|
5.9.2 Optionseinstellungen per Programmcode |
317 |
|
|
5.9.3 Konfigurationsdateien |
320 |
|
|
5.10 Tipps und Tricks |
328 |
|
|
5.10.1 Geschwindigkeitsoptimierung |
328 |
|
|
5.10.2 Zeitaufwendige Berechnungen |
329 |
|
|
5.10.3 Effizienter Umgang mit Tabellen |
333 |
|
|
5.10.4 Zusammenspiel mit Excel-4-Makros |
335 |
|
|
5.10.5 Excel-Version feststellen |
336 |
|
|
5.10.6 Hilfe zur Selbsthilfe |
336 |
|
|
5.10.7 Syntaxzusammenfassung |
338 |
|
|
6 Fehlersuche und Fehlerabsicherung |
340 |
|
|
6.1 Hilfsmittel zur Fehlersuche (Debugging) |
340 |
|
|
6.1.1 Syntaxkontrolle |
340 |
|
|
6.1.2 Reaktion auf Fehler |
341 |
|
|
6.1.3 Kontrollierte Programmausführung |
344 |
|
|
6.2 Fehlertolerantes Verhalten von Programmen |
346 |
|
|
6.3 Reaktion auf Programmunterbrechungen |
351 |
|
|
6.4 Syntaxzusammenfassung |
352 |
|
|
7 Dialoge |
354 |
|
|
7.1 Vordefinierte Dialoge |
354 |
|
|
7.1.1 Excel-Standarddialoge |
354 |
|
|
7.1.2 Die Funktionen MsgBox und InputBox |
358 |
|
|
7.1.3 Die Methode Application.InputBox |
358 |
|
|
7.2 Selbst definierte Dialoge |
360 |
|
|
7.2.1 Veränderungen gegenüber Excel 5/7 |
361 |
|
|
7.2.2 Einführungsbeispiel |
363 |
|
|
7.3 Der Dialogeditor |
367 |
|
|
7.4 Die MS-Forms-Steuerelemente |
371 |
|
|
7.4.1 Beschriftungsfeld (Label) |
372 |
|
|
7.4.2 Textfeld (TextBox) |
373 |
|
|
7.4.3 Listenfeld (ListBox) und Kombinationslistenfeld (ComboBox) |
376 |
|
|
7.4.4 Kontrollkästchen (CheckBox) und Optionsfelder (OptionButton) |
382 |
|
|
7.4.5 Buttons (CommandButton) und Umschaltbuttons (ToggleButton) |
383 |
|
|
7.4.6 Rahmenfeld (Frame) |
384 |
|
|
7.4.7 Multiseiten (MultiPage), Register (TabStrip) |
386 |
|
|
7.4.8 Bildlaufleiste (ScrollBar) und Drehfeld (SpinButton) |
390 |
|
|
7.4.9 Anzeige (Image) |
392 |
|
|
7.4.10 Formelfeld (RefEdit) |
393 |
|
|
7.4.11 Das UserForm-Objekt |
395 |
|
|
7.5 Steuerelemente direkt in Tabellen verwenden |
398 |
|
|
7.6 Programmiertechniken |
405 |
|
|
7.6.1 Zahleneingabe |
405 |
|
|
7.6.2 Dialoge gegenseitig aufrufen |
407 |
|
|
7.6.3 Dialoge dynamisch verändern |
409 |
|
|
7.6.4 Umgang mit Drehfeldern |
411 |
|
|
8 Die Benutzeroberfläche von Excel 2016 |
414 |
|
|
8.1 Menüs und Symbolleisten |
414 |
|
|
8.1.1 Manuelle Bearbeitung von Menüs und Symbolleisten |
416 |
|
|
8.1.2 Programmierte Veränderung von Menüs und Symbolleisten |
422 |
|
|
8.1.3 Programmiertechniken |
427 |
|
|
8.1.4 Blattwechsel über die Symbolleiste |
430 |
|
|
8.1.5 Excel-Anwendungen in Befehlsleisten integrieren |
433 |
|
|
8.1.6 Syntaxzusammenfassung |
438 |
|
|
8.2 Das Menüband |
439 |
|
|
8.2.1 Manuelle Anpassung des Menübands |
440 |
|
|
8.2.2 Programmierte Anpassung des Menübands |
444 |
|
|
8.2.3 RibbonX-Controls |
451 |
|
|
8.2.4 Erweiterte Programmiertechniken |
464 |
|
|
8.2.5 Klassische Menüs und Symbolleisten nachbilden |
470 |
|
|
8.2.6 Anpassungen permanent verfügbar machen |
473 |
|
|
8.2.7 Syntaxzusammenfassung |
474 |
|
|
8.3 Die Symbolleiste für den Schnellzugriff |
476 |
|
|
8.3.1 Symbolleiste für den Schnellzugriff manuell anpassen |
476 |
|
|
8.3.2 Symbolleiste für den Schnellzugriff programmiert anpassen |
478 |
|
|
8.3.3 Syntaxzusammenfassung |
479 |
|
|
8.4 Kontextmenüs |
479 |
|
|
8.4.1 Kontextmenüs programmiert anpassen |
480 |
|
|
8.4.2 Syntaxzusammenfassung |
482 |
|
|
8.5 Die Backstage-Ansicht |
483 |
|
|
8.5.1 Grundlagen der Programmierung |
483 |
|
|
8.5.2 Backstage-spezifische Steuerelemente |
484 |
|
|
8.5.3 Befehle in den FastCommand-Bereich einfügen |
485 |
|
|
8.5.4 Eigene Backstage-Tabs anlegen |
486 |
|
|
8.5.5 Excel-eigene Backstage-Tabs anpassen |
491 |
|
|
8.5.6 Syntaxzusammenfassung |
494 |
|
|
TEIL III: Anwendung |
496 |
|
|
9 Mustervorlagen und „intelligente“ Formulare |
498 |
|
|
9.1 Grundlagen |
498 |
|
|
9.1.1 Gestaltungselemente für „intelligente“ Formulare |
500 |
|
|
9.1.2 Mustervorlagen mit Datenbankanbindung |
506 |
|
|
9.2 Beispiel: Das „Speedy“-Rechnungsformular |
509 |
|
|
9.3 Beispiel: Abrechnungsformular für einen Car-Sharing-Verein |
517 |
|
|
9.4 Grenzen „intelligenter“ Formulare |
524 |
|
|
10 Diagramme und Zeichnungsobjekte |
526 |
|
|
10.1 Umgang mit Diagrammen |
526 |
|
|
10.1.1 Grundlagen |
526 |
|
|
10.1.2 Diagrammtypen |
527 |
|
|
10.1.3 Diagrammelemente (Diagrammobjekte) und Formatierungsmöglichkeiten |
528 |
|
|
10.1.4 Ausdruck |
532 |
|
|
10.2 Programmierung von Diagrammen |
532 |
|
|
10.2.1 Objekthierarchie |
533 |
|
|
10.2.2 Programmiertechniken |
537 |
|
|
10.3 Beispiel: Automatische Datenprotokollierung |
542 |
|
|
10.3.1 Die Bedienung des Beispielprogramms |
543 |
|
|
10.3.2 Programmcode |
544 |
|
|
10.4 Syntaxzusammenfassung |
555 |
|
|
10.5 Die Zelldiagramme der Bedingten Formatierung |
556 |
|
|
10.5.1 Programmierung von Datenbalkendiagrammen |
558 |
|
|
10.5.2 Programmierung von Farbskalendiagrammen |
559 |
|
|
10.5.3 Programmierung von Symbolsatzdiagrammen |
561 |
|
|
10.5.4 Syntaxzusammenfassung |
563 |
|
|
10.6 Sparklines-Diagramme |
564 |
|
|
10.6.1 Programmierung von Sparklines-Diagrammen |
565 |
|
|
10.6.2 Syntaxzusammenfassung |
569 |
|
|
10.7 SmartArt-Diagramme |
569 |
|
|
10.7.1 Programmierung von SmartArt-Diagrammen |
570 |
|
|
10.7.2 Benutzerdefinierte SmartArt-Diagramme |
575 |
|
|
10.7.3 Syntaxzusammenfassung |
576 |
|
|
10.8 Neue Diagrammtypen in Excel 2016 |
577 |
|
|
10.8.1 Programmierung von Wasserfall-Diagrammen |
577 |
|
|
10.8.2 Programmierung von Histogrammen |
579 |
|
|
10.8.3 Programmierung von Pareto-Diagrammen |
581 |
|
|
10.8.4 Programmierung von Kastengrafik-Diagrammen |
582 |
|
|
10.8.5 Programmierung von Treemap-Diagrammen |
584 |
|
|
10.8.6 DirectoryMap – Inhaltsverzeichnisse visualisieren |
585 |
|
|
10.8.7 Programmierung von Sunburst-Diagrammen |
589 |
|
|
10.9 Zeichnungsobjekte (Shapes) |
591 |
|
|
11 Datenverwaltung in Excel |
596 |
|
|
11.1 Grundlagen |
596 |
|
|
11.1.1 Einleitung |
597 |
|
|
11.1.2 Kleines Datenbankglossar |
598 |
|
|
11.1.3 Excel versus Datenbanksysteme |
599 |
|
|
11.2 Datenverwaltung innerhalb von Excel |
601 |
|
|
11.2.1 Eine Datenbank in Excel erstellen |
601 |
|
|
11.2.2 Daten über die Datenbankmaske eingeben, ändern und löschen |
604 |
|
|
11.2.3 Daten sortieren, suchen, filtern |
606 |
|
|
11.3 Datenverwaltung per VBA-Code |
613 |
|
|
11.3.1 Programmiertechniken |
613 |
|
|
11.3.2 Syntaxzusammenfassung |
616 |
|
|
11.4 Datenbank-Tabellenfunktionen |
617 |
|
|
11.5 Tabellen konsolidieren |
620 |
|
|
11.5.1 Grundlagen |
620 |
|
|
11.5.2 Konsolidieren per VBA-Code |
623 |
|
|
11.6 Beispiel: Abrechnung eines Car-Sharing-Vereins |
624 |
|
|
11.6.1 Bedienung |
624 |
|
|
11.6.2 Überblick über die Komponenten der Anwendung |
627 |
|
|
11.6.3 Programmcode |
629 |
|
|
12 Zugriff auf externe Daten |
638 |
|
|
12.1 Grundkonzepte relationaler Datenbanken |
638 |
|
|
12.2 Import externer Daten |
644 |
|
|
12.2.1 Datenimport mit Power Query |
645 |
|
|
12.2.2 Datenimport mit MS Query |
653 |
|
|
12.2.3 Das QueryTable-Objekt |
664 |
|
|
12.2.4 Excel-Daten exportieren |
667 |
|
|
12.3 Datenbankzugriff mit der ADO-Bibliothek |
668 |
|
|
12.3.1 Einführung |
668 |
|
|
12.3.2 Verbindungsaufbau (Connection) |
673 |
|
|
12.3.3 Datensatzlisten (Recordset) |
676 |
|
|
12.3.4 SQL-Kommandos (Command) |
683 |
|
|
12.3.5 SQL-Grundlagen |
684 |
|
|
12.3.6 Syntaxzusammenfassung |
687 |
|
|
12.4 Beispiel: Fragebogenauswertung |
689 |
|
|
12.4.1 Überblick |
689 |
|
|
12.4.2 Aufbau des Fragebogens |
692 |
|
|
12.4.3 Aufbau der Datenbank |
694 |
|
|
12.4.4 Programmcode |
696 |
|
|
13 Datenanalyse in Excel |
706 |
|
|
13.1 Daten gruppieren (Teilergebnisse) |
706 |
|
|
13.1.1 Einführung |
706 |
|
|
13.1.2 Programmierung |
708 |
|
|
13.2 Pivot-Tabellen (Kreuztabellen) |
710 |
|
|
13.2.1 Einführung |
710 |
|
|
13.2.2 Gestaltungsmöglichkeiten |
714 |
|
|
13.2.3 Pivot-Tabellen für externe Daten |
719 |
|
|
13.2.4 Pivot-Tabellenoptionen |
723 |
|
|
13.2.5 Pivot-Diagramme |
724 |
|
|
13.3 Programmiertechniken |
724 |
|
|
13.3.1 Pivot-Tabellen erzeugen und löschen |
725 |
|
|
13.3.2 Aufbau und Bearbeitung vorhandener Pivot-Tabellen |
729 |
|
|
13.3.3 Interne Verwaltung (PivotCache) |
733 |
|
|
13.3.4 Syntaxzusammenfassung |
739 |
|
|
14 XML- und Listenfunktionen |
742 |
|
|
14.1 Bearbeitung von Listen |
742 |
|
|
14.2 XML-Grundlagen |
744 |
|
|
14.3 XML-Funktionen interaktiv nutzen |
747 |
|
|
14.4 XML-Programmierung |
751 |
|
|
15 Excel-Programmierung für Fortgeschrittene |
758 |
|
|
15.1 Excel-Add-ins |
758 |
|
|
15.2 Excel und das Internet |
763 |
|
|
15.2.1 Excel-Dateien als E-Mail versenden |
763 |
|
|
15.2.2 HTML-Import |
765 |
|
|
15.2.3 HTML-Export |
766 |
|
|
15.3 Smart Tags |
768 |
|
|
15.4 Web Services nutzen |
771 |
|
|
15.5 Dynamic Link Libraries (DLLs) verwenden |
777 |
|
|
15.6 ActiveX-Automation (COM) |
782 |
|
|
15.6.1 Excel als Client (Steuerung fremder Programme) |
783 |
|
|
15.6.2 Excel als Server (Steuerung durch fremde Programme) |
789 |
|
|
15.6.3 Neue Objekte für Excel (ClipBoard-Beispiel) |
793 |
|
|
15.6.4 Object Linking and Embedding (OLE) |
795 |
|
|
15.6.5 Automation und Visual Basic .NET |
799 |
|
|
15.6.6 Programme ohne ActiveX starten und steuern |
807 |
|
|
15.6.7 Syntaxzusammenfassung |
809 |
|
|
15.7 64-Bit-Programmierung |
810 |
|
|
15.7.1 Kompatibilitätsprobleme |
810 |
|
|
15.7.2 Ein problematisches (32-Bit-)Beispiel |
811 |
|
|
15.7.3 Syntaxzusammenfassung |
816 |
|
|
15.8 Visual Studio Tools for Office |
817 |
|
|
15.8.1 Bestandsaufnahme: die Grenzen von VBA |
817 |
|
|
15.8.2 VSTO: Profi-Werkzeug für Profi-Entwickler |
818 |
|
|
15.8.3 Grundlagen des VSTO-Einsatzes |
820 |
|
|
15.8.4 Beispielprojekte |
824 |
|
|
15.8.4.1 Individuelle Aufgabenbereiche anlegen |
824 |
|
|
15.8.4.2 Anpassen des Menübands |
826 |
|
|
15.8.4.3 Abfragen von Web Services |
829 |
|
|
15.9 Office-Add-ins |
832 |
|
|
15.9.1 Bestandteile eines Office-Add-ins |
833 |
|
|
15.9.2 Typen von Office-Add-ins |
834 |
|
|
15.9.3 Werkzeuge für die Entwicklung von Office-Add-ins |
836 |
|
|
15.9.4 Beispiel 1: SimpleApp |
836 |
|
|
15.9.5 Das JavaScript-API für Office |
843 |
|
|
15.9.6 Beispiel 2: ComplexApp |
847 |
|
|
Anhang |
852 |
|
|
A Inhalte der Download-Dateien zum Buch |
852 |
|
|
A.1 Objektreferenz |
852 |
|
|
A.2 Hyperlinks |
852 |
|
|
A.3 Beispieldateien |
853 |
|
|
B Verwendete Literatur |
853 |
|
|
C Nachweis der Grafiken & Icons |
854 |
|
|
Stichwortverzeichnis |
856 |
|