7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
1/608
Excel-VBA in 14 Tagen
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
2/608
Unser Online-Tippfr noch mehr Wissen ...
... aktuelles Fachwissen rund
um die Uhr zum Probelesen,
Downloaden oder auch auf Papier.
www.InformIT.de
http://www.informit.de/main/main.asp?page=bookdetails&ISBN=382726619Xhttp://www.informit.de/main/main.asp?page=bookdetails&ISBN=382726619Xhttp://www.informit.de/main/main.asp?page=bookdetails&ISBN=382726619Xhttp://www.informit.de/main/main.asp?page=bookdetails&ISBN=382726619Xhttp://www.informit.de/main/main.asp?page=bookdetails&ISBN=382726619Xhttp://www.informit.de/main/main.asp?page=bookdetails&ISBN=382726619Xhttp://www.informit.de/main/main.asp?page=bookdetails&ISBN=382726619X7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
3/608
EEEExxxxcccceeeellll----VVVVBBBBAAAA
B E R N D H E L D
eBookDie nicht autorisierte Weitergabe dieses eBooksan Dritte ist eine Verletzung des Urheberrechts!
http://www.mut.de/main/main.asp?page=bookdetails&ISBN=382726619Xhttp://www.pearsoned.de/7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
4/608
Bibliografische Information Der Deutschen Bibliothek
Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;detaillierte bibliografische Daten sind im Internet ber abrufbar.
Die Informationen in diesem Produkt werden ohne Rcksicht auf eineneventuellen Patentschutz verffentlicht.
Warennamen werden ohne Gewhrleistung der freien Verwendbarkeit benutzt.Bei der Zusammenstellung von Texten und Abbildungen wurde mit grterSorgfalt vorgegangen.Trotzdem knnen Fehler nicht vollstndig ausgeschlossen werden.Verlag, Herausgeber und Autoren knnen fr fehlerhafte Angabenund deren Folgen weder eine juristische Verantwortung nochirgendeine Haftung bernehmen.Fr Verbesserungsvorschlge und Hinweise auf Fehler sind Verlag undHerausgeber dankbar.
Alle Rechte vorbehalten, auch die der fotomechanischenWiedergabe und der Speicherung in elektronischen Medien.Die gewerbliche Nutzung der in diesem Produkt gezeigten
Modelle und Arbeiten ist nicht zulssig.
Fast alle Hardware- und Software-Bezeichnungen, die in diesem Bucherwhnt werden, sind gleichzeitig auch eingetragene Warenzeichenoder sollten als solche betrachtet werden.
Umwelthinweis:Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt.
10 9 8 7 6 5 4 3 2 1
06 05 04
ISBN 3-8272-6619-X
2004 by Markt+Technik Verlag,ein Imprint der Pearson Education Deutschland GmbH,
Martin-Kollar-Strae 1012, D81829 Mnchen/GermanyAlle Rechte vorbehaltenLektorat: Rainer Fuchs, [email protected]: Philipp Burkart, [email protected]: Petra Kienle, FrstenfeldbruckSatz: reemers publishing services gmbh, Krefeld, (www.reemers.de)Coverkonzept: independent Medien-Design, MnchenCoverlayout: Sabine KrohbergerDruck und Verarbeitung: Bercker, KevelaerPrinted in Germany
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
5/608
5
InhaltsverzeichnisLiebe Leserin, lieber Leser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Wochenvorschau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Tag 1 Die Entwicklungsplattform, Variablen und Konstantenkennen lernen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.1 Der Projekt-Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2 Das Eigenschaftenfenster . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Tabellen ein- und ausblenden . . . . . . . . . . . . . . . . . . . . . . 25Tabellen spiegeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Den zu bearbeitenden Bereich festlegen . . . . . . . . . . . . . . 26
1.3 Das Code-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Makros erfassen und starten . . . . . . . . . . . . . . . . . . . . . . . . 28
1.4 Der Makrorekorder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Ein- und Ausschalten der Gitternetzlinien . . . . . . . . . . . . 32Einheitliches Gestalten der Kopf- und Fuzeile . . . . . . . . 35
1.5 Der Objektkatalog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Letztesnderungsdatum einer Datei ermitteln. . . . . . . . . 41Monatsnamen ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.6 Die Online-Hilfe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Verwendete Befehle nachlesen . . . . . . . . . . . . . . . . . . . . . 43Verfgbare Objekte ansehen . . . . . . . . . . . . . . . . . . . . . . . 45Befehle suchen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.7 Weitere praktische Helfer in der Entwicklungsumgebung 46Die Symbolleiste Bearbeiten . . . . . . . . . . . . . . . . . . . . . . . 46
Suchen & Ersetzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Schnelles Arbeiten ber Tastenkombinationen. . . . . . . . . 551.8 Entwicklungsumgebung einstellen . . . . . . . . . . . . . . . . . . 57
Editoreinstellungen anpassen. . . . . . . . . . . . . . . . . . . . . . . 57Editierformat festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Allgemeine Einstellungen vornehmen. . . . . . . . . . . . . . . . 60Fenster verankern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
6/608
6
Inhaltsverzeichnis
1.9 Datentypen, Variablen und Konstanten . . . . . . . . . . . . . . . 62Was sind Variablen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Variablen deklarieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Variablendeklaration erzwingen. . . . . . . . . . . . . . . . . . . . . 66Vorsicht, Falle! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Statische Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68ffentliche Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Private Variablen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Objektvariablen einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . 71Konstanten einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Konstanten fr die Datumsfomatierung. . . . . . . . . . . . . . . 90
1.10 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
1.11 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981.12 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Tag 2 Die Sprachelemente von VBA . . . . . . . . . . . . . . . . . . . . . . . . . . 1012.1 Arbeiten mit Verzweigungen. . . . . . . . . . . . . . . . . . . . . . . . 102
Verzweigungen im Leben. . . . . . . . . . . . . . . . . . . . . . . . . . 103Verzweigungen in Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Verzweigungen in Excel-VBA . . . . . . . . . . . . . . . . . . . . . . 104Zelleninhalte prfen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Auch eine Art von Verzweigung. . . . . . . . . . . . . . . . . . . . . 1082.2 bersichtlichere Form mit Select Case . . . . . . . . . . . . . . . 109
Excel-Version feststellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Zahlenwerte prfen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Fensterstatus ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
2.3 Schleifen programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . 113For...Next-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114For Each...Next-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . 119Die Schleife Do Until...Loop . . . . . . . . . . . . . . . . . . . . . . . 125
Die Schleife Do While...Loop . . . . . . . . . . . . . . . . . . . . . . 1302.4 Auf Fehlersuche mit VBA . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Allgemeine Informationen zu Makros . . . . . . . . . . . . . . . . 133Fehler finden und beseitigen . . . . . . . . . . . . . . . . . . . . . . . 135Typische Fehlerquellen in Excel-VBA. . . . . . . . . . . . . . . . 144
2.5 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.6 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
2.7 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
7/608
Inhaltsverzeichnis
7
Tag 3 Die Excel-Anwendung einstellen und anpassen . . . . . . . . . . . . 1533.1 Vollbildansicht einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . 154
3.2 Weitere Einstellungen der Ansicht . . . . . . . . . . . . . . . . . . . 156
3.3 Lang laufende Makros schneller machen . . . . . . . . . . . . . 159Bildschirmaktualisierung ein- und ausschalten . . . . . . . . . 159Die Berechnung ein- und ausschalten. . . . . . . . . . . . . . . . 160Statuszeile einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161Standardmeldungen abschalten . . . . . . . . . . . . . . . . . . . . . 163
3.4 Automatische Listen generieren . . . . . . . . . . . . . . . . . . . . . 164Benutzerdefinierte Liste aus Makro erzeugen . . . . . . . . . . 164Benutzerdefinierte Liste aus Zelleninhalten erzeugen . . . 165
3.5 Drag&Drop ein- und ausschalten . . . . . . . . . . . . . . . . . . . 1673.6 Add-Ins berprfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1673.7 Wiedervorlageliste bearbeiten. . . . . . . . . . . . . . . . . . . . . . . 168
3.8 Sonstige Einstellmglichkeiten in Excel . . . . . . . . . . . . . . 171Allgemeine Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . 171Zoom einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Aufenthaltsbereich festlegen. . . . . . . . . . . . . . . . . . . . . . . . 174
3.9 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.10 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.11 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Tag 4 Auf Arbeitsmappen zugreifen Datei-Operationen . . . . . . . . . 1774.1 Arbeitsmappen ffnen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Arbeitsmappe ffnen (ohne Aktualisierung). . . . . . . . . . . . 180Arbeitsmappe(n) ffnen ber einen Dialog . . . . . . . . . . . . 181Geffnete Arbeitsmappen identifizieren . . . . . . . . . . . . . . 184
4.2 Arbeitsmappen speichern . . . . . . . . . . . . . . . . . . . . . . . . . . 185Arbeitsmappe speichern ber Dialog . . . . . . . . . . . . . . . . . 186Alle geffneten Arbeitsmappen speichern . . . . . . . . . . . . . 188Arbeitsmappe speichern unter Datum/Uhrzeit . . . . . . . . . 189Arbeitsmappe bedingt speichern . . . . . . . . . . . . . . . . . . . . 190
4.3 Arbeitsmappen schlieen . . . . . . . . . . . . . . . . . . . . . . . . . . 191Arbeitsmappe schlieen nderungen speichern. . . . . . . 191Arbeitsmappe schlieen nderungen verwerfen. . . . . . . 191Mehrere Arbeitsmappen schlieen. . . . . . . . . . . . . . . . . . . 191
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
8/608
8
Inhaltsverzeichnis
4.4 Arbeitsmappen anlegen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
4.5 Arbeitsmappen zusammenfhren. . . . . . . . . . . . . . . . . . . . 1934.6 Arbeitsmappen entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . 195
4.7 Die Dokumenteigenschaften . . . . . . . . . . . . . . . . . . . . . . . 196Dokumenteigenschaften auslesen . . . . . . . . . . . . . . . . . . . 197Dokumenteigenschaften setzen . . . . . . . . . . . . . . . . . . . . . 198
4.8 Verknpfungen in Arbeitsmappen . . . . . . . . . . . . . . . . . . . 201Verknpfungen dokumentieren . . . . . . . . . . . . . . . . . . . . . 202Verknpfungen ndern. . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
4.9 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.10 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.11 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Tag 5 Tabellenbltter programmieren . . . . . . . . . . . . . . . . . . . . . . . . . 207
5.1 Tabellen anlegen und benennen . . . . . . . . . . . . . . . . . . . . 208
5.2 Blatt-Typ bestimmen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210Tabellenbltter fllen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Blattprfung vor Fllung vornehmen . . . . . . . . . . . . . . . . 212
5.3 Tabellen entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213Tabelle nach Rckfrage lschen . . . . . . . . . . . . . . . . . . . . 213
Rckfrage bei Tabellenlschung unterdrcken. . . . . . . . . 213Eigene Rckfrage programmieren . . . . . . . . . . . . . . . . . . . 214Vor dem Lschen prfen . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.4 Tabellen exportieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216Tabelle als Textdatei exportieren . . . . . . . . . . . . . . . . . . . . 216Tabelle in eine neue Arbeitsmappe kopieren . . . . . . . . . . 218Tabelle in neue Arbeitsmappe bertragen. . . . . . . . . . . . . 219Tabelle in andere Arbeitsmappe kopieren/bertragen. . . . 220
5.5 Tabellen importieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Textdatei-Import mit festen Datenfeldern . . . . . . . . . . . . . 221Textdatei-Import mit variablen Datenfeldern . . . . . . . . . . 224
5.6 Tabellen ein- und ausblenden . . . . . . . . . . . . . . . . . . . . . . 226Einfaches Aus- und Einblenden einer Tabelle . . . . . . . . . 227Mehrere Tabellen ausblenden . . . . . . . . . . . . . . . . . . . . . . 228Das sichere Ausblenden von Blttern. . . . . . . . . . . . . . . . . 229Bltter wieder einblenden. . . . . . . . . . . . . . . . . . . . . . . . . . 230
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
9/608
Inhaltsverzeichnis
9
5.7 Tabellen gruppieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231Einfaches Gruppieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232Komplexeres Gruppieren . . . . . . . . . . . . . . . . . . . . . . . . . . 234
5.8 Tabellen schtzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235Nur bestimmte Zellen vor Vernderung schtzen . . . . . . 237Temporren Schutz einstellen . . . . . . . . . . . . . . . . . . . . . . 239Bestimmte Bereiche vom Schutz ausnehmen . . . . . . . . . . 240
5.9 Tabellen sortieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
5.10 Kopf- und Fuzeilen programmieren. . . . . . . . . . . . . . . . . 243Kopf- und Fuzeilen fllen . . . . . . . . . . . . . . . . . . . . . . . . 243
5.11 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
5.12 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2465.13 bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Tag 6 Zellbearbeitung mit VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
6.1 Zellen markieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Zelle markieren und Koordinaten ausgeben . . . . . . . . . . . 250Zellenbereich markieren und Koordinaten ausgeben . . . . 251Mehrere Zellenbereiche markieren . . . . . . . . . . . . . . . . . . 251Relative Markierungsformen . . . . . . . . . . . . . . . . . . . . . . . 253Zellen ber einen Index ansprechen . . . . . . . . . . . . . . . . . 256Den verwendeten Bereich ermitteln . . . . . . . . . . . . . . . . . 257Den umliegenden Bereich ermitteln . . . . . . . . . . . . . . . . . 258
6.2 Zellen f llen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Zellen initialisieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Zellen abfragen und ndern . . . . . . . . . . . . . . . . . . . . . . . . 260
6.3 Zellen formatieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262Hintergrundfarbe von Zellen festlegen . . . . . . . . . . . . . . . 262Schriftart festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Die Schriftschnitte angeben . . . . . . . . . . . . . . . . . . . . . . . . 266Zellen rahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268Zahlenformate festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . 270Datumsformate festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . 271
6.4 Zellen benennen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
6.5 Zellen kommentieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276Kommentarzellen auskundschaften . . . . . . . . . . . . . . . . . . 276Kommentare aus Zelleninhalten erstellen. . . . . . . . . . . . . 278
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
10/608
10
Inhaltsverzeichnis
Zellen fllen aus Kommentaren. . . . . . . . . . . . . . . . . . . . . 279Kommentare lschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
6.6 Arbeiten mit Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Addition von bestimmten Stzen . . . . . . . . . . . . . . . . . . . . 282Subtraktion von Datumsangaben . . . . . . . . . . . . . . . . . . . . 285Preise erhhen durch Multiplikation. . . . . . . . . . . . . . . . . 285DM-Umrechnung mit Division . . . . . . . . . . . . . . . . . . . . . 287
6.7 Tabellenfunktionen einsetzen. . . . . . . . . . . . . . . . . . . . . . . 288Die Funktionsliste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288Die Tabellenfunktion Sum. . . . . . . . . . . . . . . . . . . . . . . . . 289Die Tabellenfunktionen Datedif und Rank. . . . . . . . . . . . 291Die Tabellenfunktion SumIf . . . . . . . . . . . . . . . . . . . . . . . 293
Die Tabellenfunktion CountIf . . . . . . . . . . . . . . . . . . . . . . 295Die Tabellenfunktion Count . . . . . . . . . . . . . . . . . . . . . . . 296Die Tabellenfunktion CountA . . . . . . . . . . . . . . . . . . . . . . 297Die Tabellenfunktion CountBlank . . . . . . . . . . . . . . . . . . 299
6.8 Formeln finden und dokumentieren . . . . . . . . . . . . . . . . . 300Formelzellen finden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301Formelzellen dokumentieren. . . . . . . . . . . . . . . . . . . . . . . 303
6.9 Gltigkeitsprfungen vornehmen . . . . . . . . . . . . . . . . . . . 306Nur ganze Zahlen eingeben. . . . . . . . . . . . . . . . . . . . . . . . 306Datumsgrenzen einstellen . . . . . . . . . . . . . . . . . . . . . . . . . 309Gltigkeitsliste erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
6.10 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
6.11 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
6.12 bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Tag 7 Aktionen und Benutzereingaben in Excel berwachen . . . . . . 3157.1 Was sind Ereignisse? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
7.2 Ereignisse auf Arbeitsmappenebene . . . . . . . . . . . . . . . . . . 317Das Ereignis Workbook_Open. . . . . . . . . . . . . . . . . . . . . . 317Das Ereignis Workbook_BeforeClose . . . . . . . . . . . . . . . . 319Das Ereignis Workbook_BeforeSave . . . . . . . . . . . . . . . . . 320Das Ereignis Workbook_NewSheets . . . . . . . . . . . . . . . . . 321Weitere Arbeitsmappenereignisse im berblick . . . . . . . . 322
7.3 Ereignisse auf Tabellenblattebene . . . . . . . . . . . . . . . . . . . 324Das Ereignis Activate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324Das Ereignis Change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
11/608
Inhaltsverzeichnis
11
Das Ereignis Selection_Change. . . . . . . . . . . . . . . . . . . . . 329Das Ereignis Calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330Weitere Tabellenereignisse im berblick . . . . . . . . . . . . . 331
7.4 Excel ber Tastenkombinationen bedienen. . . . . . . . . . . . 332Formeln und Verknpfungen in Festwerte wandeln. . . . . 332Bestimmte Standardtastenkombinationen deaktivieren. . . 337Nur Werte einfgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338Sonderzeichen per Tastenkombination einfgen . . . . . . . 339
7.5 Programmieren mit der Maus . . . . . . . . . . . . . . . . . . . . . . 342Kontextmen deaktivieren/aktivieren. . . . . . . . . . . . . . . . . 342Kontextmen fr bestimmte Bereiche deaktivieren . . . . . 343Kontextmen in allen Tabellen deaktivieren. . . . . . . . . . . 344
Kontextmen in bestimmten Tabellen deaktivieren . . . . . 345Eigene Funktionen mit der rechten Maustaste starten . . . 346Doppelklick deaktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . 349Werte hochzhlen per Doppelklick . . . . . . . . . . . . . . . . . . 351Zufallszahlen per Doppelklick . . . . . . . . . . . . . . . . . . . . . . 352
7.6 Excel zeitmig steuern . . . . . . . . . . . . . . . . . . . . . . . . . . . 353Die Uhr immer im Blick . . . . . . . . . . . . . . . . . . . . . . . . . . 354Countdown in Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355Verarbeitung zu einer bestimmten Zeit beginnen. . . . . . . 356
7.7 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3577.8 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
7.9 bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Wochenvorschau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Tag 8 Groe Datenmengen in VBA behandeln und auswerten . . . . . 3638.1 Daten filtern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Den AutoFilter aktivieren. . . . . . . . . . . . . . . . . . . . . . . . . . 365
Ein Filterkriterium einsetzen . . . . . . . . . . . . . . . . . . . . . . . 365Mehrere Filterkriterien festlegen . . . . . . . . . . . . . . . . . . . . 367Filterkriterium aus Zelle beziehen. . . . . . . . . . . . . . . . . . . 370Der Filter TopTen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370Wo stecken die Filter? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373Den Spezialfilter einsetzen. . . . . . . . . . . . . . . . . . . . . . . . . 374Gefilterte Daten exportieren. . . . . . . . . . . . . . . . . . . . . . . . 376
8.2 Pivot-Tabellen einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
12/608
12
Inhaltsverzeichnis
Pivot-Tabellen erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 379Pivot-Tabellen aktualisieren . . . . . . . . . . . . . . . . . . . . . . . . 382
8.3 Diagramme erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Diagrammtypen auswhlen . . . . . . . . . . . . . . . . . . . . . . . . 384Der Standard das Sulendiagramm. . . . . . . . . . . . . . . . . 385Ergebnisse ber das Balkendiagramm vergleichen . . . . . . 387Tagesgenaue Auswertungen ber das Liniendiagramm . . 389Daten richtig skalieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393Diagramme platzieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393Diagramme formatieren . . . . . . . . . . . . . . . . . . . . . . . . . . . 395Diagramme exportieren . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
8.4 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
8.5 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4018.6 bungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Tag 9 Funktionen einsetzen, um Excel zu automatisieren . . . . . . . . . 403
9.1 Eigene Tabellenfunktionen stricken. . . . . . . . . . . . . . . . . . 405Zellen mit blauer, dicker Schriftfarbe summieren. . . . . . . 405Aktuelle Arbeitsmappe ermitteln . . . . . . . . . . . . . . . . . . . . 408Formelcheck durchfhren . . . . . . . . . . . . . . . . . . . . . . . . . 409Zelleninformationen abfragen . . . . . . . . . . . . . . . . . . . . . . 410
Dokumenteigenschaften per Funktion abfragen . . . . . . . . 411Buchstaben aus Zellen eliminieren . . . . . . . . . . . . . . . . . . 413Das erste Auftreten einer Zahl ermitteln . . . . . . . . . . . . . . 414
9.2 Modulare Funktionen programmieren . . . . . . . . . . . . . . . 416Arbeitsmappen-Existenz prfen . . . . . . . . . . . . . . . . . . . . . 416Arbeitsmappen-Zustand prfen . . . . . . . . . . . . . . . . . . . . . 417Eine mchtige Lschfunktion erstellen . . . . . . . . . . . . . . . 419
9.3 Funktionen dauerhaft verfgbar machen. . . . . . . . . . . . . . 422Speichern der Funktionen in der persnlichen Makroarbeits-mappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422Speichern der Funktionen in einem Add-In . . . . . . . . . . . 424
9.4 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
9.5 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
9.6 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
13/608
Inhaltsverzeichnis
13
Tag 10 Excel und das Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
10.1 Arbeiten mit Hyperlinks . . . . . . . . . . . . . . . . . . . . . . . . . . . 430Hyperlinks aus einer Tabelle entfernen . . . . . . . . . . . . . . . 431
Hyperlinks aus Zelleninhalten herstellen. . . . . . . . . . . . . . 432Inhaltsverzeichnis erstellen. . . . . . . . . . . . . . . . . . . . . . . . . 434
10.2 E-Mails verschicken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
10.3 Kontakte austauschen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
10.4 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
10.5 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
10.6 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Tag 11 Excel und Datenzugriffe auf Access und Word . . . . . . . . . . . . . 447
11.1 Die Voraussetzung fr den Datenaustausch . . . . . . . . . . . 44811.2 Excel-Daten in eine Access-Datenbank berfhren . . . . . 45111.3 Access-Daten in Excel-Tabellen berfhren . . . . . . . . . . . 455
Alle Datenstze nach Excel transferieren. . . . . . . . . . . . . . 455Nur bestimmte Datenstze nach Excel transferieren . . . . 458
11.4 Access-Tabellen manipulieren . . . . . . . . . . . . . . . . . . . . . . 461
11.5 Datenstze lschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46211.6 Zusammenarbeit zwischen Excel und Word vorbereiten . 464
11.7 Word-Sitzung starten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46511.8 Word-Sitzung bernehmen . . . . . . . . . . . . . . . . . . . . . . . . 46711.9 Briefkopf aus Excel-Tabelle erstellen und in ein
Dokument einfgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46811.10 Ganze Excel-Tabellen in ein Word-Dokument einfgen . 47211.11 Word-Dokumente in einer Excel-Tabelle auflisten . . . . . . 474
11.12 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
11.13 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
11.14 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Tag 12 Arbeiten an der Oberflche Men- und Symbolleistenprogrammieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
12.1 Art der Leiste identifizieren . . . . . . . . . . . . . . . . . . . . . . . . 486
12.2 Menleisten programmieren . . . . . . . . . . . . . . . . . . . . . . . 488Arbeitsblatt-Menleiste ein- und ausblenden. . . . . . . . . . . 489Neue Mens einfgen und lschen. . . . . . . . . . . . . . . . . . 490Menbefehle einfgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
14/608
14
Inhaltsverzeichnis
12.3 Symbolleisten programmieren . . . . . . . . . . . . . . . . . . . . . . 494Neue Symbolleiste anlegen . . . . . . . . . . . . . . . . . . . . . . . . 494Symbole integrieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
12.4 Kontextmens programmieren. . . . . . . . . . . . . . . . . . . . . . 500Zellen-Kontextmen erweitern. . . . . . . . . . . . . . . . . . . . . . 500Kontextmenbefehle entfernen . . . . . . . . . . . . . . . . . . . . . 501
12.5 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
12.6 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
12.7 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Tag 13 Dialoge entwerfen, mit Steuerelementen bestcken undautomatisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
13.1 Was sind UserForms? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50613.2 UserForms entwerfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Bilder in UserForms einfgen . . . . . . . . . . . . . . . . . . . . . . 510Horizontale Trennstreifen einfgen. . . . . . . . . . . . . . . . . . 511Steuerelemente beschriften . . . . . . . . . . . . . . . . . . . . . . . . 511Aktivierreihenfolge festlegen. . . . . . . . . . . . . . . . . . . . . . . . 511
13.3 UserForms programmieren. . . . . . . . . . . . . . . . . . . . . . . . . 512UserForm aufrufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512UserForm beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513Speichern der eingegebenen Daten. . . . . . . . . . . . . . . . . . 514Vokabeln einfgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516Vokabeln prfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519Anzeigen der nchsten drei Vokabeln . . . . . . . . . . . . . . . . 521
13.4 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
13.5 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
13.6 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Tag 14 Import und Export ber VBE-Programmierung . . . . . . . . . . . . 52714.1 Was ist VBE-Programmierung? . . . . . . . . . . . . . . . . . . . . . 528
14.2 Voraussetzung das Einbinden der VBE-Bibliothek. . . . . 52814.3 Weitere Informationen zu Bibliotheken. . . . . . . . . . . . . . . 532
14.4 VBE-Bibliothek deaktivieren . . . . . . . . . . . . . . . . . . . . . . . 534
14.5 Objekte, Methoden und Eigenschaften der VBE . . . . . . . 535
14.6 Typische Aufgaben mit der VBE erledigen . . . . . . . . . . . . 536Arbeitsmappe mit Quellcode bestcken . . . . . . . . . . . . . . 536
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
15/608
Inhaltsverzeichnis
15
Quellcode sichern ber den Export . . . . . . . . . . . . . . . . . . 540Module ausdrucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543Arbeitsmappen von Modulen befreien. . . . . . . . . . . . . . . . 544
Ein bestimmtes Makro entfernen. . . . . . . . . . . . . . . . . . . . 545Ein Ereignis lschen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546VBE aufrufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
14.7 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
14.8 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
14.9 bung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
Tag 15 Lsungen der Tages-bungen. . . . . . . . . . . . . . . . . . . . . . . . . . . 553A Tag 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
Listing A.1:Tag 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555Listing A.2:Tag 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
Listing A.3:Tag 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Listing A.4:Tag 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Listing A.6:Tag 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Listing A.11:Tag 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
Listing A.14:Tag 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
Listing A.16:Tag 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Listing A.17:Tag 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566Listing A.18:Tag 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Listing A.20:Tag 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Listing A.21:Tag 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
Listing A.22:Tag 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Tag 16 Wichtige Funktionen in einem eigenen Add-In ablegen . . . . . 573
B.1 Die Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
B.2 Der Quellcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576Menerstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576B.3 Die Makros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Formeln in Festwerte umwandeln . . . . . . . . . . . . . . . . . . . 581Aktive Tabelle als E-Mail verschicken . . . . . . . . . . . . . . . . 582Aktive Tabelle in neuer Arbeitsmappe speichern . . . . . . . 583Informationen zu Datum und Zeit. . . . . . . . . . . . . . . . . . . 583Informationen zur aktiven Arbeitsmappe. . . . . . . . . . . . . . 584ffnen aller verknpften Arbeitsmappen. . . . . . . . . . . . . . 584
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
16/608
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
17/608
17
Liebe Leserin, lieber Leser
Das Programm Microsoft Excel ist technisch sehr ausgereift und Sie werden aufden ersten Blick nicht viel vermissen, was Sie fr Ihre tgliche Arbeit brauchen.Mit Hilfe von VBA-Makros lassen sich aber gerade tgliche lstige Routinearbeitenweitgehend automatisieren. Sie haben zwar einmalig den Aufwand mit der Erstel-lung der dazu bentigten Makros; spter profitieren Sie jedoch davon und habenviel mehr Zeit fr andere Dinge zur Verfgung. Auerdem werden Sie zuneh-mend auf programmierte Excel-Lsungen stoen. Nur wenn Sie selbst mit VBAprogrammieren knnen, verstehen Sie diese Lsungen wirklich und knnen sieselbst nach Ihren Bedrfnissen abndern, ohne auf externe Dienstleister zurck-greifen zu mssen.
Dieses Buch ist in 14 Kapitel gegliedert. Sie knnen es somit, wenn Sie wollen, inzwei Wochen durcharbeiten, wenn Sie sich jeden Tag ein Kapitel vornehmen. Anden Kapitelenden finden Sie nahezu immer einen Workshop mit Fragen & Ant-worten, einem Quiz und einer oder auch mehreren bungen. Sie dienen Ihnenzur persnlichen Erfolgskontrolle. Ich habe mich bemht, die wichtigsten und inte-
ressantesten Lsungen im Buch vorzustellen. Zu jedem Kapitel knnen Sie auf dermitgelieferten CD-ROM die entsprechende Beispieldatei ffnen und den Quell-code ansehen und testen. Sie brauchen daher nicht die einzelnen Listings abzutip-pen (wenngleich ich Ihnen das empfehle, weil dann der Lerneffekt hher ist).
Am Ende des Buches werden Sie in der Lage sein, effektiv mit VBA-Makros umzu-gehen und eigene Lsungen zu entwickeln.
Bei Nachfragen und allgemeinem Feedback zu meinem Buch erreichen Sie michber meine Excel-Homepage http://held-Office.de oder ber [email protected]. Soerreichen Sie gleichzeitig auch den Verlag, den es wie mich selbst interessiert, welcheAnregungen und Kritik Sie haben. Auf der Homepage von Markt+Technik finden Sieauch ein eigenes VBA-Forum (http://www.mut.de/main/main.asp?page=vbaforum ),wo Sie Ihre VBA-Fragen loswerden knnen. Ich moderiere dieses Forum und ant-worte dort nahezu tglich. Auch Sie sind natrlich herzlich eingeladen, in diesemVBA-Forum zu antworten.
Besuchen Sie auch ruhig einmal das Excel-Diskussionsforum news:micro-soft.public.de.excel oder das Excel-Spotlight-Forum unter http://spotlight.de/zforen/mse/t/forum_mse_1.html. Hier knnen Sie auf jeden Fall eine ganze Menge lernen.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
18/608
Liebe Leserin, lieber Leser
18
Mchten Sie einen VBA-Kurs besuchen, so finden Sie auf meiner Homepageregelmig Schulungsangebote. Diese Angebote reichen von Einzelschulungenbei mir zu Hause ber Hotel- und Firmenschulungen, die ich als Dozent abhalte.
Gerne komme ich auch direkt zu Ihnen in Ihre Firma, um VBA zu schulen.Nun aber viel Spa beim Lesen und bei der Programmierung Ihrer Excel-Arbeits-mappen!
Bernd Held
MVP fr Microsoft Excel
In diesem Buch verwendete KonventionenDieses Buch enthlt spezielle Icons, mit denen wichtige Konzepte und Informationen her-ausgestrichen werden sollen.
Ein Hinweis enthlt interessante Informationen zum behandelten Thema.
Ein Tipp gibt Ihnen Ratschlge oder zeigt Ihnen einfachere Wege zur Lsungeines Problems auf.
Ein Achtungszeichen weist Sie auf mgliche Probleme hin und hilft Ihnen,schwierigen Situationen aus dem Wege zu gehen.
Das Symbol Neuer Begriff ist den Abstzen hinzugefgt, in denen einneuer Begriff definiert wird. Der neue Begriff ist kursiv gedruckt, so dassSie ihn leicht erkennen knnen.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
19/608
W
O
C
H
E
W
O
C
H
E
TTTTaaaagggg 1111 Die Entwicklungsplattform, Variablenund Konstanten kennen lernen 21
TTTTaaaagggg 2222 Die Sprachelemente von VBA 101
TTTTaaaagggg 3333 Die Excel-Anwendung einstellen und anpassen 153
TTTTaaaagggg 4444 Auf Arbeitsmappen zugreifen Datei-Operationen 177
TTTTaaaagggg 5555 Tabellenbltter programmieren 207
TTTTaaaagggg 6666 Zellbearbeitung mit VBA 249
TTTTaaaagggg 7777 Aktionen und Benutzereingaben inExcel berwachen 315
TTTTaaaagggg 8888 Groe Datenmengen in VBA behandelnund auswerten 363
TTTTaaaagggg 9999 Funktionen einsetzen, um Excel zu automatisieren 403
TTTTaaaagggg 10101010 Excel und das Internet 429
TTTTaaaagggg 11111111 Excel und Datenzugriffe auf Access und Word 447
TTTTaaaagggg 12121212 Arbeiten an der Oberflche Men-und Symbolleisten programmieren 485
TTTTaaaagggg 13131313 Dialoge entwerfen, mit Steuerelementenbestcken und automatisieren 505
TTTTaaaagggg 14141414 Makros dynamisch erzeugen, importieren,exportieren ber VBE-Programmierung 527
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
20/608
20
Die wichtigsten Grundlagenund Objekte in VBA fr Excel
In der ersten Woche werden Sie am 1. Tag mit der Entwicklungsumgebung vonExcel bekannt gemacht. Sie werden einige Makros eingeben und ablaufen lassen.Bei der Eingabe der Makros werden Sie tatkrftig untersttzt durch spezielle Funk-tionen und Features der Entwicklungsumgebung, mit deren Hilfe Sie Codesschnell erfassen und optisch hervorheben knnen. Des Weiteren lernen SieDatentypen, Variablen und Konstanten kennen.
Der 2. Tag stellt Ihnen die wichtigsten Sprachelemente, wie Schleifen, Verzwei-gungen und Abfragen, welche in jeder Programmiersprache vorkommen, vor.Schon an diesem Tag lernen Sie, wie Sie diese Sprachelemente anhand von Bei-spielen aus der Praxis einsetzen knnen.
Der 3. Tag hat als Ausbildungsziel das Einstellen der Excel-Applikationen. So wer-den Sie lernen, wie Sie Excel individuell ber den Einsatz von Makros konfigurie-ren knnen.
Am 4. Tag beginnen Sie mit Excel-Arbeitsmappen zu arbeiten. Sie werden u.a. neue
Arbeitsmappen anlegen und speichern, Arbeitsmappen drucken, umbenennen odernach bestimmten Mappen auf Ihrer Festplatte oder auf einem Netzwerk suchen.
Am 5. Tag der ersten Woche werden Sie sich intensiv mit Tabellenbltternbeschftigen. Unter anderem werden Sie Tabellenbltter einfgen und mit Datenfllen, Tabellen entfernen oder umbenennen bzw. bestimmte Daten auf Tabellensuchen und kennzeichnen.
Am 6. Tag lernen Sie, wie Sie die kleinste Einheit in Excel, die Zelle, ansprechenund programmieren knnen. Unter anderem werden Sie Zellen auslesen, fllen,
einfrben, einfgen, lschen und vieles mehr.Am 7. Tag steigen Sie in die Welt der Ereignisse von Excel ein. Mit ein paar weni-gen Handgriffen werden Sie dabei erstaunliche Features in Excel programmieren.Unter anderem lernen Sie, wie Sie auf Benutzereingaben automatisch reagierenund wie Sienderungen an Ihren Tabellen dokumentieren knnen. Des Weite-ren lernen Sie, wie Sie Excel ber Tastatur bzw. Zeitfunktionen steuern knnen.Unter anderem werden Sie an diesem Tag Makrolsungen erstellen, die zubestimmten Zeitpunkten automatisch starten.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
21/608
1
Die Entwicklungs-
plattform, Variablenund Konstantenkennen lernen
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
22/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
22
Die Entwicklungsumgebung von Excel ist in der Anwendung integriert. Allerdingsist sie nicht gleich fr jedermann sichtbar. In die Entwicklungsumgebung gelan-gen Sie, indem Sie eine der folgenden alternativen Vorgehensweisen whlen:
Drcken Sie die Tastenkombination (Alt) + (F11).
Whlen Sie aus dem Men EXTRAS den Befehl MAKRO/VISUAL BASIC-EDI-TOR.
Klicken Sie mit der rechten Maustaste auf einen beliebigen Tabellenreiter(unten) und whlen Sie aus dem Kontextmen den Befehl CODEANZEIGEN.
Blenden Sie die Symbolleiste VISUALBASIC ein und klicken Sie das SymbolVISUALBASIC-EDITORan.
Wie Sie sehen, haben Sie eine Menge von Mglichkeiten, in die Ent-wicklungsumgebung von Excel zu gelangen. Persnlich bevorzuge ichdie erste Variante, also das Drcken der Tastenkombination (Alt) +(F11), da dies am schnellsten geht.
Egal, fr welche Variante Sie sich entscheiden alle Varianten fhren zum selbenZiel. Sehen Sie sich nun die erste Abbildung an.
Abbildung 1.1:Der erste Aufrufder Entwicklungs-umgebung
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
23/608
23
Der Projekt-Explorer
1.1 Der Projekt-Explorer
Auf der linken Seite sehen Sie den Projekt-Explorer. Dieser Explorer beinhaltetdie momentan geffneten Arbeitsmappen. Darber hinaus werden Excel-Add-Insangezeigt, die Sie in Ihrer Excel-Applikation ber den Add-Ins-Manager eingebun-den haben. Diese Add-Ins, die Sie an der Endung .xla erkennen knnen, lassensich ber das Plussymbol leider nicht ffnen, es sei denn, Sie wissen das Kennwort,mit dem diese Add-Ins von Microsoft geschtzt wurden. Alle anderen im Projekt-Explorer angezeigten Elemente knnen Sie aufklappen.
In der Arbeitsmappe Personl.xls knnen Sie Makros speichern, die Sie inZukunft fr alle weiteren Excel-Arbeitsmappen einsetzen mchten. WieSie diese wichtige Arbeitsmappe anlegen und mit Makros bestcken, ler-nen Sie im weiteren Verlauf des Tages. Vergleichbar ist diese Datei mitder zentralen Dokumentvorlage Normal.dot, die Sie eventuell schon vonWord kennen. Auch dort werden Makros hinterlegt, um sie fr alle wei-teren Dokumente benutzen zu knnen.
In Abbildung 1.1 sehen Sie, dass neben den beiden Add-Ins und der zentralenMakro-Arbeitsmappe Personl.xls eine weitere Arbeitsmappe Mappe2 angezeigtwird. Wenn Sie ber das Plussymbol die einzelnen Elemente dieser Arbeitsmappeaufklappen, erscheinen die in der Mappe enthaltenen Tabellenbltter (Tabelle1bis Tabelle3) sowie der Eintrag DieseArbeitsmappe. Hinter jedem dieser Elementeknnen Sie so genannte Ereignisse einstellen.
Unter einem Ereignis versteht man in Excel Vorgnge wie das ffnenoder Schlieen einer Arbeitsmappe, die Eingabe von Daten in Zellen,das Drucken oder Speichern von Mappen und vieles mehr. Ereignisseknnen Sie entweder auf Tabellenebene oder auf Arbeitsmappenebeneeinstellen. Sie haben somit die Mglichkeit, bestimmte Vorgnge in
Ihren Excel-Tabellen separat zu berwachen und auf Vernderungenindividuell zu reagieren. Auf dieses Spezialthema wird an diesem Tagnicht weiter eingegangen. Lernen Sie am Tag 7 praktische Einsatzmg-lichkeiten fr Ereignisse kennen.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
24/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
24
1.2 Das Eigenschaftenfenster
ber das Men ANSICHT und den Befehl EIGENSCHAFTEN knnen Sie das Eigen-schaftenfenster anzeigen, sofern es nicht bereits eingeblendet ist. Alternativ dazuknnen Sie auch die Taste (F4) drcken, um dieses Fenster einzublenden.
Mithilfe dieses Fensters knnen Sie bestimmte Eigenschaften der im Projekt-Explorer markierten Objekte nher bestimmen. In diesem Beispiel ist im Projekt-Explorer der Eintrag Tabelle1 (Tabelle1) markiert. Im Eigenschaftenfenster wer-den daraufhin die verfgbaren Eigenschaften fr dieses Objekt angezeigt.
Die Namen der einzelnen Tabellen entsprechen im ersten Teil dem Namen derzeitlichen Reihenfolge, nach der die Tabellen in die Arbeitsmappe eingefgt wur-den. So werden standardmig bei der Neuanlage einer Arbeitsmappe genau drei
Tabellen eingefgt. Die erste Tabelle bekommt dabei den internen NamenTabelle1, die zweite Tabelle den Namen Tabelle2 usw. Der Name, der in Klam-mern steht, ist der eigentliche Name der Tabelle, d.h., wenn Sie eine Tabelleumbenennen, wird der tatschliche Name in Klammern angezeigt. Um den erstenTeil des Namens anzupassen, knnen Sie den Mauszeiger im Eigenschaftenfens-ter rechts neben die Rubrik (Name) setzen und den gewnschten Namen derTabelle direkt erfassen. Den zweiten Teil des Namens, der auf dem Tabellenreiter
Abbildung 1.2:Das Eigen-
schaftenfenster
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
25/608
25
Das Eigenschaftenfenster
der Tabelle angezeigt wird, knnen Sie anpassen, indem Sie den Mauszeiger imEigenschaftenfenster rechts neben die Rubrik Name setzen und den gewnschtenNamen der Tabelle direkt erfassen.
Tabellen ein- und ausblenden
ber das Eigenschaftenfenster knnen Sie die Tabelle1 ausblenden. Dazu befol-gen Sie die folgenden Arbeitsschritte:
1. Markieren Sie im Projekt-Explorer den Eintrag Tabelle1 (Tabelle1).
2. Setzen Sie den Mauszeiger im Eigenschaftenfenster rechts neben das Feld
Visible.3. Dort wird nun ein Dropdown-Men angeboten, aus dem Sie eine der folgen-
den Einstellmglichkeiten auswhlen knnen.
-1 xlSheetVisible: Das Einstellen dieser Konstante bewirkt, dass sich dieTabelle im eingeblendeten Zustand befindet (Standardeinstellung).
0 xlSheetHidden: Whlen Sie diese Einstellung, um die Tabelle auszu-blenden. Wenn Sie danach aus der Entwicklungsumgebung heraus in dienormale Arbeitsoberflche von Excel wechseln, wird die Tabelle nicht
mehr angezeigt. Sie haben bei dieser Einstellung aber noch die Mglich-keit, die ausgeblendete Tabelle ber das Men FORMAT und den BefehlBLATT/EINBLENDEN wieder verfgbar zu machen.
2 xlSheetVeryHidden: ber diese Einstellung sorgen Sie dafr, dass dieTabelle sicher ausgeblendet wird, d.h. der Anwender kann die so ausge-blendete Tabelle nicht ber das Men FORMAT und den Befehl BLATT/EINBLENDEN wieder verfgbar machen.
Wenn Sie sich fr die sichere Variante, eine Tabelle auszublenden, ent-
schieden haben, dann knnen Sie die so ausgeblendete Tabelle wiederber den Projekt-Explorer und das Eigenschaftenfenster verfgbarmachen, indem Sie die ausgeblendete Tabelle im Projekt-Explorer mar-kieren und im Eigenschaftenfenster unter der Rubrik Visible die Kons-tante -1 xlVisible einstellen.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
26/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
26
Tabellen spiegelnMchten Sie einen anderen Anwender verwirren, dann drehen Sie die gewohnteAnsicht einer Tabelle einfach um. Dabei stellen Sie die gespiegelte Ansicht berdas Eigenschaftenfenster wie folgt ein:
1. Markieren Sie im Projekt-Explorer Tabelle2.
2. Im Eigenschaftenfenster setzen Sie den Mauszeiger rechts neben die RubrikDisplayRightToLeft.
3. Whlen Sie aus dem Dropdown-Feld den Eintrag True.4. Wechseln Sie auf die Arbeitsoberflche von Excel.
Den zu bearbeitenden Bereich festlegen
Standardmig kann ein Anwender auf alle Zellen einer Tabelle zugreifen. Dabeihat er in einer Tabelle Zugriff auf maximal 256 Spalten und 65.536 Zeilen. Mch-
Abbildung 1.3:Die mit xlSheet-
VeryHidden aus-geblendeteTabelle1 kannber die normaleOberflche vonExcel nicht mehreingeblendetwerden.
Abbildung 1.4:Spalten gespiegelt
etwas anders alsgewohnt
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
27/608
27
Das Code-Fenster
ten Sie den Zugriff ein wenig einschrnken, knnen Sie gezielt ber das Eigen-schaftenfenster den Bereich abstecken, in dem sich ein Anwender aufhalten darf.Dazu befolgen Sie die nchsten Arbeitsschritte:
1. Markieren Sie im Projekt-Explorer den Eintrag Tabelle3.
2. Setzen Sie den Mauszeiger im Eigenschaftenfenster rechts neben die RubrikScrollArea.
3. Erfassen Sie die Formel =A1:D10 und drcken Sie anschlieend die Taste ().
4. Wechseln Sie nun auf Ihre Excel-Arbeitsoberflche und versuchen Sie, denMauszeiger ber die Pfeiltasten auerhalb dieses Bereiches zu positionieren.Es wird Ihnen nicht gelingen!
Leider bleibt diese Einstellung nicht dauerhaft bestehen. Sie mssendiese Einstellung nach jedem ffnen der Arbeitsmappe neu vorneh-men. Wie Sie diese Einstellung jedoch ber einen Trick dauerhafterhalten, erfahren Sie am 7. Tag.
1.3 Das Code-Fenster
Bisher haben Sie noch keine einzige Zeile programmiert. Sie haben die Eigen-schaften der einzelnen Tabellen ber das Eigenschaftenfenster eingestellt. DieseEigenschaften knnen Sie aber auch ber Makros einstellen. Dazu erfassen Sieden bentigten Code im Code-Fenster. Damit dieses Fenster angezeigt wird,
Abbildung 1.5:
Der Zugriff ist nurin einem bestimm-ten Bereich mg-lich.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
28/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
28
fgen Sie zunchst ein noch leeres Modul ein. Dabei haben Sie die folgendenMglichkeiten:
In der Entwicklungsumgebung von Excel whlen Sie aus dem Men EINF-GEN den Befehl MODUL.
Whlen Sie auf der Symbolleiste VOREINSTELLUNG das Dropdown-Symbolund daraus den Befehl MODUL.
Klicken Sie direkt auf den Projekt-Explorer mit der rechten Maustaste undwhlen Sie aus dem Kontextmen den Befehl EINFGEN/MODUL.
Mit allen gerade beschriebenen Varianten wird das Code-Fenster angezeigt.
Makros erfassen und starten
Nachdem Sie das Code-Fenster eingeblendet haben, knnen Sie beginnen, Ihrerstes Makro einzugeben. Jedes Makro beginnt in VBA mit der Anweisung Sub.Danach folgt ein Leerzeichen. Direkt im Anschluss daran knnen Sie einenNamen fr das Makro angeben. Bedenken Sie dabei fr die Benennung vonMakros folgende Punkte:
Das erste Zeichen muss ein alphanumerisches Zeichen sein.
Der Makroname darf keine Leerzeichen enthalten.
Abbildung 1.6:Das Code-Fensterwird angezeigt.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
29/608
29
Das Code-Fenster
Es drfen keine Sonderzeichen wie /, %, , $, [, ], ?, ! oder hnliche verwendetwerden.
Nach dem Namen geben Sie ein rundes Klammernpaar ein und drcken die Taste(Enter). Das Makro wird jetzt um die Anweisung End Sub ergnzt.
Sub DasErsteMakro()
End Sub
Anwendernamen am Bildschirm ausgeben
Momentan ist das Makro noch leer. Alle Anweisungen, die Sie innerhalb dieses
Rahmens schreiben, werden abgearbeitet und nacheinander ausgefhrt. ErgnzenSie das Makro nun wie folgt, um beispielsweise den Anwendernamen auf demBildschirm auszugeben:
Sub DasErsteMakro()MsgBox Application.UserNameEnd Sub
Um das Makro zu starten, haben Sie folgende Mglichkeiten:
Setzen Sie den Mauszeiger auf die erste Zeile des Makros und drcken Sie die
Taste (F5). Setzen Sie den Mauszeiger auf die erste Zeile des Makros und whlen Sie aus
dem Men AUSFHREN den Befehl SUB/USERFORMAUSFHREN.
Setzen Sie den Mauszeiger auf die erste Zeile des Makros und klicken Sie inder Symbolleiste VOREINSTELLUNG auf das Symbol SUB/USERFORMAUSFH-REN.
Wechseln Sie auf Ihre Excel-Arbeitsoberflche und whlen Sie aus dem MenEXTRAS den Befehl MAKRO/MAKROS. Im nun angezeigten Dialogfeld whlen
Sie das Makro aus und klicken auf die Schaltflche AUSFHREN.In jeder beschriebenen Variante wird eine Meldung auf dem Bildschirm ausgege-ben, in der der Anwendername angezeigt wird. Dies erreichen Sie, indem Sie dieFunktion MsgBox einsetzen.
Der angezeigte Name kann im Men EXTRAS und mit dem BefehlOPTIONEN auf der Registerkarte ALLGEMEIN im Feld BENUTZERNAMENeingestellt werden.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
30/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
30
Zustzlichen Text mit ausgeben
Um neben dem Anwendernamen noch zustzlichen Text auszugeben, verwendenSie in VBA den Verkettungsoperator &. Das angepasste Makro sieht dann wie folgtaus:
Sub DasZweiteMakro()MsgBox "Momentan arbeitet der Benutzer: " & _
Application.UserNameEnd Sub
Abbildung 1.7:Das erste Makro
gibt den Anwen-dernamen aufdem Bildschirmaus.
Abbildung 1.8:Zustzlichen Textin der Meldunganzeigen
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
31/608
31
Das Code-Fenster
Beachten Sie nach dem Zeichen & den Unterstrich. Damit geben Sie bekannt, dassSie die Anweisung in der nchsten Zeile fortsetzen mchten. Diese Methode wirdsehr oft angewendet, um die Lesbarkeit des Codes zu erhhen. Selbstverstndlich
haben Sie auch die Mglichkeit, die Anweisung in eine Zeile zu schreiben, wasletztendlich aber zur Folge hat, dass Sie mit der horizontalen Navigationsleiste amunteren Rand des Code-Fensters scrollen mssen, um die Anweisung lesen zuknnen (siehe Abbildung 1.8).
Mehrzeilige Meldungen anzeigen
Immer wieder gefragt sind auch mehrzeilige Meldungsfenster. Im folgenden Bei-spiel werden in einem Meldungsfenster mehrere Informationen angezeigt.
Sub DasDritteMakro()MsgBox "Name: " & Application.UserName & vblf & _
"Datum: " & Date & vblf & _"Uhrzeit: " & Time & " Uhr"
End Sub
Mithilfe der Konstante vblf knnen Sie eine neue Zeile im Meldungsfenster aus-geben lassen. Die einzelnen Informationen werden ber den Verkettungsoperator& miteinander verknpft. ber die Standardfunktionen Date und Time knnen Siedas aktuelle Datum und die momentane Uhrzeit ermitteln.
Abbildung 1.9:MehrzeiligesMeldungsfensteranzeigen
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
32/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
32
Sollte das Datum bzw. die Uhrzeit nicht stimmen, mssen Sie dieseEinstellungen in der Systemsteuerung von Windows ndern. Excel ori-entiert sich nmlich bei diesen beiden Funktionen an den Einstellun-
gen von Windows.
1.4 Der Makrorekorder
Zu Beginn der Programmierung mit Excel-VBA wird es Ihnen schwer fallen, sichdie Syntax einiger Befehle anzueignen. Eine hervorragende Mglichkeit, sichschnell mit den einzelnen Befehlen vertraut zu machen, besteht darin, den Makro-
rekorder einzusetzen. Mithilfe des Makrorekorders knnen Sie Aktionen, die Siemanuell in Excel vornehmen, im Hintergrund aufzeichnen lassen. Dabei wirdjede einzelne Aktion mit den dafr notwendigen Befehlen direkt in das Code-Fenster geschrieben. Sie knnen diesen aufgezeichneten Quellcode danach anse-hen und ihn noch weiter anpassen. ben Sie sich im Gebrauch des Makrorekor-ders, indem Sie die folgenden Aufgaben durchfhren:
Ein- und Ausschalten der Gitternetzlinien
In der ersten Aufgabe werden Sie die Gitternetzlinien fr eine Tabelle aus- undwieder einschalten. Setzen Sie den Makrorekorder ein, indem Sie die nchstenArbeitsschritte befolgen:
1. Whlen Sie in Excel aus dem Men EXTRAS den Befehl MAKRO/AUFZEICH-NEN.
Abbildung 1.10:Name und Speicherort des Makros angeben
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
33/608
33
Der Makrorekorder
2. Geben Sie dem Makro im Feld MAKRONAME einen Namen oder bernehmenSie den von Excel vorgeschlagenen Namen.
3. Im Feld TASTENKOMBINATION knnen Sie dem Makro eine Tastenkombina-tion zuweisen. Geben Sie in dieses Feld einmal den Buchstaben ein.
4. Im Dropdown-Feld MAKRO SPEICHERN IN haben Sie drei Auswahlmglich-keiten:
DIESE ARBEITSMAPPE: Das Makro wird in der aktuellen Arbeitsmappegespeichert. Es ist dann nur fr diese Arbeitsmappe einsetzbar.
NEUE ARBEITSMAPPE: Das aufgezeichnete Makro wird in einer neuenArbeitsmappe gespeichert.
PERSNLICHE MAKROARBEITSMAPPE: Das aufgezeichnete Makro wird inder zentralen Makroarbeitsmappe PERSONL.XLS abgelegt, die mit jedemExcel-Start geladen wird, aber im Hintergrund bleibt. Somit knnenMakros, die in dieser Mappe gespeichert werden, fr alle anderen Arbeits-mappen eingesetzt werden. Die Datei Personl.xls finden Sie brigens imOffice-Unterverzeichnis OFFICE/XLSTART. Standardmig ist dieseArbeitsmappe nach der Installation noch nicht angelegt. Die Mappe wirdaber automatisch fr Sie angelegt, wenn Sie ein Makro aufzeichnen undals Speicherort fr das Makro die persnliche Makroarbeitsmappe auswh-
len. Entscheiden Sie sich hier fr diese Variante.5. Im Feld BESCHREIBUNG knnen Sie eine optionale Beschreibung fr das
Makro erfassen, welches beispielsweise die Aufgabe, den Autor und das Erstel-lungsdatum beinhalten kann.
6. Besttigen Sie Ihre Eingaben mit OK.
7. Whlen Sie nun aus dem Men EXTRAS den Befehl OPTIONEN.
8. Wechseln Sie im Dialogfeld OPTIONEN auf die Registerkarte ANSICHT.
9. Deaktivieren Sie das Kontrollkstchen GITTERNETZLINIEN.10. Besttigen Sie Ihre Aktion mit OK.
11. Beenden Sie die Aufzeichnung des Makrorekorders, indem Sie in der ange-zeigten kleinen Symbolleiste das Symbol AUFZEICHNUNG BEENDEN klicken(siehe Abbildung 1.11).
Kontrollieren Sie nun das Resultat der Aufzeichnung, indem Sie ber die Tasten-kombination (Alt) + (F11) in die Entwicklungsumgebung wechseln.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
34/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
34
Fr das Ausschalten der Gitternetzlinien ist lediglich eine Anweisung notwendig.Setzen Sie fr diesen Zweck die Eigenschaft DisplayGridLines auf den WertFalse. Um die Gitternetzlinien wieder einzublenden, setzen Sie die EigenschaftDisplayGridLines wieder auf den Wert True.
Abbildung 1.11:Die Gitternetz-linien wurdenausgeblendet.
Abbildung 1.12:Der erste selbstaufgezeichneteCode
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
35/608
35
Der Makrorekorder
Einheitliches Gestalten der Kopf- und Fuzeile
Fr den Gebrauch des Makrorekorders werden Sie im zweiten Beispiel die Kopf-
und Fuzeilen mit Informationen bestcken. Dabei sollen folgende Informa-tionen erfasst werden:
Kopfzeile links: Autor der Tabelle
Kopfzeile Mitte: Titel der Tabelle
Kopfzeile rechts: Datum
Fuzeile links: Name der Arbeitsmappe und Tabellenblattname
Fuzeile Mitte: Firmenname
Fuzeile rechts: Seitennumerierung
Befolgen Sie nun die nchsten Arbeitsschritte, um das Makro aufzuzeichnen:
1. Whlen Sie aus dem Men EXTRAS den Befehl MAKRO/AUFZEICHNEN.
2. Geben Sie dem Makro einen Namen und whlen Sie als Speicherort den Ein-trag DIESEARBEITSMAPPE.
3. Starten Sie die Aufzeichnung mit OK.
4. Whlen Sie aus dem Men DATEI den Befehl SEITEEINRICHTEN.5. Wechseln Sie im Dialogfeld SEITE EINRICHTEN auf die Registerkarte KOPF-
ZEILE/FUSSZEILE.
6. Klicken Sie auf die Schaltflche BENUTZERDEFINIERTE KOPFZEILE.
7. Fllen Sie das Dialogfeld mithilfe der Symbole und einigen manuell eingege-benen Texten wie folgt aus:
Abbildung 1.13:Die benutzerdefi-nierte Kopfzeile
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
36/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
36
8. Besttigen Sie Ihre Einstellungen fr die Kopfzeile mit OK.
9. Klicken Sie nun auf die Schaltflche BENUTZERDEFINIERTEFUSSZEILE.
10. Orientieren Sie sich bei der Fuzeile an folgender Abbildung:
11. Besttigen Sie die Einstellungen fr die Fuzeile mit OK.
12. Beenden Sie das Dialogfeld SEITEEINRICHTEN mit OK.
13. Beenden Sie die Aufzeichnung des Makrorekorders.
Sehen Sie sich nun das Ergebnis der Aufzeichnung an, indem Sie mithilfe derTastenkombination (Alt) + (F11) in die Entwicklungsumgebung wechseln:
Listing 1.1: Kopf- und Fuzeilen per Makro einrichten
Sub KopfUndFu()'' KopfUndFu Makro' Makro am 24.08.2002 von Bernd Held aufgezeichnet'
'
With ActiveSheet.PageSetup.PrintTitleRows = "".PrintTitleColumns = ""
End WithActiveSheet.PageSetup.PrintArea = ""With ActiveSheet.PageSetup
.LeftHeader = "Held"
.CenterHeader = "Kosten und Leistung"
.RightHeader = "&D"
Abbildung 1.14:
Die benutzerdefi-nierte Fuzeile
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
37/608
37
Der Makrorekorder
.LeftFooter = "&F / &A"
.CenterFooter = "Held-Office"
.RightFooter = "&P von &N"
.LeftMargin = Application.InchesToPoints(0.787401575).RightMargin = Application.InchesToPoints(0.787401575)
.TopMargin = Application.InchesToPoints(0.984251969)
.BottomMargin = Application.InchesToPoints(0.984251969)
.HeaderMargin = Application.InchesToPoints(0.4921259845)
.FooterMargin = Application.InchesToPoints(0.4921259845)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = -3
.CenterHorizontally = False.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End WithEnd Sub
Wie Sie sehen, hat der Makrorekorder hier auch Dinge aufgezeichnet, die Sie garnicht unbedingt brauchen. Dies ist nicht ungewhnlich fr den Makrorekorder. Erbeschreibt einfach das, was er sieht. Dabei werden smtliche Einstellungen desDialogs SEITEEINRICHTEN mit aufgezeichnet. Wenn Sie das Makro nur auf dieDinge beschrnken mchten, auf die es Ihnen ankommt, dann bliebe danach fol-gender Code noch brig:
Listing 1.2: Das bereinigte Makro fr die Erstellung der Kopf- und Fuzeilen
Sub KopfUndFu()'
' KopfUndFu Makro' Makro am 24.08.2002 von Bernd Held aufgezeichnet
With ActiveSheet.PageSetup
.LeftHeader = "Held"
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
38/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
38
.CenterHeader = "Kosten und Leistung"
.RightHeader = "&D"
.LeftFooter = "&F / &A"
.CenterFooter = "Held-Office".RightFooter = "&P von &N"
End With
End Sub
Wenn Sie sich das letzte Makro ansehen, dann werden Sie feststellen, dass Excelbei der Erstellung von Kopf- und Fuzeilen mit Buchstabenkrzeln arbeitet. DieseKrzel werden im Zusammenspiel mit dem Verkettungsoperator & verwendet.
Enthlt Ihr Firmenname das Zeichen &, dann gibt es bei der Einstellung
des Firmennamens Probleme, weil Excel das &-Zeichen hier als Steuer-zeichen verwendet und es in diesem Fall verschluckt. Bei solchen Fl-len muss das &-Zeichen zweimal hintereinander erfasst werden (wiez.B. Schmidt GmbH && Co.).
Ein erstes Stilmittel der Programmierung sehen Sie bereits aus dem aufgezeichne-ten Listing. Mithilfe der Anweisung With knnen Sie sich eine Menge Schreibar-beit sparen. Schauen Sie sich zum Vergleich einmal das folgende Listing an, daszwar dasselbe Ergebnis wie Listing 1.2 liefert, sich in der Schreibweise aber erheb-
lich unterscheidet.Listing 1.3: Die etwas lngere Form
Sub KopfUndFuLang()'
' KopfUndFu Makro' Makro am 24.08.2002 von Bernd Held aufgezeichnet
ActiveSheet.PageSetup.PrintArea = ""
ActiveSheet.PageSetup.LeftHeader = "Held"
ActiveSheet.PageSetup.CenterHeader = "Kosten und Leistung"
ActiveSheet.PageSetup.RightHeader = "&D"
ActiveSheet.PageSetup.LeftFooter = "&F / &A"
ActiveSheet.PageSetup.CenterFooter = "Held-Office"
ActiveSheet.PageSetup.RightFooter = "&P von &N"
End Sub
Die Anweisung ActiveSheet.PageSetup ist hier redundant. Daher wird in Listing1.2 einmal die Anweisung With definiert. Im Anschluss daran brauchen Sie denlangen Befehl nicht jedes Mal zu erfassen. Es reicht stattdessen ein einfacher
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
39/608
39
Der Objektkatalog
Punkt zu Beginn des Befehls. Damit wei der Editor, dass damit die Kurzformgemeint ist. Achten Sie darauf, dass Sie die Anweisung mit End With abschlieen.
Kontrollieren Sie das Ergebnis dieses Makros, indem Sie die Seitenansicht vonExcel aufrufen. Dazu whlen Sie aus dem Men DATEI den Befehl SEITENAN-SICHT.
1.5 Der ObjektkatalogEine weitere Mglichkeit, sich schnell in die Entwicklungsumgebung einzuarbei-ten und VBA-Befehle kennen zu lernen, bietet der Objektkatalog. Dieser Katalogenthlt alle verfgbaren VBA-Befehle, die Sie bei der Programmierung einsetzenknnen. Sie starten den Objektkatalog, indem Sie wie folgt in der Entwicklungs-umgebung vorgehen:
1. Drcken Sie die Taste (F2).
2. Whlen Sie aus dem Men ANSICHT den Befehl OBJEKTKATALOG.3. Klicken Sie in der Symbolleiste VOREINSTELLUNG das Symbol OBJEKTKATA-
LOG.
Die Entwicklungsumgebung stellt Ihnen einen Objektkatalog zur Verfgung, indem Sie sich ber Objekte, Methoden, Ereignisse und Eigenschaften informierenknnen. ber das entsprechende Symbol knnen Sie erkennen, ob es sich um einObjekt, eine Eigenschaft, eine Methode oder ein Ereignis handelt.
Abbildung 1.15:Die Fuzeile wur-de per Makroerstellt.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
40/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
40
OBJEKTE
Als Objekt bezeichnet man alle Teile, die Sie in Excel sehen knnen.Die wichtigsten Objekte sind die Arbeitsmappe, das Tabellenblatt, dieZeilen bzw. Spalten und die Zelle als kleinste Einheit in Excel.
EIGENSCHAFTEN
Dahinter verbergen sich die Merkmale eines Objekts. So ist z.B. die For-matierung einer Zelle eine Eigenschaft des Objekts Zelle.
METHODEN
Wenn von Methoden die Rede ist, fragen Sie sich am besten immer, wasSie mit den einzelnen Objekten anstellen knnen. Angewandt auf eine
Abbildung 1.16:Der Objektkata-log gibt Auskunft
ber die VBA-Syntax.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
41/608
41
Der Objektkatalog
Arbeitsmappe wren die Methoden das ffnen, Drucken, Speichernund Schlieen.
EREIGNIS
Unter einem Ereignis versteht man in Excel Vorgnge wie das ffnenoder Schlieen einer Arbeitsmappe, die Eingabe von Daten in Zellen,das Drucken oder Speichern von Mappen und vieles mehr. Ereignisseknnen Sie entweder auf Tabellenebene oder auch auf Arbeitsmappen-ebene einstellen. Sie haben somit die Mglichkeit, bestimmte Vorgngein Ihren Excel-Tabellen separat zu berwachen und auf Vernderungenin Ihren Tabellen individuell zu reagieren.
Alle in VBA zur Verfgung stehenden Objekte werden in Bibliotheken verwaltet.Standardmig ist im ersten Dropdown-Men der Eintrag ALLE BIBLIOTHEKENausgewhlt. Wenn Sie die Anzeige ein wenig einschrnken und die Inhalte einzel-ner Bibliotheken einsehen mchten, whlen Sie die gewnschte Bibliothek imDropdown aus. So knnen Sie sich z.B. in der Bibliothek VBA ansehen, welcheObjekte nicht nur auf die Tabellenkalkulation Excel beschrnkt sind, sondern imgesamten Office-Paket eingesetzt werden knnen.
Letztesnderungsdatum einer Datei ermitteln
Die Bibliothek VBA enthlt beispielsweise die Funktion FileDateTime, welche dasDatum der letztennderung einer Datei ausgibt. Diese Funktion ist nicht nur frExcel-Arbeitsmappen interessant. Wenden Sie diese Funktion an, indem Sie fol-genden Quellcode erfassen:
Listing 1.4: Das letztenderungsdatum einer Mappe ausgeben
Sub LetztesnderungdatumAusgeben()MsgBox FileDateTime(ActiveWorkbook.FullName)
End Sub
Die Funktion FileDateTime bentigt als Information den Namen sowie den kom-pletten Pfad der Arbeitsmappe, deren letztes nderungsdatum Sie ermitteln kn-nen. Fr die aktuell geffnete Arbeitsmappe knnen Sie sich diese Angabe berdie Eigenschaft FullName beschaffen.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
42/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
42
Mchten Sie stattdessen das letztenderungsdatum einer momentan nicht geff-neten Arbeitsmappe anzeigen lassen, dann lautet die Syntax fr diese Aufgabe wiefolgt:
Listing 1.5: Das letztenderungsdatum einer geschlossenen Datei ausgeben
Sub LetztesnderungdatumAusgeben02()
MsgBox FileDateTime("C:\Eigene Dateien\Mappe1.xls")
End Sub
Monatsnamen ermitteln
Im nchsten Beispiel werden Sie anhand eines Datums den Monatsnamen ermitteln.Dabei kommen die Funktionen Month und MonthName aus der Bibliothek VBA zumEinsatz. Die Funktion Month gibt anhand eines Datums den dazugehrigen Monat in
Form eines Wertes 112 zurck. Die Funktion MonthName gibt mithilfe eines Wertes112 den dazugehrigen Monat Januar bis Dezember aus. Auch hier wird klar, dassdiese beiden Funktionen im gesamten Office-Paket gebraucht werden.
Setzen Sie diese beiden Funktionen jetzt zusammen ein und erfassen Sie dazu dasfolgende Makro:
Listing 1.6: Den Monatsnamen ausgeben
Sub MonatsnameErmitteln()
Dim i As Integer
i = Month(Date)
MsgBox "Heute ist der " & Date & Chr(13) & _
"Wir sind momentan im Monat " & MonthName(i)
End Sub
Abbildung 1.17:Das letztenderungsdatum einer Datei ermitteln
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
43/608
43
Die Online-Hilfe
Deklarieren Sie zu Beginn eine Variable vom Typ Integer. Diese Variable kannganzzahlige Werte aufnehmen. Am zweiten Tag erfahren Sie mehr ber den Ein-satz von Variablen.
Mithilfe der Funktion Date knnen Sie das momentane Tagesdatum ermitteln,welches Sie der Funktion Monthbergeben. Die Funktion Month macht daraus eineZahl zwischen 1 und 12. Wre das aktuelle Datum der 24. August, dann wrde dieFunktion daraus den Zahlenwert 8 (fr den achten Monat im Jahr) machen. ber-geben Sie danach den Inhalt der Variablen i der Funktion MonthName.
1.6 Die Online-Hilfe
Die dritte Mglichkeit, schnell Fortschritte in der Programmierung mit Excel-VBAzu machen, besteht darin, die Online-Hilfe einzusetzen. Gerade im Zusammen-
spiel mit dem Makrorekorder knnen Sie eine Menge lernen. Im ersten Schrittzeichnen Sie einen Quellcode auf und erkunden danach mit der Online-Hilfe diedabei verwendeten Befehle.
Verwendete Befehle nachlesen
Greifen Sie jetzt beispielsweise auf das Makro zur Erstellung der Kopf- und Fu-zeilen zurck, welches Sie vorher aufgezeichnet haben. Setzen Sie den Mauszei-
ger auf die Eigenschaft LeftHeader und drcken Sie die Taste (F1), um dieOnline-Hilfe aufzurufen (siehe Abbildung 1.19).
Die Online-Hilfe sucht nun eigenstndig den Hilfetext zu dem Befehl, auf den Sieden Mauszeiger gesetzt und danach die Taste (F1) gedrckt haben. Hier wird derBefehl beschrieben und oft in einem zustzlichen Beispiel nher erklrt.
Abbildung 1.18:Den Monatsnamen ermitteln und ausgeben
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
44/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
44
In der Online-Hilfe knnen Sie einige Hyperlinks finden:
ber den Hyperlink SIEHEAUCH finden Sie verwandte Befehle, die Sie somitschnell einsehen knnen.
Der Hyperlink BETRIFFT gibt Auskunft darber, auf welches bergeordneteObjekt sich der Befehl bezieht. So bezieht sich die Eigenschaft LeftHeader aufdas Objekt PageSetup.
ber den Hyperlink BEISPIELE wird Ihnen gezeigt, wie Sie den Befehl einset-
zen knnen. Hyperlinks im Text fhren zu weiteren verwandten Themen, die Sie auf diese
Weise schnell aufrufen knnen.
Die Beispiele knnen Sie brigens fr Ihre eigenen Makros bernehmen, indemSie wie folgt vorgehen:
1. Markieren Sie mit der linken Maustaste den angezeigten Quellcode.
2. Klicken Sie mit der rechten Maustaste und whlen Sie aus dem Kontextmen
den Befehl KOPIEREN
.3. Wechseln Sie in das Code-Fenster und setzen Sie den Mauszeiger auf die
Stelle, an der Sie das Beispiel einfgen mchten.
4. Klicken Sie mit der rechten Maustaste und whlen Sie den Befehl EINFGENaus dem Kontextmen.
Abbildung 1.19:Die Online-Hilfevon Excel
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
45/608
45
Die Online-Hilfe
Verfgbare Objekte ansehen
Um alle verfgbaren Objekte in Excel in einer bersichtlichen Form anzuzeigen,
wechseln Sie in der Online-Hilfe auf die Registerkarte INHALT, klappen die RubrikMICROSOFT EXCEL VISUAL BASIC-REFERENZ auf und klicken den EintragMICROSOFT EXCEL-OBJEKTE an.
Befehle suchen
Sind Sie auf der Suche nach einem bestimmten Befehl bzw. nach einer Funktion,dann rufen Sie die Online-Hilfe auf, indem Sie in der Online-Hilfe auf die Regis-terkarte INDEX wechseln. Geben Sie dort die gewnschte Aktion ein, die Sie aus-fhren mchten.
Arbeitsmappe speichernIm folgenden Beispiel mchten Sie eine Arbeitsmappe speichern und suchendaher nach dem dazu notwendigen VBA-Befehl. Geben Sie daher im FeldSCHLSSELWRTEREINGEBEN das Wort speichern ein.
Abbildung 1.20:Alle Excel-Objekteauf einen Blick
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
46/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
46
Im Listenfeld THEMAAUSWHLEN finden Sie eine ganze Reihe von Vorgngen,bei der der gesuchte Vorgang mittelbar bzw. unmittelbar eine Rolle spielt. Aktivie-ren Sie den Eintrag Save-Methode und sehen Sie sich das Ergebnis auf der rechtenSeite des Bildschirms an. Auch hier kann das Beispiel wieder in eigene Makrosbernommen werden.
1.7 Weitere praktische Helfer in derEntwicklungsumgebung
In der Entwicklungsumgebung befinden sich einige interessante Features, die Siebei der Programmierung gut gebrauchen knnen. Einige davon sollen nunbeschrieben werden.
Die Symbolleiste Bearbeiten
Die Symbolleiste BEARBEITEN enthlt Funktionen, die Ihnen helfen, den Pro-grammcode schnell und sicher zu bearbeiten.
Abbildung 1.21:
VBA-Befehlesuchen
Abbildung 1.22:Die Symbolleiste Bearbeiten
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
47/608
47
Weitere praktische Helfer in der Entwicklungsumgebung
Auf die Funktionen dieser Symbolleiste wird im Folgenden kurz eingegangen:
Eigenschaften/Methoden anzeigenWenn Sie beispielsweise die Anweisung Application eingeben und dann direktdahinter einen Punkt setzen, bietet Ihnen Excel fr dieses Objekt alle verfgbarenEigenschaften und Methoden an. Mchten Sie aber bereits eingegebenen Quell-code nachtrglich nach verfgbaren Eigenschaften und Methoden checken, set-zen Sie den Mauszeiger auf den Befehl hinter dem Punkt und klicken das SymbolEIGENSCHAFTEN/METHODENANZEIGEN an.
Konstanten anzeigen
Viele Befehle enthalten so genannte Konstanten, die Sie einsetzen knnen. Soknnen Sie beispielsweise fr eine Bildschirmmeldung ber den Einsatz vonKonstanten die Schaltflchentypen festlegen. Im folgenden Beispiel soll eine
Abbildung 1.23:Alle Methodenund Eigenschaf-ten fr das Objekt
Application
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
48/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
48
Warnmeldung angezeigt werden. Erfassen Sie zu diesem Zweck die folgendenZeilen und stoppen mittendrin:
Klicken Sie nach der Eingabe des Kommas auf das Symbol KONSTANTENANZEI-GEN. In einer Dropdown-Liste bekommen Sie nun die verfgbaren Schaltflchenangezeigt. Selbstverstndlich knnen Sie auch mehrere Schaltflchen kombinie-ren. Das komplette Makro zum Anzeigen einer Warnmeldung mit den SymbolenKRITISCH sowie einer OK-Schaltflche lautet:
Listing 1.7: Eine benutzerdefinierte Meldung anzeigen
Sub Warnmeldunganzeigen()
MsgBox "Achtung", vbCritical + vbOKOnly, "Warnung"
End Sub
Abbildung 1.24:Konstanten fr dieSchaltflchenanzeigen
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
49/608
49
Weitere praktische Helfer in der Entwicklungsumgebung
QuickInfo oder Parameterinfo
Mithilfe des Symbols QUICKINFO bzw. des Symbols PARAMETERINFO knnen Siesich die komplette Syntax des Befehls in einem Fensterchen anzeigen lassen. Set-zen Sie dazu im vorherigen Beispiel den Mauszeiger auf die Funktion MsgBox undklicken das Symbol QUICKINFO auf der Symbolleiste BEARBEITEN.
Ganzes Wort
Mit dem Einsatz dieses Symbols sparen Sie sich ein wenig Schreibarbeit. GebenSie beispielsweise einmal die ersten drei Buchstaben von MsgBox ein und klickendanach auf das Symbol GANZES WORT oder drcken Sie die Tastenkombination(Strg) + (____). Der Befehl wird augenblicklich um die noch fehlenden Buchsta-ben ergnzt. Diese Funktion funktioniert aber nur, wenn schon nach den erstenBuchstaben klar wird, dass es sich hierbei nur um den Befehl Msgbox handeln
Abbildung 1.25:Die Symbole und Schaltflchen knnen nahezu beliebig kombiniertwerden
Abbildung 1.26:Die kompletteSyntax wirdangezeigt.
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
50/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
50
kann. Diese Funktion wird demnach erst verfgbar, sobald anhand der erstenBuchstaben ein eindeutiger Befehl von Excel erkannt werden kann.
Einzug vergrern bzw. Einzug verkleinern
Mit der Funktion EINZUGVERGRSSERN knnen Sie einzelne Zeilen oder auchmehrere Zeilen blockweise nach links einrcken. Dies macht den Programmcodeleichter lesbar.
Analog zur vorherigen Funktion knnen Sie mit der Funktion EINZUGVERKLEI-NERN eingerckte Programmteile wieder nach links rcken und pro Klick denmarkierten Text jeweils um einen Tabstopp versetzen.
Haltepunkt ein/ausWenn Sie ein Makro starten, welches einen Haltepunkt aufweist, dann stoppt esgenau an diesem Haltepunkt. Auf diese Weise knnen Sie Programm-Zwischen-stnde berprfen.
Setzen Sie zum Beispiel einmal einen Haltepunkt im Listing 1.2 in die Zeile.RightHeader = "&D". Excel quittiert diese Aktion, indem es einen braunen, run-den Punkt auf die linke Leiste setzt. Setzen Sie danach den Mauszeiger auf denBeginn des Makros und drcken Sie die Taste (F5), um das Makro zu starten.
Abbildung 1.27:Einzug vergr-
ern nach rechts
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
51/608
51
Weitere praktische Helfer in der Entwicklungsumgebung
Das Makro luft nun bis zu der Zeile mit dem gesetzten Haltepunkt und unter-bricht es. Sie knnen ber die Seitenansicht prfen, dass momentan nur der linkeund der mittlere Teil der Kopfzeile fertig gestellt wurde. Wenn Sie in der Entwick-lungsumgebung nochmals die Taste (F5) drcken, wird der Code bis zum Endeausgefhrt. Mchten Sie das Makro abbrechen, dann whlen Sie aus dem MenAUSFHREN den Befehl ZURCKSETZEN.
Das Setzen und Entfernen von Haltepunkten knnen Sie brigens nochschneller erledigen, indem Sie den Mauszeiger in die gewnschte Zeilesetzen und die Taste (F9) drcken.
Block auskommentieren bzw. Auskommentierung des Blocksaufheben
Standardmig knnen Sie einzelne Zeilen deaktivieren, indem Sie als erstes Zei-chen der jeweiligen Zeile ein einfaches Apostroph eingeben. Excel quittiert dieseAktion, indem es die komplette Zeile mit der Schriftfarbe GRN einfrbt. Die soauskommentierten Zeilen werden nun nicht mehr abgearbeitet. Selbstverstndlichist es recht mhselig, wenn Sie ganze Blcke, also mehrere Zeilen auf einmal, inKommentar setzen mchten. Aus diesem Grund wurde die Funktion BLOCKAUS-KOMMENTIEREN in die Symbolleiste BEARBEITEN integriert. Somit knnen Sieblitzschnell ganze Blcke vorbergehend in Kommentar setzen bzw. auskommen-
Abbildung 1.28:Haltepunkt setzen
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
52/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
52
tierte Blcke schnell wieder verfgbar machen. Gerade wenn Sie einen Code tes-ten und dazu mehrere Varianten berprfen mchten, empfiehlt es sich, mitdieser Funktion zu arbeiten.
Geizen Sie nicht mit dem Einsatz von Kommentaren im Quellcode. So
empfiehlt es sich, zu Beginn des Makros Kommentare zu erfassen, dieber die Aufgabe des Makros, den Programmierer und den Zeitpunktder Programmierung Aufschluss geben. Auch die Kommentierung ein-zelner Befehle ist gerade am Beginn einer Entwickler-Laufbahn wich-tig. Befehle prgen sich so schneller und leichter ein. Ein typisches Introfr ein Makro knnte wie folgt aussehen:
Listing 1.8: Ein Makro mit Dokumentation
Sub KopfUndFu()'-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+' Name: KopfUndFu' Datum: 24.08.2002
' Autor: Bernd Held
' Dieses Makro stellt die Kopf- und Fuzeile in einer' Tabelle zusammen.
'-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
With ActiveSheet.PageSetup
Abbildung 1.29:Schnelles Auskom-mentieren von
ganzen Code-blcken
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
53/608
53
Weitere praktische Helfer in der Entwicklungsumgebung
.LeftHeader = "Held"
.CenterHeader = "Kosten und Leistung"
.RightHeader = "&D"
.LeftFooter = "&F / &A".CenterFooter = "Held-Office"
.RightFooter = "&P von &N"
End With
End Sub
Lesezeichen setzen
In recht umfangreichen Quellcodes, die mitunter mehrere DIN-A4-Seiten ausma-
chen knnen, kann schnell der berblick verloren gehen. Sie haben daher dieMglichkeit, Lesezeichen zu setzen und diese bei Bedarf anzuspringen.
Ein Lesezeichen erkennen Sie daran, dass ein hellblaues abgerundetes Viereck ander linken Leiste angezeigt wird. ber die Symbole NCHSTES LESEZEICHENbzw. VORHERIGES LESEZEICHEN knnen Sie von Lesezeichen zu Lesezeichenspringen. Mit einem Klick auf das Symbol ALLE LESEZEICHENLSCHEN entfer-nen Sie alle gesetzten Lesezeichen.
Abbildung 1.30:Lesezeichensetzen
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
54/608
Die Entwicklungsplattform, Variablen und Konstanten kennen lernen
54
Suchen & Ersetzen
Genau wie in anderen Programmen auch gibt es in der Entwicklungsumgebung
eine Mglichkeit, Textteile zu finden und zu ersetzen. Dabei haben Sie die Mg-lichkeit, bestimmte Texte bzw. Befehle nicht nur im aktuellen Modul, sondernauch in allen Modulen des Projekts zu finden. Aufgerufen werden kann dieseFunktion ber drei Wege:
Klicken Sie auf das Symbol SUCHEN in der Symbolleiste VOREINSTELLUNG.
Alternativ dazu knnen Sie die Tastenkombination (Strg) + (F) drcken.
Whlen Sie aus dem Men BEARBEITEN den Befehl SUCHEN aus.
Bei allen drei Varianten wird das Dialogfeld SUCHEN angezeigt.
Im Feld SUCHENNACH geben Sie den Befehl bzw. die Textfolge ein, nach der Siesuchen mchten. Haben Sie vor dem Aufruf dieses Dialogfelds den Suchtext imMakro markiert, dann wird dieser automatisch in das Feld SUCHENNACHber-nommen.
Im Gruppenfeld SUCHENIN haben Sie die Mglichkeit, Ihre Suche ber Ihr aktu-elles Modul hinaus auszudehnen. Standardmig unterscheidet Excel nicht zwi-schen Gro- und Kleinschreibung. Ist dies erwnscht, mssen Sie dasentsprechende Kontrollkstchen aktivieren. Die Suchrichtung legen Sie im gleich-
namigen Dropdown-Feld fest. Standardmig wird in beide Richtungen gesucht,also abwrts sowie aufwrts. Mit einem Klick auf die Schaltflche ERSETZEN wirddas folgende Dialogfeld angezeigt.
Die Anweisung Chr(13) und die Konstante vbCr bewirken dieselbeAktion. Es wird bei beiden Anweisungen eine neue Zeile begonnen.Gerade bei mehrzeiligen Meldungsfenstern kommen diese beiden Mg-lichkeiten oft zum Einsatz.
Abbildung 1.31:Befehle im Quellcodesuchen
7/27/2019 (eBook - German) Held, Bernd - Excel-VBA in 14 Tagen
55/608
55
Weitere praktische Helfer in der Entwicklungsumgebung
Mchten Sie einen Text durch einen anderen ersetzen, mssen Sie noch einenText im Feld ERSETZENDURCH angeben. Mit einem Klick auf die SchaltflcheDURCHSUCHEN wird die erste gefundene bereinstimmung angezeigt. Jetzt
haben Sie die Wahl, entweder schrittweise Texte zu ersetzen (sichere Methode)oder komplett alle gefundenen Texte.
Vorsicht bei Ersetzungen von Textteilen! Geben Sie mglichst dengesuchten Text vollstndig an. Es kann zu katastrophalen Resultatenfhren, wenn Sie einzelne Textteile durch andere ersetzen. Nicht seltenwerden dann auch Teile von Befehlen, Methoden oder Eigenschaftenmit ersetzt. Dies hat dann zur Folge, dass Sie den gesamten Code erneutkorrigieren mssen, um Ihre Makros wieder zum Laufen zu bringen.
Das ist zum Teil ein fast unmgliches Unterfangen und kann unterUmstnden stundenlang dauern.
Schnelles Arbeiten ber Tastenkombinationen
Wohl die wenigsten VBA-Entwickler werden ihre Makros immer neu schreiben.Mit dem Symbol KOPIEREN aus der Symbolleiste VOREINSTELLUNG kopieren SieMakros oder einzelne Befehle in die Zwischenablage. Schneller geht es allerdings,
wenn Sie das Makro bzw. die Zeile(n) mit der Maus markieren und die Tasten-kombination (Strg) + (C) drcken.
Setzen Sie die Einfgemarke an die Einfgestelle und klicken Sie in der Symbol-leiste VOREINSTELLUNG auf das Symbol EINFGEN. Alternativ dazu knnen Sieauch die Tastenkombination (Strg) + (V) drcken.