(eBook - German) Held, Bernd - Excel-VBA in 14 Tagen

Embed Size (px)

Citation preview

  • 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=382726619X
  • 7/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.