Know-how Bernd Held ist blau. Studienausgabe VBA -Programmierung für Word, Excel und Access > Ergänzen Sie Microsoft Office durch selbst programmierte Funktionen > Erstellen Sie Meldungen und Dialoge, Menü- und Symbolleisten > Tauschen Sie Daten zwischen den Office-Applikationen aus Das Praxisbuch für Microsoft-Office-Entwickler Bernd Held VBA-Programmierung für Word, Excel und Access Bernd Held Studienausgabe VBA -Programmierung für Word, Excel und Access Mit 323 Abbildungen Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte Daten sind im Internet über http://dnb.ddb.de abrufbar. Alle Angaben in diesem Buch wurden vom Autor mit größter Sorgfalt erarbeitet bzw. zusammengestellt und unter Einschaltung wirksamer Kontrollmaßnahmen reproduziert. Trotzdem sind Fehler nicht ganz auszuschließen. Der Verlag und der Autor sehen sich deshalb gezwungen, darauf hinzuweisen, dass sie weder eine Garantie noch die juristische Verantwortung oder irgendeine Haftung für Folgen, die auf fehlerhafte Angaben zurückgehen, übernehmen können. Für die Mitteilung etwaiger Fehler sind Verlag und Autor jederzeit dankbar. Internetadressen oder Versionsnummern stellen den bei Redaktionsschluss verfügbaren Informationsstand dar. Verlag und Autor übernehmen keinerlei Verantwortung oder Haftung für Veränderungen, die sich aus nicht von ihnen zu vertretenden Umständen ergeben. Evtl. beigefügte oder zum Download angebotene Dateien und Informationen dienen ausschließlich der nicht gewerblichen Nutzung. Eine gewerbliche Nutzung ist nur mit Zustimmung des Lizenzinhabers möglich. © 2010 Franzis Verlag GmbH, 85586 Poing Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Internet, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt. Die meisten Produktbezeichnungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen und sollten als solche betrachtet werden. Der Verlag folgt bei den Produkt- bezeichnungen im Wesentlichen den Schreibweisen der Hersteller. Herausgeber:Franz Graser Satz:DTP-Satz A. Kugge, München art & design: www.ideehoch2.de Druck:Bercker, 47623 Kevelaer Printed in Germany ISBN 978-3-645-60070-5 Vakatseite Kap_Anfang 5 Vorwort Eine der Stärken des Office-Pakets von Microsoft ist, dass Sie es über den Einsatz von Visual Basic for Applications (VBA) erweitern und sogar noch verbessern können. Überall entste- hen somit Office-Lösungen in Eigenregie, die den großen, bereits existierenden und oft sehr teuren Standardsoftwareprogrammen trotzen. Diese programmierten Office-Anwendungen können flexibler erstellt und auch jederzeit gepflegt werden. Dabei ist den Anwendern die Office-Oberfläche schon bekannt und die Einführung solcher Lösungen wird dadurch erleichtert. In diesem Buch werden die wichtigsten Office-Applikationen Excel, Word und Access aus- führlich behandelt. Zusätzlich werden Lösungen mit Outlook und PowerPoint präsentiert. Das Buch ist in drei Teile gegliedert: • Teil I: Die allgemeinen Office-Themen • Teil II: Die wichtigsten Office-Komponenten und der Datenaustausch zwischen den einzelnen Office-Programmen • Teil III: Fehlersuche, Tuning und Office-VBA-FAQ (Frequently Asked Questions, also häufig gestellte Fragen) Im ersten Teil werden Office umfassende Themen behandelt, die Sie mit kleinen Anpassun- gen für nahezu alle Office-Komponenten einsetzen können. So lernen Sie im ersten Kapitel, wie Sie die Entwicklungsumgebung in den Office-Komponenten einsetzen können. Im zwei- ten Kapitel lernen Sie die wichtigsten Sprachelemente wie beispielsweise Schleifen, Ver- zweigungen und Abfragen kennen. In Kapitel 3 werden VBA-Standardfunktionen des Office-Pakets anhand von Aufgaben aus der täglichen Praxis vorgestellt. Im folgenden Kapi- tel erfahren Sie, wie Sie Office durch die Programmierung eigener Funktionen weiter berei- chern können. In Kapitel 5 erstellen und programmieren Sie benutzerfreundliche UserForms und erfahren, wie Sie bereits integrierte Dialoge im Office-Paket für Ihre Programme einset- zen können. Die Programmierung von Kontextmenüs, Menü- und Symbolleisten ist Thema von Kapitel 6. Dort erfahren Sie, wie Sie diese Objekte ansprechen und programmieren kön- nen, um Ihre VBA-Projekte noch benutzerfreundlicher zu machen. In Kapitel 7 dreht sich alles um das Internet. Unter anderem erfahren Sie dort, wie Sie Hyperlinks programmieren, E-Mails verschicken und Web-Abfragen ausführen können. In Kapitel 8 greifen Sie mithilfe von VBA-Makros auf VBA-Projekte zu. Durch diese so genannten VBE-Zugriffe können Sie Quellcode sichern oder entfernen. Des Weiteren besteht die Möglichkeit, Quellcode zu importieren bzw. zu exportieren. Selbstverständlich können Sie über ein Makro auch weitere Makros Zeile für Zeile automatisch erstellen. Im zweiten Teil wird der Fokus auf die wichtigsten Office-Komponenten gerichtet. In Kapitel 9 lernen Sie die wichtigsten Objekte in Excel wie Zellen, Zeilen, Spalten, Tabellen und Arbeitsmappen anhand zahlreicher Beispiele aus der täglichen Praxis kennen. In Kapitel 10 erstellen Sie Makros in Ihrer Textverarbeitung Word. Unter anderem fügen Sie Bilder in Dokumente ein, erstellen und füllen Tabellen und vieles mehr. In Kapitel 11 lernen Sie die Programmierung der wichtigsten Elemente von Access kennen. Sie erstellen unter anderem Links 6 Vorwort Tabellen und führen Abfragen durch. Eines der wichtigsten Kapitel dieses Buchs stellt das Kapitel 12 dar. Es behandelt den Datenaustausch zwischen den einzelnen Office-Komponen- ten. In diesem Kapitel steht die Zusammenarbeit der einzelnen Office-Komponenten im Vor- dergrund. Unter anderem greifen Sie ausgehend von Word auf eine Access-Tabelle zu und übertragen Adressdaten in Ihre Textverarbeitung. Des Weiteren füllen Sie den Kontaktordner von Outlook mit Daten, die Sie aus einer Excel-Tabelle beziehen. Im dritten Teil des Buchs erfahren Sie in Kapitel 13, wie Sie Fehler in Makros aufspüren und beseitigen können. Allgemeine Ratschläge für das Verhalten im Fehlerfall ergänzen den Inhalt dieses Kapitels. In Kapitel 14 messen Sie die Geschwindigkeit von einzelnen Makros. Schritt für Schritt erfahren Sie, wie Sie Makros noch schneller und benutzerfreundlicher machen können. Im letzten Kapitel dieses Buchs präsentiere ich Ihnen eine Office-FAQ mit Fragen, die in den letzten Jahren an mich gestellt wurden und für die ich eine Lösung zur Ver- fügung stellen konnte. In Anhang A des Buchs finden Sie eine Auflistung der Dateien, die Sie auf der Website www.buch.cd finden können. Des Weiteren werden im Anhang B alle Listingbeschriftungen in einer Liste zum schnellen Nachschlagen angeboten. Im Index sind alle im Buch verwen- deten Methoden, Funktion, Eigenschaften und Anweisungen aufgenommen worden. Sie kön- nen somit schnell herausfinden, auf welchen Seiten des Buchs die Befehle verwendet und beschrieben wurden. In diesem Buch wurden Praxislösugnen in ca. 360 Makros beschrieben. Zögern Sie nicht, mich bei Fragen zum Buch über meine E-Mail-Adresse [email protected] zu kontaktieren. Ich wünsche Ihnen beim Lesen des Buchs viel Spass und hoffe, dass ich damit einen Beitrag leisten konnte, der Ihnen hilft, erfolgreich Office-Lösungen zu entwickeln. Bernd Held Über den Autor: Bernd Held ist gelernter Informatiker und programmierte drei Jahre lang bei einer Firma der Automobilbranche Warenwirtschafts- und Suchsysteme für den Kfz-Bereich. Danach arbei- tete er sechs Jahre beim debis Systemhaus im Controlling. Dort war er verantwortlich für das Berichtswesen, die Leistungsverrechnung, das Erstellen von betrieblichen Auswertungen und Wirtschaftlichkeitsrechnungen sowie für die Entwicklung neuer Controlling-Tools auf der Basis von Microsoft Office. Seit dem 1. Januar 2002 ist Herr Held selbstständig. Er schreibt Fachartikel in renommierten Zeitschriften, verfasst Computerbücher, führt Soft- ware-Schulungen durch und programmiert im Auftrag von Kunden. Sein Spezialgebiet ist Microsoft Office. Dort hat er sich auf den Bereich Excel und die Office-VBA-Programmie- rung spezialisiert. Aber auch über Microsoft Works, FrontPage, Windows und diverse ande- rer Themen hat er schon viele Bücher geschrieben. Rechts Vorwort 7 Vor drei Jahren wurde Bernd Held als MVP (Most Valuable Professional) von der Firma Microsoft ausgezeichnet. Dieser Titel wird für besondere fachliche Kompetenz, überdurch- schnittlichen Einsatz in den Diskussionsforen und für außergewöhnliches Kommunikations- talent verliehen. Im deutschsprachigen Excel-Forum von Microsoft (news:micro- soft.public.de.excel) können Sie Bernd Held des öfternen antreffen, wenn Sie Fragen zu Excel oder zur VBA-Programmierung haben. Dort hilft er Ihnen gerne weiter. Vakatseite Kap_Anfang 9 Inhaltsverzeichnis Vorwort................................................................................................................ 5 1 Die Entwicklungsumgebung von VBA............................................................ 13 1.1 Makros einfügen ................................................................................................. 13 1.2 Makros starten .................................................................................................... 15 1.3 Den Makrorekorder einsetzen ............................................................................ 15 1.4 Die Arbeitsumgebung ......................................................................................... 20 1.5 Wertvolle Helfer bei der Programmierung .......................................................... 28 1.6 Weitere Einstellungen ......................................................................................... 35 2 Die Sprachelemente von VBA.......................................................................... 41 2.1 Variablen und Konstanten .................................................................................. 41 2.2 Operatoren .......................................................................................................... 44 2.3 Verzweigungen ................................................................................................... 46 2.4 Die Anweisung Select Case ............................................................................... 50 2.5 Schleifen ............................................................................................................. 58 3 VBA-Standardfunktionen nutzen..................................................................... 91 3.1 Textfunktionen einsetzen .................................................................................... 91 3.2 Mit Verzeichnissen und Laufwerken arbeiten ................................................... 108 3.3 Datums- und Zeitfunktionen einsetzen ............................................................. 112 3.4 Prüffunktionen ................................................................................................... 126 3.5 Sonstige Funktionen ......................................................................................... 136 4 Eigene Funktionen programmieren.............................................................. 147 4.1 Farbige Zellen addieren .................................................................................... 147 4.2 Dateiprüfung ..................................................................................................... 149 4.3 Daten bereinigen .............................................................................................. 150 4.4 Aktive Zelle im Zielbereich? .............................................................................. 153 4.5 Dokumentschutz aufheben und neu setzen ..................................................... 154 4.6 Römische Zahlen wandeln ............................................................................... 156 4.7 Eingefügte Objekte in PowerPoint-Folien ermitteln .......................................... 158 4.8 Läuft eine Anwendung bereits? ........................................................................ 162 4.9 Hyperlinks auf Shape-Objekten identifizieren ................................................... 167 4.10 Ist Dokument passwortgeschützt? .................................................................... 170 4.11 Ist Arbeitsmappe passwortgeschützt? .............................................................. 171 4.12 Wo bin ich? ....................................................................................................... 173 4.13 Das älteste Dokument in einem Verzeichnis ermitteln ..................................... 176 4.14 Die Dokumenteigenschaften ermitteln .............................................................. 178 4.15 Wie viele Tage hat ein Monat? ......................................................................... 180 4.16 Initialen aus Namen bilden ............................................................................... 180