Microsoft Excel VBA – Das Praxisbuch

Inhaltsverzeichnis
Microsoft Excel VBA – Das Praxisbuch

Microsoft Excel VBA – Das Praxisbuch

Bernd Held

Sandra Seifert

Published by Microsoft Press Deutschland

Microsoft Excel VBA – Das Praxisbuch

Inhaltsverzeichnis

Vorwort

In diesem Vorwort:

Wir schreiben das Jahr 2013. Die neueste Excel-Version ist schon seit Monaten auf dem Markt. Wir haben diese wie auch die etwas älteren Versionen durchleuchtet und stellen Ihnen in diesem Buch neuere Techniken, bewährte Techniken, Automatisierungsmakros und viele praktische Beispiele aus unserer Programmierpraxis vor.

Sie halten ein Buch in Händen, das mit sehr viel Aufwand und intensiver Recherche erstellt worden ist. Über Monate hinweg wurde dieses Buch geschrieben. Es enthält viele Inhalte – ca. 400 Prozeduren aus unseren Projekten, Schulungen und Veranstaltungen.

Die Datenmengen, die in Unternehmen verarbeitet werden müssen, werden immer größer. Seit Excel 2007, mit dem die Zeilenkapazität über eine Million Zeilen pro Tabelle erweitert wurde, kann die Software zwar rein theroretisch viel mehr Daten verarbeiten, doch leidet die Performance ganz gewaltig darunter. Es sind also neue Techniken gefragt, die die alten Techniken ergänzen bzw. erweitern. Excel soll dabei nach wie vor als »Haupttool« eingesetzt werden, nur die Datenhaltung sollte bei Massendaten in Datenbanken stattfinden. Dies ermöglicht den zeitgleichen Zugriff auf einheitliche Daten, die zentral abgelegt sind.

Auch Techniken wie die Berechnung von Daten im Arbeitsspeicher zur Entlastung von Excel sind ein Thema dieses Buchs. Hier können sehr große Performancegewinne erzielt werden. Auswertungen mithilfe der ADO-Zugriffsmethode und dem Einsatz von SQL-Statements bringen ebenfalls einen gewaltigen Schwung an Zeitersparnis und Eleganz.

Selbstverständlich bieten auch die standardmäßigen Excel-Funktionen in Bezug auf Massendatenverarbeitung einen enormen Nutzen, sofern sie vernünftig eingesetzt werden. Dies wird ebenfalls in diesem Buch behandelt.

Im Großen und Ganzen wurde intensiv versucht, über den breiten Tellerrand von Excel zu schauen und auch neue, zukunftsträchtige Themen abzuhandeln. Auch Themenbereiche wie XML, Klassenprogrammierung, Dictionary, reguläre Ausdrücke und der Austausch von Excel mit anderen Anwendungen wie Access, SQL-Server, Word und Outlook werden anhand praktischer Beispiele demonstriert und erklärt.

Dieses Buch ist nicht für den Einsteiger in VBA geeignet. Einsteigern empfehle ich stattdessen mein Buch »Richtig einsteigen – Excel-VBA-Programmierung« von Microsoft Press.

Der Grobaufbau

Dieses Buch ist in drei Buchteile gegliedert:

Teil 1: Importrelevante Themen (E wie Eingabe)

Teil 2: Verarbeitungsrelevante Themen (V wie Verarbeitung)

Teil 3: Exportrelevante Themen (A wie Ausgabe)

= EVA (Eingabe – Verarbeitung – Ausgabe)

Der Detailaufbau

Der erste Teil des Buchs (Eingabe/Import) besteht aus genau fünf Kapiteln.

Im ersten Kapitel werden unter anderem Daten aus anderen Excel-Arbeitsmappen sowie Text- und CSV-Dateien importiert. Neuere Techniken, wie beispielsweise XML-Dateien knotenweise einzulesen und ADO-Anweisungen zu benutzen, um gezielt Daten aus Excel-Mappen und Textdateien zu importieren, werden anhand praxisnaher Beispiele erklärt. Auch die Programmierung von Pfaden und die Nutzung Excel-eigener Dialogfelder sind in diesem Kapitel ein weiteres Thema.

Das zweite Kapitel ist fest in der Hand der Datenzugriffsmethode ADO (Active Date Objects). In diesem Kapitel erfahren Sie, wie Sie von Excel aus auf Datenbanken wie Access, MySQL und Oracle importieren. Des Weiteren erhalten Sie in diesem Kapitel eine Einführung in die wichtigsten SQL-Anweisungen anhand praxisnaher Beispiele, um beispielsweise Duplikate zu entfernen und Daten zu gruppieren und zu sortieren.

Im dritten Kapitel geht es um das große Thema wie Sie Daten aus dem Internet importieren können. Sie erfahren, wie Sie eine Verknüpfung zwischen einer Internettabelle und einem Excel-Tabellenblatt herstellen. Auch die Nutzung der sogenannten Webservices wird in diesem Kapitel beschrieben.

Das vierte Kapitel dreht sich darum, wie Sie Daten über Dialogfelder (Benutzerformulare) in Excel schnell und sicher erfassen können. Auch wie Sie auf Benutzereingaben schnell reagieren und damit Fehler minimieren können, ist ein Thema dieses Kapitels.

Das fünfte Kapitel verrät, wie Sie Operatoren und Prüfungen in der Programmierung einsetzen können. In diesem Kapitel werden beispielsweise mehrere Möglichkeiten vorgestellt, Duplikate zu finden. Ein interessantes Thema in diesem Kapitel sind die regulären Ausdrücke, über die Sie bestimmte Daten identifizieren und prüfen können.

Der zweite Teil des Buchs (Verarbeitung) beinhaltet die Kapitel sechs bis zehn.

Im sechsten Kapitel werden interessante Techniken vorgestellt, über die Sie sehr große Datenmengen verarbeiten können. Über den Einsatz von Arrays werden dabei riesige Datenbestände innerhalb weniger Sekunden verarbeitet. Unter anderem werden dabei bestimmte Zeilen aus Tabellen gelöscht, Daten aus Tabellen gefiltert, Daten konvertiert, Daten gesucht, ersetzt und dokumentiert sowie Berechnungen im Arbeitsspeicher durchgeführt. Über den Einsatz des Dictionary-Objekts lassen sich Standardaufgaben wie die Verdichtung und Konsolidierung von Daten, das Extrahieren von Unikaten sowie die Ermittlung von Duplikaten sehr elegant programmieren. Auch die Programmierung von sogenannten Auflistungen (engl. Collections) ist ein weiteres Thema in diesem Kapitel.

Im siebten Kapitel wird die Datenverarbeitung mithilfe der Zugriffsmethode ADO vorgestellt. Dabei wird unter anderem auf Excel-Arbeitsmappen zugegriffen, ohne diese zu öffnen. Bestimmte Daten werden somit aus geschlossenen Mappen blitzschnell gezogen und in einer Tabelle zur Ansicht gebracht. Auch das Löschen und Ändern von Daten aus Arbeitsmappen via ADO sowie die Extraktion unikater bzw. konsolidierter Werte sind weitere Themen in diesem Kapitel.

Das achte Kapitel demonstriert häufig durchgeführte Verarbeitungsaufgaben aus der Praxis. Dabei werden unter anderem Daten aus einer Tabelle über einen Schlüssel auf viele andere Tabellen verteilt. Auch das Zusammenstellen von Daten aus mehreren Tabellen mit Ausgabe in einer einzigen Tabelle ist ein oft genutztes Praxisbeispiel. Die Erstellung von Reports auf Knopfdruck und das automatische Bereinigen und Konvertieren von Daten sowie die Suche, Kennzeichnung und das Auflisten von Daten sind weitere Themen dieses Kapitels.

Im neunten Kapitel erfahren Sie, wie Sie Excel-Arbeitsmappen mit Bordmitteln wie Tabellenfunktionen und Matrixformeln verarbeiten können. Auch der Einsatz von Datenfiltern sowie die Verwendung von Teilergebnissen werden in diesem Kapitel demonstriert. Am Ende des Kapitels erstellen Sie Pivot-Tabellen auf Knopfdruck und fügen Datenschnitte ein.

Im zehnten Kapitel lernen Sie einige wichtige Automatisierungs-Makros kennen, die Ihnen sehr viel Zeit sparen. Unter anderem sind dies das Automatische Sperren von Formelzellen in einer Tabelle sowie der Schutz aller Tabellen einer Arbeitsmappe. Weitere Makros aus diesem Kapitel: Sortieren von Tabellenblättern, Abspeichern aller Tabellen als separate Mappe, ein Inhaltsverzeichnis aller Tabellen einer Mappe erstellen und vieles mehr. Am Ende des Kapitels lernen Sie Prüffunktionen kennen, die Sie in vielen Projekten einsetzen können.

Der dritte Teil des Buchs (Ausgabe) beinhaltet die Kapitel elf bis vierzehn.

Im elften Kapitel finden Sie eine ganze Reihe von praktischen Lösungen, bei denen Inhalte aus Excel-Mappen in andere Mappen exportiert werden. Dabei werden unter anderem bestimmte Tabellen in einer neuen Arbeitsmappe beispielsweise über den Einsatz eines Arrays abgelegt. Auch gefilterte Daten und Tabellen, die zu einem bestimmten Zeitpunkt automatisch exportiert werden, sind Thema dieses Kapitels. Ein weiteres Thema ist der Export von Diagrammobjekten aus Excel und deren Ablage als Grafikdateien.

Im zwölften Kapitel werden Textdateien aller Art erstellt. Dabei werden Techniken wie beispielsweise die Nutzung des Filesystem-Objekts besprochen, über das Sie Zugriff auf das komplette Dateisystem von Windows bekommen. Auch der Export von Daten über ein Array sowie das Exportieren von gefilterten Daten in Textdateien sind weitere Themen in diesem Kapitel.

Das Kapitel dreizehn enthält Lösungen, wie Sie Daten aus Excel in diverse andere Office-Anwendungen wie PowerPoint, Word oder Outlook exportieren können. Auch das Zusammenspiel von Excel mit Datenbanken wie Access und SQL-Server wird in diesem Kapitel demonstriert. Dazu sind für diese beiden Datenbanksysteme fertige Lösungen verfügbar, über die Sie Daten komplett in Excel verarbeiten und in den Datenbanken verwalten können.

Im abschließenden Kapitel vierzehn wird beschrieben, wie Sie PDF-Daten auf Knopfdruck erstellen können. Ein weiteres Thema in diesem Kapitel ist der automatische Export von XML-Dateien.

Beispieldateien

Die Dateien mit dem Beispielcode stellen wir Ihnen online zur Verfügung. Sie finden sie auf der Support-Seite von Microsoft Press Deutschland

www.microsoft-press.de/support/9783866456938

und direkt bei O’Reilly

msp.oreilly.de/support/2410/867.

Sonstige Angebote rund um VBA

Erlauben Sie mir im Vorwort einige interessante Dinge im Umfeld von VBA kurz anzureißen.

Die Repository 2013

Sehr beliebt und aus unserem Hause ist das Personal-VBA-Repository. In dieser wertvollen, ständig erweiterten Makro-Code-Datenbank finden Sie derzeit 4.770 VBA-Lösungen zu Excel, Access, Word, PowerPoint, Outlook und übergreifenden VBA-Themen. Über ausgefeilte Suchfunktionen und eine professionelle Oberfläche finden Sie in sekundenschnelle die gewünschte Prozedur. Ich verbringe jede freie Minute damit, das VBA-Repository noch weiter auszubauen. Einen herzlichen Dank auch an meine Kunden, die mir oft neue Prozeduren für unser Produkt für Sie zur Verfügung stellen. Die Inhalte der Datenbank stammen in erster Linie direkt aus unseren Projekten, Büchern und Vorträgen. Es handelt sich also um in der Praxis erprobte Lösungen und Code-Schnippsel. Testen Sie einfach einmal unsere Gratis-30-Tageversion. Viele Projekte können damit einfach schneller erledigt werden. Auch der E-Mail-Service wird bei Abonnenten sehr gern genutzt. Dazu stehen Ihnen mein Team und ich gerne zur Verfügung.

image with no caption

Mehr Informationen zu diesem Produkt, welches Sie als Leser dieses Buchs mit einer Kostenersparnis von 30% erwerben können, finden Sie auf meiner Homepage unter www.Held-Office.de.

VBA-Entwicklertage

Jedes Jahr veranstalten wir im September die sogenannten VBA-Entwicklertage, die vielleicht auch für Sie von Interesse sind. Dort referieren namhafte VBA-Profis über interessante Themen rund um VBA. Auch hier darf ich Sie auf unsere Webseite held-office.de verweisen, um weitere Informationen darüber zu erhalten.

XING-Gruppe – VBA-Entwickler Treff

In der Kommunikationsoberfläche XING haben wir vor gut zwei Jahren den VBA-Entwickler Treff eingerichtet, ein Forum, indem wir uns austauschen. Hier können Sie gerne auch Fragen stellen. In dieser Gruppe sind schon mehrere hundert Teilnehmer. Werden Sie einer von uns und treten Sie uns bei.

Über die Autoren

image with no caption

Mein Name ist Bernd Held. Ich wurde am 02.04.1969 geboren, bin verheiratet und Vater von zwei Kindern. Während meines Abiturs und in der Zeit danach war ich Leistungssportler, wurde unter anderem zwei Mal Deutscher Jugendmeister über 400 Meter Hürden und nahm an Europa- und Weltmeisterschaften teil. Nach meiner sportlichen Laufbahn habe ich mich ins Berufsleben gestürzt und mich auf die Themen Excel/Access, individuelle VBA-Schulungen/VBA-Kurse sowie VBA-Programmierung spezialisiert.

Von Haus aus bin ich gelernter Informatiker. Zunächst war ich zwei Jahre bei einer kleinen Softwarefirma in der Entwicklung und danach sechs Jahre bei T-Systems im Controlling beschäftigt. Dort war ich verantwortlich für das Berichtswesen, die Leistungsverrechnung, das Erstellen von betrieblichen Auswertungen und Wirtschaftlichkeitsrechnungen sowie für die Erstellung neuer Controlling-Tools auf Basis von Microsoft Office. Im Januar 2002 folgte dann der Schritt in die Selbstständigkeit. Seit dieser Zeit konzentriere ich mich auf die Auftragsprogrammierung, die Unternehmensberatung sowie das Schreiben von Fachartikeln und Computerbüchern. Einige Bücher von mir wurden bereits ins Russische, Tschechische und Englische übersetzt.

Weitere Aufgabengebiete sind das fachliche Überarbeiten von Computerbüchern sowie die Durchführung von VBA-Schulungen.

Zu meinen Spezialgebieten zählen Excel, VBA-Programmierung und Access. Acht Jahre in Folge wurde ich als MVP (Most Valuable Professional) für den Bereich Excel von Microsoft ausgezeichnet.

Seit 2008 arbeite ich neben meinen drei Angestellten mit einem eigenen Team aus Experten erfolgreich zusammen. Wir führen in erster Linie Programmierprojekte und Schulungen durch, sind in der Beratung tätig und schreiben Bücher sowie Artikel für Verlage wie Markt+Technik, Addison-Wesley, Microsoft Press, Galileo Press, Franzis, Haufe, vmi und vnr.

image with no caption

Mein Name ist Sandra Seifert. Geboren bin ich am 20.08.1981 im schönen Sachsen, zwischenzeitlich aber Wahl-Baden-Württemberger. Ich bin verheiratet und Mutter eines kleinen Sohnes.

Nach meinem Realschulabschluss habe ich zunächst eine Ausbildung zur Bankkauffrau absolviert. Meine Vorliebe für Zahlen hat mich dann dazu veranlasst, eine zweite Ausbildung zur Steuerfachangestellten zu machen. Danach war ich einige Jahre im Bereich Personal und Personal-Controlling tätig.

Berufsbegleitend habe ich bei der ILS eine Weiterbildung zur Anwendungsentwicklerin mit Fokus auf VB.Net gemacht. Es ergaben sich erste Berührungspunkte mit Visual Basic for Applications und relativ schnell ein großes Interesse für die Erweiterung und Automatisierung der MS-Office-Produkte über VBA.

Seit meinem Wechsel zu Held-Office im Jahr 2011 bin ich hauptberuflich im Bereich der Entwicklung professioneller Office-Lösungen tätig. Daneben schreibe ich Artikel für Fachzeitschriften, gebe Kurse zum Thema VBA-Entwicklung und betreue unser Forum bei Xing.

Zu meinen Spezialgebieten zählen Datenbanklösungen mit Access und Excel, Ribbon-Programmierung und Outlook- und Word-VBA.

Sollten Sie Fragen/Anregungen haben, dann scheuen Sie sich nicht, die Autoren unter der E-Mail-Adresse zu kontaktieren.

Vielen Dank auch an Erich Nirschl für die Mitarbeit an Kapitel 13.