Upload
phungkhuong
View
225
Download
0
Embed Size (px)
Citation preview
LeseprobeThomas Theis bringt Ihnen anschaulich VBA für Excel bei. Über-zeugen Sie sich selbst mit der Einführung und den ersten Schritten der VBA-Programmierung. Außerdem erhalten Sie das vollständige Inhalts- und Stichwortverzeichnis des Buchs.
Thomas Theis
Einstieg in VBA mit Excel455 Seiten, broschiert, 4. Auflage 2015 19,90 Euro, ISBN 978-3-8362-3962-2
www.rheinwerk-verlag.de/4015
»Einführung« »Grundlagen von Objekten und Ereignissen«
Inhaltsverzeichnis
Index
Der Autor
Leseprobe weiterempfehlen
Wissen, wie’s geht.
17
1Kapitel 1
Einführung
In diesem Kapitel lernen Sie erste VBA-Makros kennen. Sie erfahren, wie sie
aufgebaut sind und wie Sie sie verändern können. Außerdem wird die VBA-
Entwicklungsumgebung erläutert.
VBADie Abkürzung VBA steht für Visual Basic for Applications. Es handelt sich
dabei um die Programmiersprache Visual Basic, mit speziellen Ergänzun-
gen für die verschiedenen Anwendungen in Microsoft Office.
Mit Microsoft Excel können sehr viele alltägliche Aufgaben im beruflichen
und privaten Bereich bereits gut bewältigt werden. Es gibt jedoch:
� Aufgaben, die Sie nur durch zusätzliche Programmierung mit VBA lösen
können
� Probleme, die durch zusätzliche Programmierung mit VBA schneller
gelöst werden können
In diesem Buch werden Sie anhand von leicht verständlichen Beispielen
erlernen, wie Sie VBA als Ergänzung zu Excel sinnvoll einsetzen. Eigene
Übungen (mit Lösungen im Anhang) dienen dazu, Ihren Wissensstand zu
testen.
Für die Hilfe bei der Erstellung dieses Buches bedanke ich mich beim gan-
zen Team vom Rheinwerk Verlag, ganz besonders bei Anne Scheibe.
1.1 Was wird besser durch Makros und VBA?
MakroEin einfaches Makro ist nur eine Reihe von Anweisungen, die nacheinan-
der ausgeführt werden. Durch eine solche Anweisung wird in Excel ein
bestimmter Vorgang ausgeführt, z. B. eine Zahl in eine Tabellenzelle
geschrieben. Die Anweisungen sind in der Sprache VBA geschrieben. VBA-
Programme können über einfache Makros weit hinausgehen und kom-
plexe Abläufe steuern.
3962.book Seite 17 Dienstag, 24. November 2015 3:53 15
1 Einführung
18
In der Praxis sieht es häufig so aus, dass es zwei Gruppen von Anwendern
gibt:
Entwickler � Entwickler, also erfahrene Excel-Anwender, die sich mit der Entwicklung
von komplexen Excel-Anwendungen befassen
Benutzer � Benutzer, also Einsteiger in Excel, die sich nur mit einfachen Themen, z. B.
der Dateneingabe und dem Aufruf der Excel-Anwendungen, befassen
Die Entwickler sind im Auftrag der Benutzer tätig. Die Entwicklung kann in
einer anderen Abteilung desselben Unternehmens stattfinden. Es kann
sich aber auch um extern entwickelte, d. h. eingekaufte Excel-Anwendun-
gen handeln.
Schneller Eine schnellere Problemlösung durch VBA ergibt sich:
� weil der Entwickler durch die Programmierung mit VBA schneller mit
der Entwicklung seiner Excel-Anwendung fertig sein kann
� weil die Ergebnisse für den Benutzer schneller berechnet werden können
Es folgen einige typische Szenarien, die Ihnen zeigen sollen, wozu Sie VBA
nutzen können und welche Vorteile sich daraus ergeben:
Große
Datenmengen
� Es sollen große Mengen an Daten aus einer Textdatei eingelesen werden.
Nur der Aufbau der Daten ist bekannt, nicht aber die Menge. Außerdem
sollen, abhängig vom aktuellen Inhalt der Textdatei, nur bestimmte
Daten gelesen werden. Nach dem Einlesen sollen die Daten verarbeitet,
formatiert, zusammengefasst und zur Verdeutlichung grafisch darge-
stellt werden.
Diagramme � Es soll ein Diagramm aus einer Tabelle erstellt werden. Die aktuelle
Größe und der Inhalt der Tabelle sollen die Art des Diagramms und
seine Darstellung bestimmen.
Dialogfelder � Benutzer sollen nach dem Aufrufen der Excel-Anwendung ein Dialog-
feld vor sich haben. Darin nehmen sie, abhängig von der aktuellen Situ-
ation, bestimmte Einstellungen vor, treffen die gewünschte Auswahl der
Daten und starten dann deren weitere Verarbeitung.
Wiederkehrende
Daten
� Es ergeben sich regelmäßig (z. B. jede Woche oder jeden Monat) Daten,
die auf ähnliche (nicht identische) Art und Weise weiterverarbeitet wer-
den müssen.
Schrittweise
Bearbeitung
� Die Verarbeitung bestimmter Daten ist komplex und muss in mehreren
Schritten erfolgen. Mit VBA können Sie die Koordination und die Durch-
führung der einzelnen Schritte vereinfachen.
3962.book Seite 18 Dienstag, 24. November 2015 3:53 15
1.2 MS Office 2016
19
1Excel anpassen� Benutzern sollen nach dem Aufrufen von Excel nur bestimmte Funktio-
nalitäten zur Verfügung stehen. Ihr Excel kann durch VBA gleichzeitig:
– eingeschränkt werden, wodurch es im Idealfall zu weniger Fehlbedie-
nungen kommt
– erweitert werden, wodurch ihnen spezielle Funktionen und Abläufe
zur Verfügung stehen, die über Excel hinausgehen
Anwendungen
erweitern
� Es sollen vorhandene (von anderen Entwicklern im Unternehmen
erstellte oder eingekaufte) Excel-Anwendungen geändert werden. Diese
werden zur Bewältigung der laufenden Geschäftsprozesse bereits regel-
mäßig eingesetzt. Da sich diese Prozesse geändert haben, müssen die
Excel-Anwendungen ebensfalls erweitert und angepasst werden.
In diesem Buch sollen verschiedene Möglichkeiten zur Problemlösung mit
VBA anhand von Beispielen aus der Praxis gezeigt werden. Es erhebt nicht
den Anspruch, alle Bestandteile von VBA (also alle Objekte der Objektbib-
liothek mit all ihren Eigenschaften und Methoden) aufzulisten und zu
erläutern. Dazu gibt es zu viele, und Sie würden schnell den Überblick ver-
lieren. Es wird jedoch eine umfangreiche Auswahl getroffen, die es Ihnen
ermöglicht, selbstständig mit VBA zu arbeiten.
Verständliche
Beispiele
Bei den Beispielen im Buch wird eher Wert auf Verständlichkeit als auf
Komplexität gelegt. Sie sollen schnell den aktuell neuen Aspekt der Pro-
grammierung verstehen und nicht durch umfangreiche, komplizierte Bei-
spiele verwirrt werden, in denen sich nur wenig Neues für Sie verbirgt.
1.2 MS Office 2016
Das Paket MS Office 2016 setzt als Betriebssystem mindestens Windows 7
voraus. Für dieses Buch und die darin gezeigten Abbildungen wurde
MS Office 2016 unter Windows 10 eingesetzt.
MS Office 2016-Dateien können mit Web-Apps aus dem Office Store erwei-
tert werden. Diese Web-Apps haben Zugriff auf die Daten innerhalb einer
Office-Datei. Entwickler können diese Web-Apps mithilfe von Webtechni-
ken (HTML, JavaScript, jQuery, CSS …) programmieren und im Office Store
anbieten. In diesem Buch wird nur die Entwicklung von Anwendungen
mithilfe von VBA beschrieben.
3962.book Seite 19 Dienstag, 24. November 2015 3:53 15
1 Einführung
20
1.3 Mit Makros arbeiten
Zu Beginn erstellen wir ein einfaches Makro. Dieses Makro soll anschlie-
ßend ausgeführt werden. Hinterher betrachten wir den Code, um einen
ersten Blick auf VBA werfen zu können.
Schädliche Makros Das Thema Makrosicherheit, also die Sicherheit vor fremden Makros, die
schädlichen Code enthalten können, spielt eine große Rolle. Diese Thema-
tik wird in Abschnitt 1.3.5, »Makrosicherheit ändern«, erläutert.
Excel-Dateien können seit Excel 2007 sowohl mit als auch ohne Makros
gespeichert werden. Darauf wird in Abschnitt 1.3.4, »Makro speichern«, ein-
gegangen.
Die in diesem Kapitel erläuterte Bedienung gilt für Excel 2016. Unter Excel
2013, Excel 2010 bzw. Excel 2007 gibt es jeweils leichte Abweichungen in
der Bedienung, darauf wird an den entsprechenden Stellen jeweils geson-
dert hingewiesen. In den Programmversionen vor Excel 2007 gibt es grö-
ßere Abweichungen in der Bedienung, die in einem eigenen Abschnitt
erläutert werden, nämlich in Abschnitt 1.10, »Mit Versionen vor Excel 2007
arbeiten«.
Die meisten Beispiele in diesem Buch laufen auch unter den älteren Excel-
Versionen. Falls einzelne Beispiele anders oder gar nicht funktionieren,
wird dies an der betreffenden Stelle erläutert. Sämtliche Beispiele finden
Sie – getrennt für die Versionen vor und ab Excel 2007 – auch im Down-
loadpaket zum Buch, das Sie über www.rheinwerk-verlag.de/4015 erreichen.
1.3.1 Makro aufzeichnen
Mithilfe der folgenden Beschreibung erstellen Sie ein Makro, um den Inhalt
von Zelle A1 nach Zelle C1 zu verschieben. Dazu benötigen Sie natürlich
kein VBA. Es dient aber der ersten Verdeutlichung der Abläufe:
Makro erstellen 1. Starten Sie Excel 2016.
2. Sie haben eine leere Arbeitsmappe (Mappe1) vor sich. Tragen Sie in Zelle
A1 einen beliebigen Inhalt (Zahl oder Text) ein (siehe Abbildung 1.1).
3. Betätigen Sie auf der Registerkarte Ansicht den unteren Teil der Schalt-
fläche Makros, der mit einem Pfeil gekennzeichnet ist. Es klappt ein
kleines Untermenü auf.
3962.book Seite 20 Dienstag, 24. November 2015 3:53 15
1.3 Mit Makros arbeiten
21
1
Abbildung 1.1 Zelle, deren Inhalt verschoben werden soll
4. Wählen Sie den Menüpunkt Makro aufzeichnen. Es erscheint das
Dialogfeld Makro aufzeichnen (siehe Abbildung 1.2).
Abbildung 1.2 Makro mit dem Namen »Makro1«
5. Der vorgeschlagene Makroname lautet Makro1. Diesen können Sie bei-
behalten.
6. Betätigen Sie die Schaltfläche OK. Ab jetzt werden alle Aktionen, die Sie
ausführen, aufgezeichnet.
7. Wählen Sie Zelle A1 aus.
8. Schneiden Sie den Inhalt von Zelle A1 aus.
9. Wählen Sie die Zelle C1 aus.
10. Fügen Sie den Inhalt von Zelle A1 ein.
3962.book Seite 21 Dienstag, 24. November 2015 3:53 15
1 Einführung
22
Aufzeichnung
beginnt
11. Der Inhalt von Zelle A1 wurde nach Zelle C1 verschoben (siehe Abbil-
dung 1.3).
12. Klappen Sie in der Registerkarte Ansicht wiederum über den Pfeil auf
der Schaltfläche Makros das Menü auf.
13. Wählen Sie den Menüpunkt Aufzeichnung beenden. Damit wird die
Aufzeichnung Ihrer Aktionen beendet.
14. Hinweis: Speichern Sie die Datei an dieser Stelle noch nicht.
Sie haben damit soeben Ihr erstes Makro erfolgreich erstellt.
Abbildung 1.3 Zellen nach der Verschiebung
Symbol zum
Aufzeichnen
Das Aufzeichnen geht etwas schneller, wenn Sie in der Excel-Oberfläche das
entsprechende Symbol in der Statusleiste betätigen (siehe Abbildung 1.4).
Abbildung 1.4 Symbol zum Starten einer Makro-Aufzeichnung
Nach Beginn der Aufzeichnung erscheint an der gleichen Stelle das Symbol
zum Beenden der Aufzeichnung in der Statusleiste (siehe Abbildung 1.5).
Abbildung 1.5 Symbol zum Beenden einer Makro-Aufzeichnung
3962.book Seite 22 Dienstag, 24. November 2015 3:53 15
1.3 Mit Makros arbeiten
23
1Übung 1 A
Tragen Sie eine Zahl oder einen Text in Zelle E3 ein. Zeichnen Sie ein Makro
auf, das den Inhalt der Zelle E3 nach Zelle E5 kopiert. Nennen Sie das
Makro KopieE3E5.
1.3.2 Makro ausführen
Makro startenDas soeben erstellte Makro soll nun ausgeführt werden. Gehen Sie dazu wie
folgt vor:
1. Tragen Sie in Zelle A1 einen beliebigen Inhalt ein (Zahl oder Text).
2. Klappen Sie auf der Registerkarte Ansicht über den Pfeil unten auf der
Schaltfläche Makros das Menü auf.
3. Wählen Sie den Menüpunkt Makros anzeigen.
4. Es erscheint das Dialogfeld Makro mit einer Liste der bisher erstellten
Makros. Wählen Sie in der Liste das Makro Makro1 aus.
5. Betätigen Sie die Schaltfläche Ausführen.
6. Der Inhalt der Zelle A1 wurde wiederum nach C1 verschoben.
Damit haben Sie Ihr erstes Makro erfolgreich ausgeführt.
Übung 1 B
Tragen Sie einen neuen Inhalt in Zelle E3 ein. Führen Sie das Makro
KopieE3E5 aus, und überprüfen Sie anhand des Ergebnisses die korrekte
Umsetzung.
Hinweis
Name des MakrosEin Makro sollte einen möglichst sprechenden Namen haben, der etwas
über seine Arbeitsweise aussagt. Es kann dann leichter in der Liste der
Makros gefunden und ausgewählt werden.
1.3.3 Makro ansehen
VBA-CodeSie können sich den VBA-Code des soeben erstellten Makros ansehen, um
einen ersten Eindruck von typischem VBA zu erhalten. Gehen Sie dazu wie
folgt vor:
3962.book Seite 23 Dienstag, 24. November 2015 3:53 15
1 Einführung
24
1. Klappen Sie in der Registerkarte Ansicht über den Pfeil auf der Schalt-
fläche Makros das Menü auf.
2. Wählen Sie den Menüpunkt Makros anzeigen.
3. Es erscheint das Dialogfeld Makro mit einer Liste der bisher erstellten
Makros. Wählen Sie in der Liste das Makro Makro1 aus.
4. Betätigen Sie die Schaltfläche Bearbeiten.
Visual Basic Editor Es erscheint der Visual Basic Editor (kurz: VBE), die eigentliche Entwick-
lungsumgebung. Auf seine einzelnen Elemente wird in Abschnitt 1.4,
»Visual Basic Editor (VBE) als Entwicklungsumgebung«, eingegangen.
Zunächst ist im rechten Fenster der Code des Makros zu sehen (siehe Abbil-
dung 1.6).
Abbildung 1.6 VBA-Code des Makros »Makro1«
Es folgt eine kurze Erläuterung der einzelnen Zeilen. Es macht nichts, wenn
Sie noch nicht alles genau verstehen. Die einzelnen Code-Elemente werden
später ausführlicher erläutert:
Sub … End Sub � Der Code des Makros Makro1 ist innerhalb einer Sub-Prozedur zwischen
Sub und End Sub notiert. Nach dem Namen eines Makros bzw. einer Sub-
Prozedur werden Klammern notiert, die zunächst leer sind. Ihre Bedeu-
tung wird später erläutert.
Kommentar � Ein Apostroph dient dazu, eine ganze Zeile bzw. den Rest einer Zeile zu
einem Kommentar zu machen. Der Text hinter einem Apostroph dient
nur der Erläuterung des VBA-Codes. Er wird nicht ausgeführt.
� Range("A1").Select bedeutet: Es wird die Zelle A1 ausgewählt.
3962.book Seite 24 Dienstag, 24. November 2015 3:53 15
1.3 Mit Makros arbeiten
25
1Cut� Selection.Cut bedeutet: Der Inhalt der aktuellen Auswahl, also der
Inhalt der Zelle A1, wird ausgeschnitten und befindet sich anschließend
in der Zwischenablage.
� Range("C1").Select bedeutet: Die Zelle C1 wird ausgewählt, siehe oben.
Paste� ActiveSheet.Paste bedeutet: Der Inhalt der Zwischenablage wird in das
aktuell aktive Tabellenblatt eingefügt.
Der Inhalt der Zelle A1 wurde nach C1 verschoben.
Übung 1 C
Interpretieren Sie den VBA-Code des Makros KopieE3E5():
Sub KopieE3E5()Range("E3").SelectSelection.CopyRange("E5").SelectActiveSheet.Paste
End Sub
Dieses Makro finden Sie in Mappe1.xlsm, Modul 2.
Schließen Sie den VBE über das Menü Datei • Schliessen und zurück zu
Microsoft Excel. Es erscheint die Excel-Oberfläche.
1.3.4 Makro speichern
Excel-Dateien können seit Excel 2007 sowohl mit Makros als auch ohne
Makros gespeichert werden.
Dateiendung
».xlsx«
Rufen Sie in Excel 2016 das Menü Datei auf und darin den Menüpunkt
Speichern. Auf der rechten Seite wählen Sie die Schaltfläche Durchsu-
chen. Es erscheint das Dialogfeld Speichern unter.
In Excel 2013 wählen Sie dazu auf der rechten Seite nacheinander die
Schaltflächen Computer und Durchsuchen. In Excel 2010 erscheint das
Dialogfeld Speichern unter direkt nach Auswahl des Menüpunktes Spei-
chern im Menü Datei. In Excel 2007 erscheint das Dialogfeld Speichern
unter nach Auswahl der Schaltfläche Office und des Menüpunktes Spei-
chern.
Als Dateityp ist im Dialogfeld Speichern unter angegeben: Excel-
Arbeitsmappe mit der Dateiendung .xlsx (siehe Abbildung 1.7).
3962.book Seite 25 Dienstag, 24. November 2015 3:53 15
1 Einführung
26
Abbildung 1.7 Als Arbeitsmappe ohne Makros speichern
Falls Sie nun die Schaltfläche Speichern betätigen, erscheint der Hinweis,
dass die in dieser Datei enthaltenen Makros bei diesem Dateityp nicht mit-
gespeichert werden (siehe Abbildung 1.8), also verloren gehen.
Abbildung 1.8 Warnung, dass Makros nicht mitgespeichert werden
Dateiendung
».xlsm«
Zur Speicherung mit Makros sollten Sie daher zunächst die Schaltfläche
Nein betätigen. Wählen Sie dann im Dialogfeld Speichern unter als
Dateityp die Option Excel-Arbeitsmappe mit Makros (mit der Datei-
endung .xlsm) aus und speichern Sie anschließend unter dem gewünsch-
ten Namen im gewünschten Verzeichnis, z. B. C:\Temp\Mappe1.xlsm (siehe
Abbildung 1.9).
Abbildung 1.9 Als Arbeitsmappe mit Makros speichern
Nachdem die Datei erfolgreich mit Makros gespeichert wurde, können Sie
Excel schließen.
1.3.5 Makrosicherheit ändern
Starten Sie Excel erneut. Falls Sie nun die soeben gespeicherte Datei öffnen,
stoßen Sie unweigerlich auf das Thema Makrosicherheit. Was bedeutet das?
3962.book Seite 26 Dienstag, 24. November 2015 3:53 15
1.3 Mit Makros arbeiten
27
1SicherheitswarnungExcel 2016 (ebenso wie die Vorgängerversionen) möchte Sie davor bewah-
ren, möglicherweise schädlichen VBA-Code auszuführen. Unterhalb der
Multifunktionsleiste erscheint daher eine Sicherheitswarnung mit dem
Hinweis, dass die in dieser Datei enthaltenen Makros deaktiviert wurden
(siehe Abbildung 1.10).
Abbildung 1.10 Sicherheitswarnung »Makros wurden deaktiviert.«
Makros deaktiviertDiese Reaktion erfolgt aufgrund der folgenden Standardeinstellung für die
Makrosicherheit in Excel: Alle Makros mit Benachrichtigung deak-
tivieren. Falls Sie versuchen, ein Makro auszuführen, erscheint die Infor-
mation, dass dies nicht möglich ist (siehe Abbildung 1.11).
Abbildung 1.11 Hinweis, dass Makro-Ausführung nicht möglich ist
Makros aktivierenSie haben die Möglichkeit, die in dieser Datei enthaltenen Makros zu akti-
vieren. Damit wird seit Excel 2010 die Datei in die Liste der vertrauenswür-
digen Dokumente aufgenommen. Unter Excel 2007 werden die Makros in
dieser Datei damit einmalig aktiviert. Dazu führen Sie Folgendes durch:
1. Schließen Sie die Datei.
2. Öffnen Sie sie erneut.
3. Unter Excel 2016 bis Excel 2010 betätigen Sie die Schaltfläche Inhalt
aktivieren neben der Sicherheitswarnung (siehe Abbildung 1.10).
4. Unter Excel 2007 betätigen Sie die Schaltfläche Optionen und wählen
die Option Diesen Inhalt aktivieren.
3962.book Seite 27 Dienstag, 24. November 2015 3:53 15
1 Einführung
28
Anschließend verschwindet die Sicherheitswarnung, und Sie können Mak-
ros ausführen. Unter Excel 2007 erscheint die Sicherheitswarnung aller-
dings beim nächsten Öffnen der Datei wieder. Sie können aber auch alle
Excel-Dateien in einem Verzeichnis für dauerhaft vertrauenswürdig erklä-
ren, siehe Abschnitt 1.3.7, »Makrosicherheit dauerhaft ändern«.
1.3.6 Registerkarte »Entwicklertools«
Excel-Optionen Die Registerkarte Entwicklertools bietet weiter gehende Möglichkeiten
zur Erstellung und Verwaltung von Makros. Daher sollten Sie sie dauerhaft
in Excel einblenden.
Unter Excel 2016 bis Excel 2010 rufen Sie dazu das Menü Datei auf und
betätigen die Schaltfläche Optionen. Im Dialogfeld Excel-Optionen betä-
tigen Sie die Schaltfläche Menüband anpassen. Auf der rechten Seite mar-
kieren Sie die Hauptregisterkarte Entwicklertools (siehe Abbildung 1.12).
Abbildung 1.12 Registerkarte »Entwicklertools« einblenden
Unter Excel 2007 betätigen Sie die Schaltfläche Office und dort die
Schaltfläche Excel-Optionen. In der Kategorie Häufig verwendet akti-
vieren Sie Entwicklerregisterkarte in der Multifunktionsleiste
anzeigen.
Entwicklertools Anschließend ist die Registerkarte dauerhaft aktiviert (siehe Abbildung
1.13).
3962.book Seite 28 Dienstag, 24. November 2015 3:53 15
1.3 Mit Makros arbeiten
29
1
Abbildung 1.13 Registerkarte »Entwicklertools«
1.3.7 Makrosicherheit dauerhaft ändern
Klicken Sie auf der Registerkarte Entwicklertools die Schaltfläche Mak-
rosicherh. an (siehe Abbildung 1.14).
Abbildung 1.14 Schaltfläche »Makrosicherh.«
Trust CenterUnter Excel 2016 und Excel 2013 öffnet sich anschließend das Dialogfeld
Trust Center. Unter Excel 2010 heißt dieses Dialogfeld Sicherheitscen-
ter, unter Excel 2007 Vertrauenscenter. Nach Auswahl der Kategorie
Makroeinstellungen bzw. Einstellungen für Makros sehen Sie die
Standardeinstellung Alle Makros mit Benachrichtigung deaktivie-
ren (siehe Abbildung 1.15). Außerdem sehen Sie die verschiedenen Mög-
lichkeiten zur Einstellung.
Abbildung 1.15 Trust Center
3962.book Seite 29 Dienstag, 24. November 2015 3:53 15
1 Einführung
30
Vertrauenswürdige
Speicherorte
Die folgende Möglichkeit ist allerdings besser geeignet: Nach Auswahl der
Kategorie Vertrauenswürdige Speicherorte sehen Sie eine Liste der
vertrauenswürdigen Verzeichnisse. Die Makros in den hier gelisteten Ver-
zeichnissen können immer ausgeführt werden.
Eigenen Speicherort
hinzufügen
Falls Sie also in Zukunft alle Ihre Excel-Dateien mit Makros in einem
bestimmten Verzeichnis (gegebenenfalls inklusive dessen Unterverzeich-
nisse) speichern, dann können Sie es zu der Liste hinzufügen. Dazu betäti-
gen Sie die Schaltfläche Neuen Speicherort hinzufügen. Es erscheint
ein Dialogfeld, in dem Sie die gewünschten Eingaben vornehmen können
(siehe Abbildung 1.16).
Abbildung 1.16 Vertrauenswürdiges Verzeichnis
Anschließend ist die Liste der vertrauenswürdigen Speicherorte um ein
Element ergänzt (siehe Abbildung 1.17).
Abbildung 1.17 Liste der vertrauenswürdigen Verzeichnisse
Vertrauenswürdige
Dokumente
Falls Sie nicht mehr sicher sind, welche einzelnen Dokumente Sie bereits
außerhalb der vertrauenswürdigen Verzeichnisse als vertrauenswürdig
erklärt haben, können Sie nach der Auswahl der Kategorie Vertrauens-
würdige Dokumente die Schaltfläche Löschen betätigen. Damit wird
die gesamte Liste der vertrauenswürdigen Dokumente gelöscht. Anschlie-
ßend müssen Sie Ihre Dokumente jeweils beim Öffnen wieder einzeln als
vertrauenswürdig erklären.
3962.book Seite 30 Dienstag, 24. November 2015 3:53 15
1.4 Visual Basic Editor (VBE) als Entwicklungsumgebung
31
11.4 Visual Basic Editor (VBE) als Entwicklungsumgebung
Es gibt mehrere Wege, den VBE als Entwicklungsumgebung aufzurufen, in
der Sie den VBA-Code schreiben. Wie erläutert, gelangen Sie über die Schalt-
fläche Makros auf der Registerkarte Ansicht oder der Registerkarte Ent-
wicklertools dorthin. Ebenfalls auf der Registerkarte Entwicklertools
finden Sie die Schaltfläche Visual Basic zum direkten Aufruf des VBE.
Alt + F11Außerdem können Sie den VBE von der Excel-Oberfläche mit der Tasten-
kombination (Alt) + (F11) aufrufen. Mit der gleichen Tastenkombination
können Sie auch wieder vom VBE zur Excel-Oberfläche zurückwechseln.
Dies wird in der Praxis häufig durchgeführt.
1.4.1 Menüleiste und Symbolleiste
Symbolleiste
»Bearbeiten«
Im oberen Teil des VBE befinden sich eine Menüleiste und die Symbolleiste
Voreinstellung. Nützlich für die Programmierung ist ebenfalls die Sym-
bolleiste Bearbeiten, die Sie über das Menü Ansicht • Symbolleisten
einblenden können. Beide Symbolleisten sehen Sie in Abbildung 1.18.
Abbildung 1.18 Symbolleisten »Voreinstellung« und »Bearbeiten«
Deklaration
erzwingen
Nehmen Sie zu Beginn bitte eine Voreinstellung vor, die für die VBA-Pro-
grammierung wichtig ist: Im Menü Extras • Optionen • Registerkarte
Editor setzen Sie ein Häkchen bei Variablendeklaration erforder-
lich (siehe Abbildung 1.19).
Abbildung 1.19 Einstellung »Variablendeklaration erforderlich«
3962.book Seite 31 Dienstag, 24. November 2015 3:53 15
1 Einführung
32
Option Explicit Dies sorgt ab dem nächsten Öffnen von Excel dafür, dass in jedem Modul
oberhalb des VBA-Codes die Zeile Option Explicit steht und alle Variablen
deklariert werden müssen.
Damit wird in Ihrem VBA-Code automatisch darauf geachtet, dass Sie alle
Variablen explizit deklarieren. Dies kann zur Verminderung von Fehlern
und zur Verbesserung der Performance Ihrer Programme beitragen. Varia-
blen dienen der Speicherung von Zahlen, Daten und Texten, die im späte-
ren Verlauf eines Programms noch benötigt werden. Dazu mehr in Kapitel
3, »Grundlagen der Programmierung mit VBA«.
1.4.2 Projekt-Explorer und Fenster »Eigenschaften«
Auf der linken Seite des VBE befinden sich der Projekt-Explorer und das
Fenster Eigenschaften (siehe Abbildung 1.20).
Abbildung 1.20 Projekt-Explorer und Fenster »Eigenschaften«
Projekt-Explorer Im Projekt-Explorer werden die Elemente der aktuell geöffneten Dateien
angezeigt, in denen Sie mit VBA programmieren können. Dies sind:
Modul � Eigene Codemodule, wie z. B. das Modul1, das durch die Aufzeichnung
eines Makros automatisch erzeugt wurde. Ein eigenes, leeres Modul
kann auch über das Menü Einfügen • Modul erzeugt werden.
3962.book Seite 32 Dienstag, 24. November 2015 3:53 15
1.4 Visual Basic Editor (VBE) als Entwicklungsumgebung
33
1Klassenmodul� Vorhandene Klassenmodule, wie DieseArbeitsmappe und Tabelle1 bis
Tabelle3, also die gesamte Arbeitsmappe und die aktuell vorhandenen
Tabellen. Hier kann VBA-Code notiert werden, der beim Eintreten
bestimmter Ereignisse, wie z. B. beim Öffnen einer Arbeitsmappe, auto-
matisch ausgeführt wird.
� eigene Klassenmodule zur objektorientierten Programmierung, die Sie
über das Menü Einfügen • Klassenmodul erzeugen können
UserForm� UserForms, also eigene Dialogfelder zur komfortablen Programmsteue-
rung, die sich über das Menü Einfügen • UserForm erzeugen lassen
Für uns sind zunächst nur die eigenen Codemodule wichtig. Die VBA-Bei-
spiele in diesem Buch werden in Codemodulen gespeichert, falls kein
anderslautender Hinweis erfolgt. Falls Code in UserForms oder eigenen
Klassenmodulen gespeichert wird, so ist dies explizit angegeben. Der VBA-
Code in Klassenmodulen bezieht sich normalerweise nur auf das jeweilige
Klassenmodul. Per Doppelklick auf ein Element im Projekt-Explorer wird
der VBA-Code des betreffenden Moduls eingeblendet.
Übung 1 D
Blenden Sie den VBA-Code der verschiedenen Elemente ein.
Eigenschaften
und Werte
Im Fenster Eigenschaften werden die Eigenschaften des aktuell ausge-
wählten Moduls bzw. die Eigenschaften des ausgewählten Steuerelements
eines eigenen Dialogfeldes aufgelistet. Die Werte dieser Eigenschaften kön-
nen verändert werden. Ein Modul wird durch einen einfachen Klick im Pro-
jekt-Explorer ausgewählt. Zunächst ist das Fenster Eigenschaften für uns
nicht wichtig.
1.4.3 Codefenster
Code ausführenAuf der rechten Seite des VBE befindet sich das bereits bekannte Codefens-
ter mit dem VBA-Code. Sie können eines der Makros von hier aus direkt
ausführen. Setzen Sie dazu den Cursor in die betreffende Prozedur.
Anschließend können Sie eine der folgenden Aktionen ausführen:
� im Menü Ausführen den Menüpunkt Sub/UserForm ausführen
aufrufen
Taste »F5«� die Taste (F5) betätigen
3962.book Seite 33 Dienstag, 24. November 2015 3:53 15
1 Einführung
34
� in der Symbolleiste Voreinstellung das Symbol mit dem grünen Pfeil,
der nach rechts weist, betätigen (siehe Abbildung 1.21).
Abbildung 1.21 Symbol »Sub/UserForm ausführen« (Taste »F5«)
Übung 1 E
Testen Sie auf diese Weise die beiden vorhandenen Makros. Das Ergebnis
sehen Sie natürlich nur in der Excel-Oberfläche. Sie müssen also (z. B. mit-
hilfe der Tastenkombination (Alt) + (F11)) zwischen Excel-Oberfläche
und VBE hin- und herwechseln.
Zur Erinnerung
Ein Apostroph im VBA-Code dient dazu, eine ganze Zeile bzw. den Rest
einer Zeile hinter dem Apostroph zu einem Kommentar zu machen.
Übung 1 F
Fügen Sie Ihren beiden Makros jeweils eine Kommentarzeile hinzu mit
dem Text: Dieses Makro wurde von [Ihr Name] erstellt. Testen Sie Ihre
Makros erneut.
1.5 Makrocode verstehen und ändern
Im nächsten Schritt sollen Sie Ihre eigenen Makros verändern. Dazu müs-
sen wir ihren Code etwas näher betrachten, zunächst am Beispiel des Mak-
ros Makro1():
Sub Makro1()Range("A1").SelectSelection.CutRange("C1").SelectActiveSheet.Paste
End Sub
Listing 1.1 Sub Makro1() in Mappe1.xlsm, Modul 1
3962.book Seite 34 Dienstag, 24. November 2015 3:53 15
1.5 Makrocode verstehen und ändern
35
1Zur Erläuterung:
Sub … End Sub� Der Code der Makros ist jeweils innerhalb einer Sub-Prozedur zwischen
Sub und End Sub notiert. Die einzelnen Zeilen werden der Reihe nach
durchlaufen und ausgeführt.
Range� Range("A1").Select bedeutet: Für einen (Zell-)Bereich (engl. range) wird
etwas durchgeführt. In diesem Fall wird der Bereich ausgewählt (engl.
select). Der Bereich umfasst hier nur die Zelle A1. Er kann auch mehrere
Zellen umfassen.
Cut� Selection.Cut bedeutet: Für die vorher getroffene Auswahl (engl. selec-
tion) wird etwas durchgeführt. In diesem Fall wird die Auswahl ausge-
schnitten (engl. cut). Es wurde also der Inhalt der Zelle A1 ausgeschnitten.
Dieser Inhalt befindet sich nun in der Zwischenablage.
In dem Makro KopieE3E5() aus der Übung 1 A wird auf ähnliche Art und
Weise mit Selection.Copy die vorher getroffene Auswahl in die Zwi-
schenablage kopiert.
� Range("C1").Select erklärt sich nun von selbst.
Paste� ActiveSheet.Paste bedeutet: Für das aktuell aktive Tabellenblatt (engl.
sheet) wird etwas durchgeführt. In diesem Fall wird der Inhalt der Zwi-
schenablage eingefügt (engl. paste). Dies wird an der vorher ausgewähl-
ten Stelle (Zelle C1) vorgenommen.
Hinweis
Active…Mit dem Präfix Active wird immer das aktuell aktive Element bezeichnet,
wie z. B. ActiveCell (Zelle), ActiveSheet (Tabellenblatt) oder ActiveWork-book (Arbeitsmappe).
Durch den Eintrag von D1 statt C1 als Zielzelle können Sie den Code leicht
verändern. Anschließend wird der Inhalt der Zelle A1 zur Zelle D1 verscho-
ben.
Übung 1 G
Verändern Sie das Makro KopieE3E5() aus Übung 1 A (siehe Abschnitt 1.3.1,
»Makro aufzeichnen«). Es soll der Inhalt der Zellen E3 bis G3 sowohl in die
Zellen E5 bis G5 als auch in die Zellen E10 bis G10 kopiert werden. Nennen
Sie das geänderte Makro KopieE3E5Neu().
3962.book Seite 35 Dienstag, 24. November 2015 3:53 15
1 Einführung
36
Hinweise dazu:
� Ein Zellbereich aus mehreren Zellen wird genau wie in Excel notiert,
also z. B. E3:G3.
� Für eine Zielangabe reicht die Angabe einer einzelnen Zelle aus. Die
weiteren Zellen des kopierten Bereichs werden, wie aus Excel gewohnt,
in die Nachbarzellen eingefügt.
� Aus der Zwischenablage können beliebig viele Kopien eingefügt wer-
den.
Hinweis
Aktivieren und
selektieren
In den genannten Beispielen werden Quellbereiche selektiert und Zielbe-
reiche aktiviert. Dadurch erhält man als VBA-Neuling einen leicht ver-
ständlichen Einstieg, weil der Code die gleichen Schritte ausführt wie
Benutzer in der Excel-Oberfläche.
Es wird aber mehr Code als notwendig erzeugt. Die Wartung solchen
Codes dauert länger, und die Ausführung ist langsamer. Im weiteren Ver-
lauf dieses Buches werden Sie lernen, wie Sie besseren Code erstellen.
1.6 Makro per Schaltfläche ausführen
Schaltfläche
einfügen
Sie können als Entwickler Benutzern das Starten eines Makros erleichtern,
indem Sie ihnen eine Schaltfläche (engl. button) zur Verfügung stellen. So
können Sie ein übersichtlich zu bedienendes Tabellenblatt mit Daten, For-
meln und Programmen vorbereiten.
Zur Erzeugung einer Schaltfläche gehen Sie wie folgt vor:
1. Auf der Registerkarte Entwicklertools betätigen Sie die Schaltfläche
Einfügen.
2. Es erscheint eine Sammlung von Steuerelementen. Darin wählen Sie das
Symbol links oben: Schaltfläche (Formular-Steuerelement).
3. Platzieren Sie den Mauszeiger an der gewünschten Stelle auf dem Tabel-
lenblatt. Es erscheint ein kleines Kreuz. Drücken Sie die linke Maustaste,
halten Sie sie gedrückt, und ziehen Sie die Schaltfläche in der gewünsch-
ten Größe auf.
Makro und
Schaltfläche
verbinden
4. Es erscheint das Dialogfeld Makro zuweisen (siehe Abbildung 1.22).
Suchen Sie das gewünschte Makro heraus, und bestätigen Sie mit OK.
3962.book Seite 36 Dienstag, 24. November 2015 3:53 15
1.7 Relative Verweise verwenden
37
1
Abbildung 1.22 Makro einer Schaltfläche zuordnen
Anschließend erscheint die Schaltfläche im Bearbeitungsmodus. Klicken
Sie einmal neben die Schaltfläche. Anschließend können Sie durch Klick
auf die Schaltfläche das Makro ausführen (siehe Abbildung 1.23).
Abbildung 1.23 Neu eingefügte Schaltfläche
Hinweis
Schaltfläche
bearbeiten
Sie können eine Schaltfläche nachträglich bearbeiten. Dazu klicken Sie mit
der rechten Maustaste auf die Schaltfläche. Dann sind Sie wieder im Bear-
beitungsmodus. Sie können nun ihre Größe und Position verändern. Über
das Kontextmenü (wiederum erreichbar per Rechtsklick) können Sie ihr ein
anderes Makro zuweisen oder den Text auf der Schaltfläche verändern.
1.7 Relative Verweise verwenden
Beim Aufzeichnen der Makros ist Ihnen sicherlich schon die Schaltfläche
Relative Verweise verwenden aufgefallen. In früheren Versionen hieß
die Schaltfläche Relative Aufzeichnung. Dabei handelt es sich um eine
Schaltfläche, die Sie an zwei Stellen betätigen können:
3962.book Seite 37 Dienstag, 24. November 2015 3:53 15
1 Einführung
38
� in dem Menü, das über die Schaltfläche Makros auf der Registerkarte
Ansicht erreicht werden kann
� auf der Registerkarte Entwicklertools
Schalter Falls dieser Schalter eingeschaltet ist, also optisch hervorgehoben wird,
werden die nachfolgenden Makros relativ aufgezeichnet. Bei den bisher
erstellten Makros war dieser Schalter nicht eingeschaltet. Diese Makros
wurden daher absolut aufgezeichnet:
Absolut
aufzeichnen
� Absolute Aufzeichnung bedeutet, dass im Makrocode absolute Zellanga-
ben stehen (Beispiel: A1, C1). Bei der Ausführung eines solchen Makros ist
es egal, welche Zelle in Excel aktiv ist, denn es wird immer mit den Zellen
A1 und C1 gearbeitet.
Relativ aufzeichnen � Relative Aufzeichnung bedeutet, dass im Makrocode relative Zellanga-
ben stehen. Bei der Ausführung eines solchen Makros werden die Aktio-
nen relativ zu der Zelle ausgeführt, die in Excel aktiv ist.
Zur Verdeutlichung soll ein Makro aufgezeichnet werden, in dem das Glei-
che gemacht wird wie im ersten Beispielmakro: Der Inhalt der Zelle A1 wird
nach C1 verschoben. Allerdings wird das Makro relativ aufgezeichnet. Füh-
ren Sie folgende Schritte durch:
1. Aktivieren Sie in Excel den Schalter Relative Verweise verwenden
bzw. Relative Aufzeichnung.
2. Tragen Sie in Zelle A1 einen beliebigen Inhalt ein (Zahl oder Text).
3. Wählen Sie die Zelle A1 aus.
4. Beginnen Sie mit der Aufzeichnung des Makros (Name Makro2).
5. Schneiden Sie den Inhalt der Zelle A1 aus.
6. Fügen Sie den Inhalt der Zwischenablage in Zelle C1 ein. Der Inhalt der
Zelle A1 wurde nach C1 verschoben.
7. Beenden Sie die Makro-Aufzeichnung.
Relative
Verschiebung
Bis hierhin ist noch kein sichtbarer Unterschied aufgetreten. Falls Sie aller-
dings das Makro ausführen, wird jeweils der Inhalt der aktuell ausgewähl-
ten Zelle um zwei Zellen nach rechts verschoben (z. B. von D10 nach F10)
und nicht immer der Inhalt der Zelle A1 nach Zelle C1.
Die aktive Zelle ist nun der Ausgangspunkt. Betrachten wir den Code:
Cut � Selection.Cut: Es geschieht das Gleiche wie bei der absoluten Aufzeich-
nung, also der Inhalt der aktiven Zelle wird ausgeschnitten. Er liegt nun
in der Zwischenablage.
3962.book Seite 38 Dienstag, 24. November 2015 3:53 15
1.8 Persönliche Makroarbeitsmappe
39
1Offset� ActiveCell.Offset(0, 2).Range("A1").Select: Ausgehend von der akti-
ven Zelle wird ein Offset (also ein Versatz) ausgewählt. Die Angaben in
Klammern stehen für Zeile und Spalte des Versatzes. Es wird also eine
Zelle in der gleichen Zeile (Offset-Zeile 0) und zwei Spalten weiter rechts
(Offset-Spalte 2) ausgewählt. Falls die aktive Zelle D10 ist, dann wird
demnach die Zelle F10 ausgewählt.
Zu diesem Versatz wird der Bereich A1 ausgewählt. Dies ist nicht die
absolute Zelle A1 des Tabellenblattes, sondern die oberste linke Zelle des
Versatzes. Diese Zelle (in der gleichen Zeile, zwei Zellen weiter rechts)
wird ausgewählt.
Paste� ActiveSheet.Paste: Es geschieht das Gleiche wie bei der absoluten Auf-
zeichnung, also der Inhalt der Zwischenablage wird eingefügt.
Dieses Makro zeigt ein ganz anderes Verhalten als das Makro, das absolut
aufgezeichnet wurde. Beide Makro-Aufzeichnungsarten haben ihre Vor-
teile, je nach Situation.
Hinweis
Nach dem Schließen und erneuten Öffnen von Excel steht der Schalter
immer auf Absolute Aufzeichnung. Sie können während einer Aufzeich-
nung über den Schalter zwischen relativer und absoluter Aufzeichnung
wechseln, falls dies notwendig sein sollte.
Übung 1 H
Erstellen Sie ein Makro, das den Inhalt von drei nebeneinanderliegenden,
markierten Zellen um zwei Zeilen bzw. um sieben Zeilen nach unten
kopiert. Es entspricht dem Makro aus der Übung 1 G (siehe Abschnitt 1.5,
»Makrocode verstehen und ändern«), allerdings mit relativer Aufzeich-
nung. Nennen Sie das Makro RelKopie(). Testen Sie es, und interpretieren
Sie den VBA-Code.
1.8 Persönliche Makroarbeitsmappe
Makros überall
benutzen
Die bisher aufgezeichneten Makros wurden in der aktuell aktiven Arbeits-
mappe gespeichert. Daher stehen sie nur dort zur Verfügung. Falls Sie
bestimmte Makros für den universellen Einsatz immer zur Verfügung
haben möchten, sollten Sie sie in der Mappe Persönliche Makroarbeits-
3962.book Seite 39 Dienstag, 24. November 2015 3:53 15
1 Einführung
40
mappe speichern. Dabei handelt es sich um eine Arbeitsmappe, die immer
zusammen mit Excel geöffnet wird, sobald sie existiert.
Zum Speichern eines Makros in der Mappe Persönliche Makroarbeitsmappe
muss beim Aufzeichnen eines Makros im Dialogfeld Makro aufzeich-
nen der entsprechende Eintrag in der Liste Makro speichern in: ausge-
wählt werden (siehe Abbildung 1.24).
Abbildung 1.24 In der Mappe »Persönliche Makroarbeitsmappe« speichern
Datei
personal.xlsb
Nach der Aufzeichnung erscheint ein weiterer Eintrag im Projekt-Explorer
des VBE: die Datei personal.xlsb (siehe Abbildung 1.25). Ihr Standardspei-
cherort ist seit Windows Vista das (eventuell versteckte, d. h. ausgeblen-
dete) Verzeichnis C:\Benutzer\[ Benutzername ]\AppData\Roaming\Micro-
soft\Excel\XLStart und unter Windows XP C:\Dokumente und Einstellun-
gen\[ Benutzername ]\Anwendungsdaten\Microsoft\Excel\XLStart.
Abbildung 1.25 »Persönliche Makroarbeitsmappe« im Projekt-Explorer
Makros immer
verfügbar
Falls diese Datei verändert wurde, indem z. B. ein Makro hinzugefügt oder
geändert wurde, werden Sie bei jedem Schließen von Excel gefragt, ob Sie
diese Änderungen speichern möchten. Nach jedem Öffnen von Excel ste-
hen die Makros in dieser Datei zur Verfügung.
3962.book Seite 40 Dienstag, 24. November 2015 3:53 15
1.9 Code schreiben für einfache Ausgaben
41
1Übung 1 I
Erstellen Sie das gleiche Makro wie in der letzten Übung, der Übung 1 H.
Speichern Sie es aber diesmal in der Mappe Persönliche Makroarbeits-
mappe. Schließen Sie Excel. Testen Sie das Makro nach dem erneuten Öff-
nen von Excel in einer beliebigen Arbeitsmappe.
1.9 Code schreiben für einfache Ausgaben
Selbst
programmieren
In diesem Abschnitt wird erstmalig VBA-Code nicht durch eine Makro-Auf-
zeichnung, sondern durch Schreiben des Codes in einer eigenen Sub-Proze-
dur erstellt. Es entsteht also das erste richtige VBA-Programm. Außerdem
werden drei Möglichkeiten zur Ausgabe von Ergebnissen oder Kontrollwer-
ten genannt, die häufig in der VBA-Programmierung benutzt werden:
� in einer Zelle
� in einer Nachrichtenbox
� im Direktfenster des VBE
1.9.1 Eigene Sub-Prozedur
Zunächst zur Erstellung einer eigenen Sub-Prozedur. Wechseln Sie mit den
Tasten (Alt) + (F11) zum VBE. Schreiben Sie unterhalb des letzten Makros
die folgende Zeile:
Sub AusgabeZelle
Unterstützung
durch Editor
Sobald Sie mit der Taste (¢) die Zeile wechseln, stellen Sie fest, dass der
Editor Sie bei der VBA-Programmierung unterstützt (siehe Abbildung 1.26):
� Am Ende der Zeile werden Klammern angefügt.
� Es wird die Zeile mit End Sub erzeugt.
� Der Cursor steht in der Zeile dazwischen – bereit zur Eingabe Ihres VBA-
Codes.
� Es wird eine Trennzeile zwischen den einzelnen Makros erzeugt.
Abbildung 1.26 Neue eigene Sub-Prozedur
3962.book Seite 41 Dienstag, 24. November 2015 3:53 15
1 Einführung
42
Der Editor bietet dem Programmierer umfangreiche weitere Unterstüt-
zung, aber dazu später.
Prozedurname (…) Hinter dem Namen einer Sub-Prozedur (oder kurz Prozedur) stehen immer
Klammern, ebenso wie bei Ihren bisherigen Makros. Diese Klammern sind
zunächst leer. Später werden Sie sehen, dass Sie innerhalb der Klammern Auf-
rufparameter notieren können, die eine Prozedur flexibler machen können.
1.9.2 In Zelle ausgeben
Geben Sie in der Prozedur AusgabeZelle() folgende Codezeile ein:
Range("A1").Value = "Hallo"
Damit sieht Ihre Prozedur wie folgt aus:
Sub AusgabeZelle()Range("A1").Value = "Hallo"
End Sub
Listing 1.2 Sub AusgabeZelle() in Mappe1.xlsm, Modul 1
Beim Ausführen dieser Prozedur, z. B. mithilfe der Taste (F5), wird der Text
Hallo in Zelle A1 ausgegeben (siehe Abbildung 1.27).
Abbildung 1.27 Ergebnis der eigenen Sub-Prozedur
Eigenschaft »Value« Sie haben bereits gesehen, dass Sie einen Bereich, der eine oder mehrere
Zellen umfasst, über Range ansprechen können. Wir haben die Methode
Select() aufgerufen, um diesen Bereich auszuwählen. Diesmal wird die
Eigenschaft Value mit einem Eigenschaftswert versehen, dem Text Hallo.
Über Value erhält die Zelle einen Wert.
Hinweis
Eine Prozedur sollte einen möglichst sprechenden Namen haben, der
etwas über ihre Arbeitsweise aussagt. Außerdem muss der Name inner-
halb der Anwendung eindeutig sein. Es darf also kein Prozedurname dop-
pelt vorkommen.
3962.book Seite 42 Dienstag, 24. November 2015 3:53 15
1.9 Code schreiben für einfache Ausgaben
43
11.9.3 In Nachrichtenbox ausgeben
Schreiben Sie eine weitere Prozedur mit folgendem Code:
Sub AusgabeBox()MsgBox "Hallo"
End Sub
Listing 1.3 Sub AusgabeBox() in Mappe1.xlsm, Modul 1
Box schließenNach dem Aufruf erscheint eine kleine Nachrichtenbox mit dem Text Hallo
(siehe Abbildung 1.28). Diese Box wird erst dann geschlossen, wenn der
Benutzer die Schaltfläche OK betätigt hat. Anschließend laufen, falls vor-
handen, weitere Teile des Programms ab. Sollte der VBE einmal unerwartet
keinerlei Reaktion zeigen, wechseln Sie einfach mit (Alt) + (F11) zum
Excel-Tabellenblatt: Vielleicht wartet dort eine Nachricht auf Ihre Reaktion.
Abbildung 1.28 In Nachrichtenbox ausgeben
MsgBoxEine solche Nachrichtenbox können Sie u. a. benutzen zur:
� Kontrollausgabe während der Programmierung
� Information des Benutzers bei einem Fehler
� Information des Benutzers am Ende eines Programms
Bei MsgBox handelt es sich um eine vorgefertigte Funktion, bei der Sie eine
Zeichenkette, z. B. einen Text in Anführungsstrichen, als Aufruf-Parameter
notieren müssen. Die Funktion MsgBox() kann allerdings wesentlich mehr,
wie Sie in Abschnitt 8.3, »Einfacher Dialog mit dem Benutzer«, sehen werden.
vbCrLfBei längeren Ausgaben wird häufig ein Zeilenumbruch benötigt. Dieser
wird über die Konstante vbCrLf bereitgestellt. Ein Beispiel:
Sub AusgabeBoxZeilenumbruch()MsgBox "Hallo" & vbCrLf & "Welt"
End Sub
Listing 1.4 Sub AusgabeBoxZeilenumbruch() in Mappe1.xlsm, Modul 1
3962.book Seite 43 Dienstag, 24. November 2015 3:53 15
1 Einführung
44
Die Ausgabe sehen Sie in Abbildung 1.29.
Abbildung 1.29 Mit Zeilenumbruch ausgeben
Den Namen dieser Konstanten kann man sich leicht merken, denn es han-
delt sich dabei um ein Relikt aus der Urzeit: In vbCrLf steht das Cr für Car-
riage Return, den Wagenrücklauf der Schreibmaschine zum Zeilenanfang.
Das Lf steht für Line Feed, den Zeilenvorschub.
Hinweis
Operator »&« Der Operator & dient der Verkettung von Zeichenfolgen. Er wird häufig
benötigt, um Ergebnisse anschaulich zusammen mit Text darzustellen.
1.9.4 Im Direktfenster des VBE ausgeben
Schreiben Sie eine weitere Prozedur mit folgendem Code:
Sub AusgabeKontrolle()Debug.Print "Hallo"
End Sub
Listing 1.5 Sub AusgabeKontrolle() in Mappe1.xlsm, Modul 1
Debug.Print Nach dem Aufruf erscheint zunächst gar nichts, da das Direktfenster des
VBE nicht eingeblendet ist. Zeigen Sie es über das Menü Ansicht • Direkt-
fenster im VBE an. Anschließend sehen Sie die soeben erzeugte Ausgabe
(siehe Abbildung 1.30).
Das Direktfenster (= Direktbereich) können Sie ebenfalls zur Kontroll-
ausgabe während der Programmierung nutzen.
3962.book Seite 44 Dienstag, 24. November 2015 3:53 15
1.10 Mit Versionen vor Excel 2007 arbeiten
45
1
Abbildung 1.30 Im Direktfenster ausgeben
1.10 Mit Versionen vor Excel 2007 arbeiten
Zunächst das Wichtigste: Excel-Dateien werden in den Versionen vor Excel
2007 einheitlich mit der Dateiendung .xls gespeichert, unabhängig davon,
ob sie Makros enthalten oder nicht.
Die meisten Beispiele in diesem Buch laufen auch unter Versionen vor
Excel 2007. Im Downloadpaket zum Buch, das Sie über www.rheinwerk-ver-
lag.de/4015 erreichen, stehen die Dateien daher zusätzlich im xls-Format
zur Verfügung.
Als Beispiel für das Arbeiten mit den Versionen vor Excel 2007 (genauer
Excel 97 bis Excel 2003) soll in diesem Abschnitt Excel 2002 dienen. Es wer-
den nur die Unterschiede zu Excel 2016 erläutert, in Anlehnung an die Rei-
henfolge der bisherigen Abschnitte.
1.10.1 Makro aufzeichnen
Zum Starten einer Aufzeichnung wählen Sie im Menü Extras das Unter-
menü Makro und darin den Menüpunkt Aufzeichnen. Zum Beenden der
Aufzeichnung wählen Sie im Menü Extras das Untermenü Makro und
darin den Menüpunkt Aufzeichnung beenden.
Nach dem Start einer Aufzeichnung erscheint die kleine Symbolleiste Auf-
zeichnung beenden. Sollte sie nicht von selbst erscheinen, kann sie auf
die übliche Art eingeblendet werden: mit der rechten Maustaste im Bereich
der Symbolleisten klicken und das Häkchen vor der betreffenden Symbol-
leiste setzen. Sie beinhaltet zwei Symbole:
� Mit Betätigung des linken Symbols können Sie die Aufzeichnung eben-
falls beenden.
3962.book Seite 45 Dienstag, 24. November 2015 3:53 15
1 Einführung
46
� Mit Betätigung des rechten Symbols können Sie auf relative Aufzeich-
nung umschalten. Diese Einstellung gilt ebenfalls für spätere Makro-
Aufzeichnungen.
1.10.2 Makro ausführen
Zum Ausführen des Makros wählen Sie im Menü Extras das Untermenü
Makro und darin den Menüpunkt Makros. Wählen Sie im Dialogfeld
Makro das gewünschte Makro aus, und klicken Sie auf die Schaltfläche
Ausführen.
1.10.3 Makro ansehen
Zum Ansehen des Makros wählen Sie im Menü Extras das Untermenü
Makro und darin den Menüpunkt Makros. Wählen Sie im Dialogfeld
Makro das gewünschte Makro aus, und klicken Sie auf die Schaltfläche
Bearbeiten. Es erscheint der VBE. Sie können ihn über den Menüpunkt
Schließen und zurück zu Microsoft Excel im Menü Datei wieder
beenden.
1.10.4 Makro speichern
Wie bereits erwähnt, werden Excel-Dateien in diesen Versionen einheitlich
gespeichert, unabhängig davon, ob sie Makros enthalten oder nicht.
Zum Speichern der Datei wählen Sie im Menü Datei den Menüpunkt Spei-
chern. Es erscheint das Dialogfeld Speichern unter. Als Dateityp ist
Excel-Arbeitsmappe mit der Dateiendung .xls angegeben. Wählen Sie
den gewünschten Dateinamen und das gewünschte Verzeichnis aus, und
klicken Sie auf die Schaltfläche Speichern.
Dateityp ändern Falls Sie an einem externen PC eine der Excel-Versionen von 2007 bis 2016
zur Verfügung haben und eine dort erstellte Excel-Datei auf Ihrem PC in
einer Version vor Excel 2007 haben wollen, rufen Sie auf dem externen PC
das Dialogfeld Speichern unter auf, und wählen Sie den Dateityp Excel
97-2003-Arbeitsmappe mit der Dateiendung .xls.
Kompatibilitäts-
prüfung
Falls sich in der Datei VBA-Code befindet, der nicht unter älteren Excel-Ver-
sionen ausgeführt werden kann, erscheint das Dialogfeld Kompatibili-
tätsprüfung. Darin wird das Problem genauer erläutert.
3962.book Seite 46 Dienstag, 24. November 2015 3:53 15
1.10 Mit Versionen vor Excel 2007 arbeiten
47
11.10.5 Makrosicherheit ändern
Beim Öffnen einer Datei, die ein Makro beinhaltet, kommt es darauf an,
welche Sicherheitsstufe in Excel eingestellt ist:
� Hoch: Die Ausführung von nicht signierten Makros wird abgelehnt.
� Mittel: Es wird Ihnen die Möglichkeit gegeben, die Makros in dieser
Datei einmalig zu aktivieren oder zu deaktivieren.
� Niedrig: Die Ausführung von nicht signierten Makros wird generell
erlaubt.
Zum Ändern der Sicherheitsstufe wählen Sie im Menü Extras das Unter-
menü Makro und darin den Menüpunkt Sicherheit. Es erscheinen die
drei genannten Möglichkeiten. Eine Änderung wird erst beim nächsten
Öffnen einer Excel-Datei wirksam.
1.10.6 Symbolleiste »Visual Basic« einblenden
Nach dem Einblenden der Symbolleiste Visual Basic haben Sie schnelle-
ren Zugriff auf die wichtigsten Befehle im Zusammenhang mit Makros und
der Entwicklung mit Visual Basic.
1.10.7 Visual Basic Editor (VBE) als Entwicklungsumgebung
Zum Aufruf des VBE wählen Sie im Menü Extras das Untermenü Makro
und darin den Menüpunkt Visual Basic-Editor oder die Tastenkombina-
tion (Alt) + (F11).
Das Symbol zum Starten eines Makros aus dem Codefenster heraus ist ein
grüner Pfeil. Alternativ können Sie das Menü Ausführen (Menüpunkt
Sub/UserForm ausführen) oder die Funktionstaste (F5) nutzen.
1.10.8 Persönliche Makroarbeitsmappe verwalten
Die Persönliche Makroarbeitsmappe heißt personal.xls, und ihr Standardspei-
cherort ist seit Windows Vista das (eventuell versteckte, d. h. ausgeblendete)
Verzeichnis C:\Benutzer\[Benutzername]\AppData\Roaming\Microsoft\Excel
\XLStart und unter XP C:\Dokumente und Einstellungen\[Benutzername]
\Anwendungsdaten\Microsoft\Excel\XLStart.
3962.book Seite 47 Dienstag, 24. November 2015 3:53 15
49
2
Kapitel 2
Grundlagen von Objekten und Ereignissen
In diesem Kapitel lernen Sie den Umgang mit den Objekten »Arbeits-
mappe«, »Tabellenblatt« und »Zellbereich« mit ihren jeweiligen Eigen-
schaften, Methoden und Ereignissen kennen.
ObjektVBA ist eine objektorientierte Sprache, d. h., es wird mit Objekten gearbei-
tet. Objekte verfügen über Eigenschaften, Methoden und Ereignisse:
Eigenschaft� Eigenschaften (Attribute) bestimmen das Aussehen eines Objekts. Ein
Tabellenblatt verfügt z. B. über die Eigenschaft Name. Der Wert dieser
Eigenschaft ist die Bezeichnung des Tabellenblattes (z. B. Tabelle1).
Methode� Methoden bestimmen die Fähigkeiten eines Objekts. Ein Tabellenblatt
verfügt z. B. über die Methode Copy(), d. h., es kann kopiert werden.
Ereignis� Ereignisse bestimmen, was mit dem Objekt passiert. Bei einem Tabellen-
blatt kann z. B. als Ereignis eine Aktivierung stattfinden. Ereignisse kön-
nen mit VBA-Code verbunden werden, so dass automatisch weitere
Aktionen folgen können.
In diesem Kapitel werden Ihnen zahlreiche Möglichkeiten von VBA vorge-
stellt, ohne in die Programmierung mit Variablen, Verzweigungen und
Schleifen einsteigen zu müssen. Im folgenden Kapitel werden dann diese
wichtigen Elemente der Programmierung erläutert, die die automatisierte
Bearbeitung von Excel erheblich verbessern.
2.1 Objekthierarchie und Auflistungen
HierarchieWie bereits erwähnt, verfügen Objekte über Eigenschaften. Eine Eigen-
schaft eines Objekts kann wiederum ein Unterobjekt sein, mit eigenen
Eigenschaften, Methoden und Ereignissen. Setzen Sie diese Überlegung
weiter fort, so erhalten Sie eine Hierarchie von Objekten, ausgehend von
einem Hauptobjekt.
3962.book Seite 49 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
50
Application Das Hauptobjekt bei Office-Anwendungen ist Application (engl. für Anwen-
dung). In unserem Fall wird damit das Programm Excel selbst bezeichnet:
Workbooks � Eine Eigenschaft des Objekts Application ist die Auflistung Workbooks.
Darin befinden sich alle geöffneten Arbeitsmappen, also Excel-Dateien.
Worksheets � Eine Eigenschaft einer einzelnen Arbeitsmappe ist die Auflistung Work-
sheets. Darin befinden sich alle Tabellenblätter einer Arbeitsmappe.
Range � Eine Eigenschaft eines einzelnen Tabellenblattes ist das Objekt Range.
Darin befinden sich Zellen und Zellbereiche eines Tabellenblattes.
Auflistung mit »s« In Excel wird häufig mit Auflistungen gearbeitet, wie z. B. Workbooks oder
Worksheets. Es handelt sich dabei um Sammlungen gleichartiger Objekte. Sie
sind leicht an der Mehrzahlschreibweise (mit einem s am Ende) erkennbar.
2.2 Arbeitsmappen bearbeiten
Workbooks Das Objekt Workbooks ist eine Auflistung. In dieser Auflistung befinden sich
alle geöffneten Arbeitsmappen, also Excel-Dateien.
Workbook Das Objekt Workbook (ohne ein s am Ende) steht für eine einzelne Arbeits-
mappe. Zur Bearbeitung einer bestimmten Arbeitsmappe gibt es verschie-
dene Möglichkeiten:
ThisWorkbook � ThisWorkbook: Die Arbeitsmappe mit dem aktuell ausgeführten VBA-
Code. Sie wird im Folgenden auch als diese Arbeitsmappe bezeichnet.
� ActiveWorkbook: Die aktuell aktive Arbeitsmappe. Dies muss nicht diese
Arbeitsmappe sein.
Count � Workbooks(Index): Index ist die laufende Nummer der Arbeitsmappe
innerhalb der Workbooks-Auflistung. Die laufende Nummer einer Auflis-
tung startet immer bei 1 und geht bis zur Nummer des letzten Elements
in der Auflistung. Diese letzte Nummer entspricht der Anzahl der Ele-
mente, die Sie bei allen Auflistungen über die Eigenschaft Count ermit-
teln können.
Workbooks
("Name")
� Workbooks("Name"): Gibt den Namen der Arbeitsmappe als Zeichenkette
an (in Anführungszeichen).
2.2.1 Anzahl der Arbeitsmappen ermitteln
Zählen Mit folgender Prozedur wird die Anzahl der geöffneten Arbeitsmappen
ermittelt:
3962.book Seite 50 Dienstag, 24. November 2015 3:53 15
2.2 Arbeitsmappen bearbeiten
51
2
Sub MappenZaehlen()MsgBox "Anzahl der Mappen: " & Workbooks.Count
End Sub
Listing 2.1 Sub MappenZaehlen() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
Count� Es wird der Wert der Eigenschaft Count des Objekts Workbooks ermittelt
und mithilfe der Funktion MsgBox() ausgegeben (siehe Abbildung 2.1).
Die Überschrift der Nachrichtenbox und die Schaltfläche OK werden ab
dieser Abbildung im Buch nicht mehr dargestellt.
� Zu beachten ist, dass dabei die Persönliche Makroarbeitsmappe mitge-
zählt wird, falls sie vorhanden ist. Im VBE können Sie sehen, ob es diese
Mappe gibt.
Abbildung 2.1 Eigenschaft »Count«
2.2.2 Neue Arbeitsmappe erzeugen
Neue MappeMit folgender Prozedur wird eine neue Mappe erzeugt und geöffnet. Zur
Kontrolle wird die Anzahl der geöffneten Mappen vor und nach dem Erzeu-
gen ausgegeben:
Sub NeueMappe()MsgBox Workbooks.CountWorkbooks.AddMsgBox Workbooks.Count
End Sub
Listing 2.2 Sub NeueMappe() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
Add()� Es wird die Methode Add() des Workbooks-Objekts aufgerufen. Dadurch
wird eine neue, leere Arbeitsmappe in Excel geöffnet. Diese ist dann die
aktive Arbeitsmappe.
� Gleichzeitig wird der Auflistung Workbooks ein weiteres Element hinzu-
gefügt, wie Sie an den beiden Ausgaben der Eigenschaft Count (vorher/
nachher) erkennen können.
3962.book Seite 51 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
52
2.2.3 Vorhandene Arbeitsmappe öffnen
Mappe öffnen Mit folgender Prozedur wird eine vorhandene Mappe geöffnet:
Sub VorhandeneMappe()Workbooks.Open "C:\Temp\Mappe1.xlsm"
End Sub
Listing 2.3 Sub VorhandeneMappe() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
Open() � Es wird die Methode Open() des Workbooks-Objekts aufgerufen. Dadurch
wird die Arbeitsmappe mit dem angegebenen Namen im genannten
Verzeichnis geöffnet. Diese ist dann die aktive Arbeitsmappe.
� Der Auflistung Workbooks wird ein weiteres Element hinzugefügt.
� Im Beispiel wurde eine Datei über eine absolute Pfadangabe angespro-
chen. Sie können auch Dateien mit relativen Pfadangaben und Dateien
im gleichen Verzeichnis erreichen, siehe Abschnitt 2.2.10, »Pfad einer
Arbeitsmappe ermitteln«.
Programmabbruch � Falls die Arbeitsmappe (= Datei) nicht existiert, wird das Programm mit
einer Fehlermeldung abgebrochen (siehe Abbildung 2.2). Es kommt zu
einem sogenannten Laufzeitfehler. In Kapitel 4, »Fehlerbehandlung«,
werden Sie lernen, wie Sie solche Abbrüche vermeiden.
Abbildung 2.2 Programmabbruch durch Laufzeitfehler
Hinweis
In den Versionen vor Excel 2007 muss die Dateibezeichnung in der Proze-
dur wie folgt lauten: Mappe1.xls.
2.2.4 Alle Arbeitsmappen schließen
Mappen schließen Mit folgender Prozedur werden alle geöffneten Arbeitsmappen geschlossen:
3962.book Seite 52 Dienstag, 24. November 2015 3:53 15
2.2 Arbeitsmappen bearbeiten
53
2
Sub AlleMappenSchliessen()Workbooks.Close
End Sub
Listing 2.4 Sub AlleMappenSchliessen() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
Close()� Es wird die Methode Close() des Objekts Workbooks aufgerufen. Sie
schließt alle geöffneten Arbeitsmappen, aber nicht den VBE oder die
Excel-Hilfe.
� Die Anwendung Excel bleibt weiterhin geöffnet.
� Falls ein Benutzer Änderungen in einer Arbeitsmappe vorgenommen
hat, wird er gefragt, ob er sie speichern möchte (siehe Abbildung 2.3).
Abbildung 2.3 Nachfrage im Anschluss an Dateiänderung
2.2.5 Name einer Arbeitsmappe ermitteln
Name der MappeMit folgender Prozedur wird der Name einer Arbeitsmappe auf zwei Arten
ermittelt:
Sub MappenName()MsgBox "Name: " & ThisWorkbook.NameMsgBox "Name mit Pfad: " & ThisWorkbook.FullName
End Sub
Listing 2.5 Sub MappenName() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
� ThisWorkbook verweist immer auf die Arbeitsmappe, in der diese Proze-
dur steht.
Eigenschaft
»Name«
Es wird der Wert der Eigenschaft Name ermittelt und ausgegeben. Dies ist
der Dateiname der Arbeitsmappe (siehe Abbildung 2.4).
3962.book Seite 53 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
54
Abbildung 2.4 Eigenschaft »Name«
FullName Zusätzlich wird der Wert der Eigenschaft FullName ermittelt und ausge-
geben. Dies ist der Dateiname der Arbeitsmappe inklusive vollständiger
Pfadangabe (siehe Abbildung 2.5).
Abbildung 2.5 Eigenschaft »FullName«
2.2.6 Aktive Arbeitsmappe ermitteln
Aktive Mappe Mit folgender Prozedur wird in zwei verschiedenen Situationen der Name
der aktiven Arbeitsmappe ermittelt:
Sub AktiveMappe()Workbooks.Open "C:\Temp\Mappe1.xlsm"MsgBox "Aktiv nach dem Öffnen: " & ActiveWorkbook.NameActiveWorkbook.CloseMsgBox "Aktiv nach dem Schließen: " & ActiveWorkbook.Name
End Sub
Listing 2.6 Sub AktiveMappe() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
� Zunächst wird eine weitere Arbeitsmappe geöffnet. Es wird in diesem
Beispiel davon ausgegangen, dass die angegebene Datei existiert.
ActiveWorkbook � ActiveWorkbook verweist immer auf die aktuell aktive Arbeitsmappe.
Eine Arbeitsmappe ist immer dann aktiv, wenn der Benutzer sie ausge-
wählt oder der Entwickler sie per Programm aktiviert hat. Eine Arbeits-
mappe, die soeben geöffnet wurde, ist automatisch aktiv.
� Zur Kontrolle wird der Name der aktiven Arbeitsmappe ausgegeben
(siehe Abbildung 2.6).
Abbildung 2.6 Aktive Arbeitsmappe nach dem Öffnen
3962.book Seite 54 Dienstag, 24. November 2015 3:53 15
2.2 Arbeitsmappen bearbeiten
55
2
Close()� Es wird die Methode Close() des Objekts Workbook aufgerufen. Dadurch
wird eine einzelne Arbeitsmappe, in diesem Fall die aktive Arbeits-
mappe, geschlossen. Danach ist wieder die Arbeitsmappe aktiv, die vor
dem Öffnen der gerade geschlossenen Arbeitsmappe aktiv war.
� Falls Sie eine bestimmte Arbeitsmappe schließen möchten, die Sie über
ihren Namen ansprechen, lautet die Anweisung für das vorliegende Bei-
spiel Workbooks("Mappe1.xlsm").Close. Dabei wird kein Pfadname ange-
geben, siehe auch Abschnitt 2.2.9, »Arbeitsmappe über Index oder
Namen auswählen«.
� Zur Kontrolle wird wiederum der Name der nun aktiven Arbeitsmappe
ausgegeben (siehe Abbildung 2.7).
Abbildung 2.7 Wieder aktive Arbeitsmappe nach dem Schließen
Hinweis
In den Versionen vor Excel 2007 muss die Dateibezeichnung in der Proze-
dur wie folgt lauten: Mappe3.xls.
2.2.7 Arbeitsmappe aktivieren
Mappe aktivierenMit folgender Prozedur wird eine bereits geöffnete Arbeitsmappe aktiviert.
Dies ist dann sinnvoll, wenn mehrere Arbeitsmappen geöffnet sind und Sie
sichergehen möchten, anschließend in einer bestimmten Arbeitsmappe
weiterzuarbeiten.
Sub MappeAktivieren()ThisWorkbook.ActivateMsgBox ActiveWorkbook.Name
End Sub
Listing 2.7 Sub MappeAktivieren() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
Activate()� Es wird die Methode Activate() des Objekts Workbook aufgerufen.
Dadurch wird die angesprochene Arbeitsmappe, in diesem Fall diese
Arbeitsmappe, aktiviert.
� Zur Kontrolle wird der Name der aktiven Arbeitsmappe ausgegeben.
3962.book Seite 55 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
56
2.2.8 Arbeitsmappe speichern
Mappe speichern Mit folgender Prozedur wird diese Arbeitsmappe auf zwei verschiedene
Arten gespeichert:
Sub MappeSichern()ThisWorkbook.SaveThisWorkbook.SaveAs "C:\Temp\Mappe2.xlsm"MsgBox "Gesichert: " & ThisWorkbook.Saved
End Sub
Listing 2.8 Sub MappeSichern() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
Save() � Es wird die Methode Save() des Objekts Workbook aufgerufen. Dadurch
wird diese Arbeitsmappe gespeichert.
SaveAs() � Zusätzlich wird die Methode SaveAs() des Objekts Workbook aufgerufen.
Dadurch wird diese Arbeitsmappe noch einmal gespeichert, und zwar im
Verzeichnis C:\Temp unter dem Namen Mappe2.xlsm. Anschließend
arbeiten Sie innerhalb der soeben angelegten Kopie der Mappe (!).
Saved � Zur Kontrolle wird der Wert der Eigenschaft Saved ermittelt und ausge-
geben. Dabei handelt es sich um einen sogenannten Wahrheitswert, also
False (falsch) oder True (wahr). Da die Arbeitsmappe soeben gespei-
chert wurde, ist der Wert aktuell True (siehe Abbildung 2.8). Nach einer
Änderung in der Arbeitsmappe hätte die Eigenschaft den Wert False.
Abbildung 2.8 Eigenschaft »Saved«
Hinweis
Sie können den Wert der Eigenschaft Saved in einer Verzweigung (siehe
Abschnitt 3.4, »Verzweigungen«) nutzen. Je nach Wert der Eigenschaft
(wahr oder falsch) kann bzw. sollte gespeichert werden.
Hinweis
In den Versionen vor Excel 2007 muss die Dateibezeichnung in der Proze-
dur und in der Erläuterung wie folgt lauten: Mappe2.xls.
3962.book Seite 56 Dienstag, 24. November 2015 3:53 15
2.2 Arbeitsmappen bearbeiten
57
2
2.2.9 Arbeitsmappe über Index oder Namen auswählen
Mappe auswählenMit folgender Prozedur werden bereits geöffnete Arbeitsmappen nachein-
ander mit zwei verschiedenen Techniken aktiviert:
Sub MappeAusListe()Workbooks(1).ActivateMsgBox ActiveWorkbook.NameWorkbooks("Mappe2.xlsm").ActivateMsgBox ActiveWorkbook.Name
End Sub
Listing 2.9 Sub MappeAusListe() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
Workbooks
(Index)
� Zunächst wird eine geöffnete Arbeitsmappe über den Index ausgewählt.
Der Index ist die laufende Nummer der Arbeitsmappe innerhalb der
Workbooks-Auflistung, von 1 bis zur Nummer des letzten Elements, die
der Anzahl der Elemente der Auflistung entspricht (Eigenschaft Count).
� Falls zwei Arbeitsmappen geöffnet sind, können nur die Indizes 1 oder 2
benutzt werden. Wenn Sie einen anderen Index wählen, erfolgt ein
Abbruch mit einer Fehlermeldung. Wie erwähnt, werden Sie in Kapitel 4,
»Fehlerbehandlung«, lernen, wie Sie solche Abbrüche vermeiden.
� Es ist nicht immer einfach, festzustellen, welches gerade die Arbeits-
mappe Nummer 1, 2 usw. ist. Daher ist die nachfolgend geschilderte
Methode vorzuziehen.
Workbooks
("Name")
� Eine bereits geöffnete Arbeitsmappe wird über ihren Namen (in Anfüh-
rungszeichen) ausgewählt. Dabei handelt es sich um den reinen Datei-
namen, ohne Pfad. Da Sie in Excel nicht gleichzeitig zwei Dateien mit
dem gleichen Namen öffnen können, auch wenn sie in unterschied-
lichen Verzeichnissen stehen, ist der Name eindeutig.
Hinweis
In den Versionen vor Excel 2007 muss die Dateibezeichnung in der Proze-
dur wie folgt lauten: Mappe2.xls.
2.2.10 Pfad einer Arbeitsmappe ermitteln
Pfad der MappeHäufig ist der Zugriff auf Arbeitsmappen im gleichen Verzeichnis oder
einem Unterverzeichnis erforderlich. Dazu muss zunächst der Pfad dieser
3962.book Seite 57 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
58
Arbeitsmappe (die den VBA-Code enthält) oder der Pfad der aktuellen
Arbeitsmappe ermittelt werden. Ein Beispiel, in dem der Pfad von drei ver-
schiedenen Arbeitsmappen ermittelt wird:
Sub PfadErmitteln()Workbooks.Open "C:\Temp\Mappe1.xlsm"MsgBox "Mappe1 ist in: " & ActiveWorkbook.PathActiveWorkbook.Close
MsgBox "Diese Mappe ist in: " & ThisWorkbook.Path
Workbooks.Open ThisWorkbook.Path & "\Mappe1.xlsm"ActiveWorkbook.Close
Workbooks.Open ThisWorkbook.Path & "\Zusatz\Test.xlsx"MsgBox "Test ist in: " & ActiveWorkbook.PathActiveWorkbook.Close
End Sub
Listing 2.10 Sub PfadErmitteln() in Mappe2.xlsm, Modul 1
Zur Erläuterung:
� Zunächst wird die Arbeitsmappe C:\Temp\Mappe1.xlsm geöffnet. Dies
ist jetzt die aktive Arbeitsmappe. Ihr Name wird ausgegeben, außerdem
der Pfad zu ihrem Verzeichnis, mithilfe der Eigenschaft Path (siehe
Abbildung 2.9). Dann wird sie wieder geschlossen.
Abbildung 2.9 Pfad der Mappe »Mappe1«
Path Anschließend wird der Pfad zu dieser Arbeitsmappe ausgegeben, in der
sich die oben angegebene Prozedur PfadErmitteln() befindet (siehe
Abbildung 2.10).
Abbildung 2.10 Pfad »dieser« Mappe
� Es wird erneut die Arbeitsmappe Mappe1.xlsm geöffnet. Diese steht im
gleichen Verzeichnis wie diese Arbeitsmappe, in der sich die oben ange-
3962.book Seite 58 Dienstag, 24. November 2015 3:53 15
2.3 Tabellenblätter bearbeiten
59
2
gebene Prozedur PfadErmitteln() befindet. Diese Methode wird häufig
benötigt, um sicher zu sein, dass eine Datei geöffnet wird, die im glei-
chen Verzeichnis steht. Die Arbeitsmappe Mappe1.xlsm wird wieder
geschlossen.
� Zuletzt wird die Arbeitsmappe Test.xlsx geöffnet. Diese steht im Unter-
verzeichnis Zusatz des Verzeichnisses dieser Arbeitsmappe (siehe Abbil-
dung 2.11). Ihr Name und ihr Pfad werden ausgegeben und dann wird sie
wieder geschlossen.
Abbildung 2.11 Pfad der Mappe »Test«
Hinweis
In den Versionen vor Excel 2007 müssen die Dateibezeichnungen in den
entsprechenden Zeilen der Prozedur und in der Erläuterung wie folgt lau-
ten: Mappe1.xls, erneut Mappe1.xls und Test.xls.
2.3 Tabellenblätter bearbeiten
WorksheetsDas Objekt Worksheets ist eine Auflistung, in der sich alle Tabellenblätter
der jeweiligen Arbeitsmappe befinden.
Zur Bearbeitung eines einzelnen Tabellenblattes gibt es verschiedene Mög-
lichkeiten:
� ActiveSheet: das aktuell aktive Arbeitsblatt
� Worksheets(Index): Index ist die laufende Nummer des Tabellenblattes
innerhalb der Worksheets-Auflistung, von 1 bis zur Nummer des letzten
Elements, die der Anzahl der Elemente entspricht (Count).
Worksheets
("Name")
� Worksheets("Name"): der Name des Tabellenblattes als Zeichenkette (in
Anführungszeichen)
Hinweis
In den folgenden Beispielen für den Einsatz von Worksheets wird jeweils
vorher diese Arbeitsmappe aktiviert. Dies dient der eindeutigen Zuordnung
für den Fall, dass mehrere Arbeitsmappen geöffnet sind.
3962.book Seite 59 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
60
2.3.1 Tabellenblatt erzeugen
Neues Blatt Mit folgender Prozedur wird in dieser Arbeitsmappe ein neues Tabellen-
blatt erzeugt:
Sub NeuesBlatt()ThisWorkbook.ActivateMsgBox Worksheets.CountWorksheets.AddActiveSheet.Name = "Neu"MsgBox Worksheets.Count
End Sub
Listing 2.11 Sub NeuesBlatt() in Mappe2.xlsm, Modul 2
Zur Erläuterung:
� Zunächst wird zur Kontrolle die Anzahl der Tabellenblätter dieser
Arbeitsmappe (der Wert der Eigenschaft Count des Objekts Worksheets)
ermittelt und ausgegeben.
Add() � Es wird die Methode Add() des Objekts Worksheets aufgerufen. Dadurch
wird ein neues Tabellenblatt erzeugt (siehe Abbildung 2.12). Das neue
Tabellenblatt wird dann automatisch zum aktiven Tabellenblatt.
� Durch die Angabe von Parametern können Sie genau bestimmen, an
welcher Stelle das neue Tabellenblatt eingefügt werden soll, siehe
Abschnitt 2.3.2, »Tabellenblatt kopieren«.
ActiveSheet � ActiveSheet bezeichnet das aktuell aktive Tabellenblatt. Der Name eines
Tabellenblattes kann ermittelt bzw. geändert werden.
� Es wird wiederum zur Kontrolle die Anzahl der Tabellenblätter ausgege-
ben. Sie hat sich erwartungsgemäß um 1 erhöht.
Abbildung 2.12 Neu erzeugtes Tabellenblatt
2.3.2 Tabellenblatt kopieren
Blatt kopieren Mit folgender Prozedur wird ein Tabellenblatt dieser Arbeitsmappe
kopiert:
3962.book Seite 60 Dienstag, 24. November 2015 3:53 15
2.3 Tabellenblätter bearbeiten
61
2
Sub BlattKopieren()ThisWorkbook.ActivateWorksheets("Tabelle1").Copy After:=Worksheets("Tabelle1")ActiveSheet.Name = "Tab1Kopie"
End Sub
Listing 2.12 Sub BlattKopieren() in Mappe2.xlsm, Modul 2
Zur Erläuterung:
Copy()� Es wird die Methode Copy() des Objekts Worksheets aufgerufen. Dadurch
wird ein Tabellenblatt kopiert. Es wird hinter einem Tabellenblatt in der
gleichen Arbeitsmappe eingefügt, und es wird zum aktiven Tabellen-
blatt (siehe Abbildung 2.13). Beide Tabellenblätter werden über ihren
Namen angesprochen.
Abbildung 2.13 Kopiertes Tabellenblatt
After, BeforeBei After handelt es sich um einen benannten Parameter. Solche Para-
meter können mithilfe des Operators := (Doppelpunkt und Gleichheits-
zeichen) angegeben werden. Statt After ist auch Before möglich. Dann
wird das Tabellenblatt vor einem anderen Tabellenblatt in der gleichen
Arbeitsmappe eingefügt.
� Wird gar kein Parameter angegeben, dann wird eine neue Arbeitsmappe
erzeugt, die die Kopie enthält.
� Zum Abschluss wird noch der Name des Tabellenblattes geändert.
Hinweis
Falls eine Methode mehrere Parameter hat, werden häufig benannte Para-
meter verwendet, siehe Abschnitt 5.3.5, »Benannte Parameter«. Diese Vor-
gehensweise bietet folgende Vorteile:
� Der Parameter kann eindeutig angesprochen werden.
� Nicht alle Parameter, die möglich sind, müssen genannt werden.
� Das Programm wird lesbarer.
3962.book Seite 61 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
62
2.3.3 Tabellenblatt verschieben
Blatt verschieben Mit folgender Prozedur wird ein Tabellenblatt dieser Arbeitsmappe ver-
schoben. Die zugehörige Methode Move() arbeitet sehr ähnlich wie die
Methode Copy():
Sub BlattVerschieben()ThisWorkbook.ActivateWorksheets("Tab1Kopie").Move Before:=Worksheets("Tabelle1")
End Sub
Listing 2.13 Sub BlattVerschieben() in Mappe2.xlsm, Modul 2
Zur Erläuterung:
Move() � Es wird die Methode Move() des Objekts Worksheets zum Verschieben
eines Tabellenblattes aufgerufen. Es wird hinter einem Tabellenblatt in
der gleichen Arbeitsmappe eingefügt, und es wird zum aktiven Tabellen-
blatt (siehe Abbildung 2.14).
Abbildung 2.14 Verschobenes Tabellenblatt
After, Before Statt mit Before hätten wir auch mit After oder ganz ohne Parameter
arbeiten können, wie bei Copy().
2.3.4 Tabellenblatt löschen
Blatt löschen Mit folgender Prozedur werden zwei Tabellenblätter dieser Arbeitsmappe
gelöscht:
Sub BlattLoeschen()ThisWorkbook.ActivateWorksheets("Neu").DeleteWorksheets("Tab1Kopie").Delete
End Sub
Listing 2.14 Sub BlattLoeschen() in Mappe2.xlsm, Modul 2
3962.book Seite 62 Dienstag, 24. November 2015 3:53 15
2.3 Tabellenblätter bearbeiten
63
2
Zur Erläuterung:
Delete()� Es wird die Methode Delete() des Objekts Worksheets zum Löschen eines
Tabellenblattes aufgerufen. Seit Excel 2016 erscheint dabei vor dem
Löschen keine Warnung mehr. Es könnten also versehentlich Daten
gelöscht werden!
� Beide Tabellenblätter werden über ihren Namen angesprochen.
2.3.5 Tabellenblatt aktivieren
Blatt aktivierenMit folgender Prozedur werden nacheinander zwei Tabellenblätter dieser
Arbeitsmappe aktiviert:
Sub BlattAktivieren()ThisWorkbook.ActivateWorksheets("Tabelle3").ActivateMsgBox ActiveSheet.NameWorksheets("Tabelle1").ActivateMsgBox ActiveSheet.Name
End Sub
Listing 2.15 Sub BlattAktivieren() in Mappe2.xlsm, Modul 2
Zur Erläuterung:
Activate()� Es wird die Methode Activate() des Objekts Worksheets zum Aktivieren
eines Tabellenblattes aufgerufen. Dies ist dann sinnvoll, wenn Sie
sicherstellen möchten, anschließend in einem bestimmten Tabellen-
blatt weiterzuarbeiten. Aktionen in Zellen oder Bereichen beziehen sich
anschließend auf dieses Tabellenblatt.
� Zur Kontrolle wird in der Prozedur der Name des jeweils aktiven Tabel-
lenblattes ausgegeben.
Stellen Sie vor Ausführung der Prozedur sicher, dass die genannten Tabel-
lenblätter in der Mappe existieren.
2.3.6 Tabellenblatt formatieren
CellsDie Eigenschaft Cells eines Tabellenblattes bietet die Möglichkeit, alle Zel-
len eines Tabellenblattes zu formatieren. Es können natürlich auch nur ein-
zelne Zellen oder nur Zellbereiche formatiert werden – dazu mehr ab
Abschnitt 2.4.7, »Zahlenformate anwenden«.
3962.book Seite 63 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
64
Alle Zellen Nachfolgend werden alle Zellen des Tabellenblattes Tabelle3 mit der Schrift-
art Arial und der Schriftgröße 10 formatiert.
Sub BlattFormatieren()ThisWorkbook.ActivateWorksheets("Tabelle3").Cells.Font.Name = "Arial"Worksheets("Tabelle3").Cells.Font.Size = 10
End Sub
Listing 2.16 Sub BlattFormatieren() in Mappe2.xlsm, Modul 2
Zur Erläuterung:
� Die Eigenschaft Cells bietet Zugriff auf alle Zellen eines Tabellenblattes.
Font � Die Eigenschaft Font einer Zelle bestimmt die Schriftarteigenschaften.
� Die Untereigenschaften Name und Size dienen der Festlegung des
Namens der Schriftart und der Größe der Schrift. Weitere Formatie-
rungsmöglichkeiten erläutert Abschnitt 2.4.9, »Schrifteigenschaften
bestimmen«.
� An dieser Stelle lässt sich wiederum gut die Objekthierarchie erkennen.
Es wird die Untereigenschaft Name der Untereigenschaft Font der Eigen-
schaft Cells des Tabellenblattes geändert.
2.3.7 Gitternetz, Zeilen- und Spaltenüberschriften
Anzeigefenster
gestalten
Sowohl die feinen Gitternetzlinien der einzelnen Zellen als auch Zeilen-
und Spaltenüberschriften können ein- oder ausgeblendet werden. Dies
sind eigentlich Eigenschaften des Anzeigefensters und nicht des Tabellen-
blattes. Sie sollen dennoch an dieser Stelle aufgeführt werden, da sie the-
matisch hierhergehören.
Eine Prozedur zum Ausblenden der genannten Objekte:
Sub BlattGitternetz()ThisWorkbook.ActivateWorksheets("Tabelle3").ActivateActiveWindow.DisplayGridlines = TrueActiveWindow.DisplayHeadings = True
End Sub
Listing 2.17 Sub BlattGitternetz() in Mappe2.xlsm, Modul 2
3962.book Seite 64 Dienstag, 24. November 2015 3:53 15
2.3 Tabellenblätter bearbeiten
65
2
Zur Erläuterung:
� Zunächst wird das gewünschte Tabellenblatt aktiviert.
ActiveWindow� Das aktive Fenster (ActiveWindow) enthält nunmehr dieses Tabellenblatt.
DisplayGridlines� Die Eigenschaft DisplayGridlines bestimmt den Zustand der Gitternetz-
linien (ein/aus).
DisplayHeadings� Die Eigenschaft DisplayHeadings bestimmt den Zustand der Zeilen- und
Spaltenüberschriften (ein/aus). In Abbildung 2.15 sehen Sie ein Tabellen-
blatt ohne Gitternetz und Überschriften.
Abbildung 2.15 Tabellenblatt ohne Gitternetz und Überschriften
Falls Sie die ausgeblendeten Elemente wieder einblenden wollen, müssen
Sie in die Prozedur jeweils True statt False eintragen.
2.3.8 Seite einrichten
PageSetupVorbereitungen für einen Ausdruck treffen Sie in der Seiteneinrichtung.
Die Seiteneinrichtung für ein vorhandenes Tabellenblatt werden Sie vom
Tabellenblatt aus ausführen. Für ein neues Tabellenblatt, das erst über eine
VBA-Anwendung mit Daten gefüllt werden wird, können Sie dazu die
Eigenschaft PageSetup nutzen. In der folgenden Prozedur wird aus den zahl-
reichen Möglichkeiten eine kleine Auswahl getroffen.
Hinweis
Zeichen »_«
(Unterstrich)
Einige Anweisungen dieser Prozedur, aber auch noch vieler weiterer Proze-
duren, sind sehr lang. Zeilen lassen sich mithilfe des Zeichens _ (Unter-
strich) in mehrere übersichtliche Programmzeilen zerlegen, siehe Ab-
schnitt 3.1.2, »Zeilen zerlegen«.
3962.book Seite 65 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
66
Sub BlattSeiteneinrichtung()ThisWorkbook.Activate
' DruckformatWorksheets("Tabelle3").PageSetup.Orientation = xlLandscape
' Gitternetz, Zeilen- und SpaltenüberschriftenWorksheets("Tabelle3").PageSetup.PrintGridlines = TrueWorksheets("Tabelle3").PageSetup.PrintHeadings = True
' GrößenänderungWorksheets("Tabelle3").PageSetup.Zoom = FalseWorksheets("Tabelle3").PageSetup.FitToPagesWide = 1Worksheets("Tabelle3").PageSetup.FitToPagesTall = 99
' Horizontale ZentrierungWorksheets("Tabelle3").PageSetup.CenterHorizontally = True
' Kopf- und FußzeileWorksheets("Tabelle3").PageSetup.LeftHeader = _
"Das ist die Kopfzeile"Worksheets("Tabelle3").PageSetup.CenterFooter = _
"Seite &P von &N"End Sub
Listing 2.18 Sub BlattSeiteneinrichtung() in Mappe2.xlsm, Modul 2
Zur Erläuterung:
Orientation � Die Eigenschaft Orientation bestimmt das Druckformat. Es gibt die Mög-
lichkeiten xlLandscape (Querformat) und xlPortrait (Hochformat).
Druckeigenschaften � Ähnlich wie beim Einrichten des Anzeigefensters wird mit den Eigen-
schaften PrintGridlines und PrintHeadings festgelegt, ob die Gitternetz-
linien und die Zeilen- und Spaltenüberschriften ausgedruckt werden
sollen oder nicht (True oder False).
Zoom � Mit der Eigenschaft Zoom bestimmen Sie den Prozentsatz der Vergröße-
rung oder Verkleinerung des Tabellenblattes für den Ausdruck. Falls
dabei eine Zahl über 100 angegeben wird, wird das Tabellenblatt vergrö-
ßert gedruckt. Bei einer Zahl kleiner als 100 wird es verkleinert gedruckt.
Der Wert False dient als Vorbereitung für eine Skalierung, die abhängig
von der Seitenzahl ist.
3962.book Seite 66 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
67
2
FitToPages…� Falls die Skalierung abhängig von der Seitenzahl ist, wird mit den Eigen-
schaften FitToPagesWide und FitToPagesTall jeweils eine Seitenanzahl
festgelegt. Damit wird angegeben, auf wie vielen Seiten das Tabellen-
blatt in der Breite (Wide) und in der Höhe (Tall) ausgedruckt wird.
Center…� Das Arbeitsblatt kann für den Ausdruck horizontal zentriert (CenterHo-
rizontally = True), aber auch vertikal zentriert (CenterVertically = True)
werden.
Header, Footer� Den Text und die Anordnung von Kopf- und Fußzeile bestimmen die
Eigenschaften …Header und …Footer. Es gibt jeweils die Präfixe Left…,
Right… und Center… für die verschiedenen Bereiche. Im vorliegenden Bei-
spiel wurden eine Kopfzeile links und eine Fußzeile zentriert angeord-
net. Innerhalb des Textes, der als Zeichenkette zugewiesen wird, können
bestimmte Variablen eingesetzt werden. Dabei gibt es u. a. die folgenden
Möglichkeiten:
– Seitennummer: &P
– Seitenanzahl: &N
– Druckdatum: &D
– Druckuhrzeit: &T
– Pfad zum Verzeichnis der Datei: &Z
– Dateiname: &F
– Tabellenblattname: &A
2.4 Auf Zellen und Zellbereiche zugreifen
Range, CellsMithilfe von Range bzw. Cells haben Sie zahlreiche Möglichkeiten, auf ein-
zelne Zellen oder ganze Zellbereiche eines Tabellenblattes zuzugreifen.
Range wurde bereits in Abschnitt 1.3, »Mit Makros arbeiten«, in den Beispie-
len zur Makroprogrammierung vorgestellt. Die aktuell aktive Zelle zur
Bearbeitung wird mit ActiveCell bezeichnet.
Hinweis
In den folgenden Beispielen für den Einsatz von Range und Cells wird
jeweils ein bestimmtes Tabellenblatt in dieser Arbeitsmappe aktiviert. Dies
dient der eindeutigen Zuordnung für den Fall, dass vorher eine andere
Arbeitsmappe oder ein anderes Tabellenblatt aktiviert ist.
3962.book Seite 67 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
68
2.4.1 Zellen über das Range-Objekt auswählen
Zellbereich Mithilfe des Objekts Range können sowohl zusammenhängende als auch
nicht zusammenhängende Zellbereiche ausgewählt werden. Dabei werden
ein Buchstabe für die Spalte und eine Nummer für die Zeile angegeben.
Einige Möglichkeiten sehen Sie in Tabelle 2.1.
Ganze Zeile
oder Spalte
Bei den Zellbereichen kann es sich aber auch um ganze Spalten oder Zeilen
handeln, wie Tabelle 2.2 zeigt.
Beachten Sie, dass auch die beiden letzten Ausdrücke mit Range jeweils in
eine Zeile gehören.
Range Beschreibung
Range("A3").Select einzelne Zelle
Range("A3:F7").Select zusammenhängender Zellbereich
Range("A3, C5, E2").Select mehrere nicht zusammenhängende
Zellen
Range("A8, B2:C4, E2").Select mehrere nicht zusammenhängende
Zellen bzw. Zellbereiche
Tabelle 2.1 Range-Zellbereiche
Range Beschreibung
Range("A:A").Select ganze Spalte
Range("C:E").Select mehrere zusammenhängende Spal-
ten
Range("B:D, F:F, H:I").Select mehrere nicht zusammenhängende
Spalten
Range("3:3").Select ganze Zeile
Range("3:5").Select mehrere zusammenhängende Zeilen
Range("3:5, 8:9, 12:12").Select mehrere nicht zusammenhängende
Zeilen
Range("A2:B4, 7:8, D:E, G2:H4").Select
eine Mischung aus mehreren Mög-
lichkeiten, siehe Abbildung 2.16
Tabelle 2.2 Range, ganze Spalten, ganze Zeilen
3962.book Seite 68 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
69
2
Nicht zusammen-
hängender Bereich
Im letzten Beispiel (siehe Abbildung 2.16) wurden insgesamt vier nicht
zusammenhängende Bereiche ausgewählt: zwei rechteckige Bereiche (A2:
B4 und G2:H4), zwei ganze Spalten (D und E) und zwei ganze Zeilen (7 und 8).
Die aktive Zelle (erkennbar am Rahmen) ist die erste ausgewählte Zelle (A2).
Abbildung 2.16 Range("A2:B4, 7:8, D:E, G2:H4").Select
Mit folgender Prozedur werden Zellbereiche eines ausgewählten Tabellen-
blattes selektiert. Anschließend wird jeweils die Adresse der aktiven Zelle
ausgegeben:
Sub ZellenMitRange()ThisWorkbook.Worksheets("Tabelle1").ActivateRange("A2").SelectMsgBox ActiveCell.AddressRange("C4:G7").SelectMsgBox ActiveCell.AddressRange("A5, C3:G7").SelectMsgBox ActiveCell.AddressRange("C3:G7, A5").SelectMsgBox ActiveCell.AddressRange("C:D").SelectMsgBox ActiveCell.Address
End Sub
Listing 2.19 Sub ZellenMitRange() in Mappe2.xlsm, Modul 3
Zur Erläuterung:
� Das Tabellenblatt Tabelle1 dieser Arbeitsmappe wird aktiviert. Aktionen
in Zellen oder Bereichen beziehen sich anschließend auf dieses Tabel-
lenblatt.
3962.book Seite 69 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
70
Select() � Es wird die Methode Select() des Objekts Range zum Auswählen von Zel-
len aufgerufen.
ActiveCell � Eine der ausgewählten Zellen ist die aktive Zelle. Diese kann mit Active-
Cell angesprochen werden. Falls mehrere Zellen ausgewählt wurden, ist
die obere linke Zelle des ersten angegebenen Bereichs aktiv.
Address � Allgemein ist Address die Adresse eines Zellbereichs. Hier geht es nur um
die Adresse der aktiven Zelle.
Reihenfolge � Nacheinander werden in diesem Beispiel ausgegeben: $A$2, $C$4, $A$5,
$C$3 und $C$1. Beachten Sie, dass im dritten und vierten Schritt die glei-
chen Zellen ausgewählt sind, sich aber die aktive Zelle aufgrund der Rei-
henfolge unterscheidet.
2.4.2 Zellen über das Cells-Objekt auswählen
Eine Zelle Das Objekt Cells bietet nicht nur die Möglichkeit, alle Zellen eines Tabel-
lenblattes zu erreichen, sondern auch einzelne Zellen oder Zellbereiche
auszuwählen. Dabei werden eine Nummer für die Zeile und eine Nummer
für die Spalte angegeben. Das Arbeiten mit dem Objekt Cells bietet gegen-
über dem Arbeiten mit dem Objekt Range Vorteile bei der Programmie-
rung. Sowohl die Zeilennummer als auch die Spaltennummer können
dann mithilfe von Variablen gebildet werden.
Mit folgender Prozedur werden Zellbereiche eines ausgewählten Tabellen-
blattes mit einem Wert versehen (siehe Abbildung 2.17):
Sub ZellenMitCells()ThisWorkbook.Worksheets("Tabelle1").ActivateCells(1, 5).Value = "abc"Range(Cells(3, 5), Cells(4, 7)).Value = "xyz"
End Sub
Listing 2.20 Sub ZellenMitCells() in Mappe2.xlsm, Modul 3
Abbildung 2.17 Mit dem Befehl »Cells« arbeiten
3962.book Seite 70 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
71
2
Zur Erläuterung:
� Die Zelle 1, 5 erhält mithilfe der Eigenschaft Value den Wert abc. Sie steht
in der Zeile 1 und der Spalte 5, ist also die Zelle E1.
Range mit Cells� In Verbindung mit dem Objekt Range können aber auch Zellbereiche aus-
gewählt werden. Hier ist dies der Bereich von Zelle 3, 5 (= E3) bis Zelle
4, 7 (= G4).
2.4.3 Zellinhalte verschieben oder kopieren
Mit folgender Prozedur werden in einem ausgewählten Tabellenblatt:
� die Inhalte eines Zellbereichs verschoben
� die Inhalte eines anderen Zellbereichs kopiert
Besserer CodeBeides haben Sie bereits in Abschnitt 2.4.1, »Zellen über das Range-Objekt
auswählen«, mit Makros durchgeführt. Die hier vorgestellten Methoden
umfassen weniger Codezeilen, sind besser zu warten und schneller im
Ablauf:
Sub ZellinhalteVerschiebenKopieren()ThisWorkbook.Worksheets("Tabelle1").ActivateRange("A1:A2").Cut Destination:=Range("C1")Range("A5:A6").Copy Destination:=Range("C5")
End Sub
Listing 2.21 Sub ZellinhalteVerschiebenKopieren() in Mappe2.xlsm, Modul 3
Zur Erläuterung:
Cut()� Es wird die Methode Cut() des Objekts Range zum Ausschneiden von Zel-
len aufgerufen:
Destination– Falls ein Ziel mit dem optionalen Parameter Destination angegeben
ist, werden die Zellen dorthin verschoben.
– Falls kein Ziel angegeben ist, werden die Zellen in die Zwischenablage
verschoben und können an anderer Stelle wieder eingefügt werden.
Copy()� Es wird die Methode Copy() des Objekts Range zum Kopieren von Zellen
aufgerufen. Wie bei der Methode Cut() kann ein Ziel angegeben werden.
Ansonsten liegt die Kopie in der Zwischenablage und kann an anderer
Stelle wieder eingefügt werden.
Den Tabelleninhalt vor Ablauf der Prozedur sehen Sie in Abbildung 2.18.
3962.book Seite 71 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
72
Abbildung 2.18 Originalinhalte
Den Tabelleninhalt nach Ablauf der Prozedur sehen Sie in Abbildung 2.19.
Abbildung 2.19 Inhalte nach dem Verschieben und Kopieren
2.4.4 Teile von Zellinhalten kopieren
Zwischenablage In Abschnitt 2.4.3, »Zellinhalte verschieben oder kopieren«, wurde bereits
darauf hingewiesen, dass Zellinhalte auch in die Zwischenablage kopiert
werden können. Dies ist von Vorteil, falls Sie nur ausgewählte Teile des Zell-
inhalts kopieren möchten, z. B. nur die Werte oder nur die Formate. Dies
zeigt das folgende Beispiel:
Sub TeileKopieren()ThisWorkbook.Worksheets("Tabelle1").ActivateRange("A1:A2").CopyRange("C1").PasteSpecial xlPasteValuesRange("A5:A6").CopyRange("C5").PasteSpecial xlPasteFormats
End Sub
Listing 2.22 Sub TeileKopieren() in Mappe2.xlsm, Modul 3
Zur Erläuterung:
� Es wird zweimal die Methode Copy() zum Kopieren eines Bereichs in die
Zwischenablage aufgerufen.
3962.book Seite 72 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
73
2
PasteSpecial()� In beiden Fällen wird die Methode PasteSpecial() zum Einfügen speziel-
ler Teile von Zellinhalten aufgerufen. Beim ersten Mal werden nur die
Werte eingefügt, beim zweiten Mal nur die Formate.
Den Tabelleninhalt vor Ablauf der Prozedur sehen Sie in Abbildung 2.20.
Abbildung 2.20 Originalinhalte und -formate
Den Tabelleninhalt nach Ablauf der Prozedur sehen Sie in Abbildung 2.21.
Abbildung 2.21 Inhalte nach dem Kopieren von Werten bzw. Formaten
2.4.5 Zellinhalt löschen
LöschenMit folgender Prozedur werden bestimmte Zellinhalte gelöscht:
Sub ZellinhaltLoeschen()ThisWorkbook.Worksheets("Tabelle1").ActivateRange("A1:A2").ClearRange("A3:A4").ClearContentsRange("A5:A6").ClearFormats
End Sub
Listing 2.23 Sub ZellinhaltLoeschen() in Mappe2.xlsm, Modul 3
Zur Erläuterung:
Clear()� Die Methode Clear() des Objekts Range dient dem Löschen von Zell-
inhalten, inklusive Formatierung und Kommentaren.
3962.book Seite 73 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
74
ClearContents() � Mithilfe der Methode ClearContents() werden nur die Inhalte gelöscht.
Formate und Kommentare bleiben erhalten.
ClearFormats() � Die Methode ClearFormats() wird zum Löschen der Formate genutzt.
Inhalte und Kommentare bleiben erhalten.
Den Tabelleninhalt vor Ablauf der Prozedur sehen Sie in Abbildung 2.22.
Abbildung 2.22 Originalinhalte und -formate
Den Tabelleninhalt nach Ablauf der Prozedur sehen Sie in Abbildung 2.23.
Abbildung 2.23 Inhalte nach dem Löschen von Werten und Formaten
2.4.6 Werte und Formeln eintragen
Zellinhalte
eintragen
Mit der nachfolgenden Prozedur werden Zahlen, Datumsangaben, Pro-
zentzahlen und Formeln in die betreffenden Zellen des Tabellenblattes
Tabelle2 eingetragen. Stellen Sie sicher, dass es existiert.
Sub WerteFormeln()ThisWorkbook.Worksheets("Tabelle2").Activate
' ZahlRange("A1").Value = 5.8Range("A2").Value = 1629.9Range("A3").FormulaLocal = "=SUMME(A1:A2)"
' Datum
3962.book Seite 74 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
75
2
Range("A4").Value = "2016/03/31"Range("A5").Value = "2015/11/10"Range("A6").FormulaLocal = "=A4-A5"
' ZahlRange("A7").Value = 0.125
End Sub
Listing 2.24 Sub WerteFormeln() in Mappe2.xlsm, Modul 3
Abbildung 2.24 zeigt das Ergebnis.
Abbildung 2.24 Werte und Formeln eintragen
Zur Erläuterung:
Value� Mithilfe der bereits bekannten Eigenschaft Value wird den Zellen A1 und
A2 jeweils ein Zahlenwert zugewiesen.
Punkt statt Komma� Bei Zahlen mit Nachkommastellen ist ein Punkt statt eines Kommas ein-
zutragen.
FormulaLocal� Die Formel =SUMME(A1:A2) wird als Wert der Eigenschaft FormulaLocal in
der von Excel gewohnten Form (in Deutsch) eingetragen. In der Bearbei-
tungszeile ist erkennbar, dass der Inhalt der Zelle A3 nach wie vor eine
Formel ist. Mehr zu den Formula-Eigenschaften sehen Sie in Abschnitt
8.1, »Formeln zuweisen und lesen«.
Datum� Bei Datumsangaben dürfen die Anführungsstriche nicht fehlen. Es emp-
fiehlt sich, die amerikanische Schreibweise zu benutzen. Dann werden
die Werte direkt als Datumsangaben erkannt und formatiert (führende
Nullen).
� Die Formel =A4-A5 dient der Berechnung der Tagesdifferenz zwischen
den beiden Datumsangaben.
� Der Inhalt der Zelle A7 ist wiederum ein Zahlenwert.
3962.book Seite 75 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
76
2.4.7 Zahlenformate anwenden
Format angeben Mit folgender Prozedur werden die Formate für Zahlen, Datumsangaben
und Prozentzahlen in Zellen festgelegt:
Sub ZellformatZahlen()ThisWorkbook.Worksheets("Tabelle2").Activate
' ZahlRange("A1:A3").NumberFormatLocal = "#.##0,00 €"
' DatumRange("A4:A5").NumberFormatLocal = "TTTT, ""den"" TT. MMMM JJ"Range("A6").NumberFormatLocal = "0 ""Tage"""
' ProzentRange("A7").NumberFormatLocal = "0,00 %"
End Sub
Listing 2.25 Sub ZellformatZahlen() in Mappe2.xlsm, Modul 3
Das Ergebnis sehen Sie in Abbildung 2.25.
Abbildung 2.25 Zahlenformate anwenden
Zur Erläuterung:
Number-
FormatLocal
� Mithilfe der Eigenschaft NumberFormatLocal können Formate in der von
Excel gewohnten Form (in Deutsch) eingetragen werden.
Formatierungs-
zeichen
� Bei Zahlen, Währungs- oder Prozentangaben werden im Beispiel die fol-
genden Zeichen verwendet:
– #: Ziffer nur anzeigen, falls vorhanden
– 0: Ziffer immer anzeigen
– , (Komma): Nachkommastelle abtrennen
– . (Punkt): Tausenderpunkt setzen
3962.book Seite 76 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
77
2
– € (Euro): Währungszeichen verwenden
– % (Prozent): Zahl mit 100 multiplizieren und mit einem Prozentzei-
chen darstellen
Datumsformat� Bei Datumsangaben werden im Beispiel die folgenden Zeichen verwendet:
– TTTT: Wochentagsname in Deutsch ausschreiben
– TT: zwei Ziffern für den Tag im Monat anzeigen
– MMMM: Monatsname in Deutsch ausschreiben
– JJ: zwei Ziffern für das Jahr anzeigen
Text im Format� Eine Besonderheit ist zu beachten: Falls Text (z. B. die Wörter den oder
Tage) in das Format integriert wird, ist dieser bekanntlich in Excel in dop-
pelten Anführungsstrichen zu notieren. So kann kein Konflikt mit den
standardmäßigen Formatangaben auftreten. Da der Wert der Eigen-
schaft NumberFormatLocal schon in doppelten Anführungszeichen steht,
muss dieser Formatierungstext in zweifachen doppelten Anführungs-
strichen stehen.
2.4.8 Zellen ausrichten
AusrichtenMit folgender Prozedur werden Zellen auf verschiedene Art und Weise aus-
gerichtet:
Sub ZellformatAusrichtung()ThisWorkbook.Worksheets("Tabelle2").Activate
Range("C1").Value = "Hallo"Range("C1").HorizontalAlignment = xlCenterRange("C1").VerticalAlignment = xlTop
Range("C2").Value = "Das ist ein längerer Text"Range("C2").WrapText = True
Range("C3").Value = "Hallo"Range("C3:C7").MergeCells = TrueRange("C3:C7").Orientation = xlVertical
Range("C8").Value = "Hallo"Range("C8").Orientation = 45
End Sub
Listing 2.26 Sub ZellformatAusrichtung() in Mappe2.xlsm, Modul 3
3962.book Seite 77 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
78
Das Ergebnis ist in Abbildung 2.26 dargestellt.
Abbildung 2.26 Zellen ausrichten
Zur Erläuterung:
…Alignment � Text wird mithilfe der Eigenschaft HorizontalAlignment und Vertical-
Alignment ausgerichtet. Zulässige Konstanten sind z. B.:
– für die horizontale Ausrichtung xlLeft (linksbündig), xlRight (rechts-
bündig), xlCenter (zentriert) und xlJustify (Blocksatz)
– für die vertikale Ausrichtung xlBottom (am unteren Rand), xlCenter
(vertikal zentriert) und xlTop (am oberen Rand)
– Mehr zum Thema Konstanten finden Sie in Abschnitt 3.2.4, »Konstan-
ten und Enumerationen«.
WrapText � Die Eigenschaft WrapText bestimmt die Anordnung längerer Texte:
– Falls WrapText den Wert True hat, wird der Text innerhalb der Zelle
über mehrere Zeilen verteilt.
– Falls WrapText den Wert False hat, wird der Text nur in einer Zeile
geschrieben, die gegebenenfalls über den rechten Rand der Zelle hin-
ausgeht.
MergeCells � Die Eigenschaft MergeCells bestimmt, ob Zellen miteinander verbunden
werden können:
– Wenn MergeCells den Wert True hat, werden die Zellen des genannten
Bereichs miteinander verbunden dargestellt.
– Wenn MergeCells den Wert False hat, werden die Zellen des genann-
ten Bereichs einzeln dargestellt.
3962.book Seite 78 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
79
2
Orientation� Die einzelnen Zeichen eines Zellinhalts können mithilfe der Eigenschaft
Orientation folgendermaßen geschrieben werden:
– übereinander mit dem Wert xlVertical
– in einem schrägen Winkel mit einem Zahlenwert zwischen
– 90 Grad und + 90 Grad. Der Normalwert ist 0 Grad
2.4.9 Schrifteigenschaften bestimmen
SchriftMit folgender Prozedur werden die Schrifteigenschaften von Zellen
bestimmt:
Sub ZellformatSchrift()ThisWorkbook.Worksheets("Tabelle2").ActivateRange("C1").Font.Name = "Tahoma"Range("C1").Font.Bold = TrueRange("C1").Font.Italic = TrueRange("C1").Font.Underline = TrueRange("C1").Font.Size = 20Range("C1").Font.Color = vbRed
End Sub
Listing 2.27 Sub ZellformatSchrift() in Mappe2.xlsm, Modul 3
Das Ergebnis sehen Sie in Abbildung 2.27.
Abbildung 2.27 Zellenschrift gestalten
Zur Erläuterung:
Font� Die Eigenschaft Font steht für die Formatierung der Schriftart in der
Zelle. Sie hat zahlreiche Untereigenschaften, z. B.:
– Name für den Namen der Schriftart
– Bold für das Format Fett (True oder False)
– Italic für das Format Kursiv (True oder False)
– Underline für das Attribut Unterstrichen (True oder False)
– Size für die Größe der Schrift
– Color für die Farbe der Schrift
3962.book Seite 79 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
80
Farbe � Farben können auf verschiedene Art und Weise angegeben werden:
– speziell für die Grundfarben mithilfe von Farbkonstanten, siehe
Abschnitt 3.2.4, »Konstanten und Enumerationen«
RGB() – allgemein mit der Funktion RGB(). Diese Funktion hat drei Parameter,
die für Rot-, Grün- und Blauwerte der Farbe stehen, jeweils zwischen 0
und 255. Im vorliegenden Beispiel hätte also die folgende Anweisung
dasselbe bewirkt: Range("C1").Font. Color = RGB(255, 0, 0).
2.4.10 Einzelne Zeichen formatieren
Zeichen-
formatierung
Mit folgender Prozedur werden einzelne Zeichen innerhalb von mehreren
Zeichenketten formatiert:
Sub EinzelneZeichen()ThisWorkbook.Worksheets("Tabelle2").Activate
Range("E2").Value = "x2"Range("E3").Value = "x3"Range("E2:E3").Characters(2, 1).Font.Superscript = True
Range("E4:E6").Value = "a38 + a39"Range("E4:E6").Characters(2, 2).Font.Subscript = TrueRange("E4:E6").Characters(8, 2).Font.Subscript = True
End Sub
Listing 2.28 Sub EinzelneZeichen() in Mappe2.xlsm, Modul 3
Das Ergebnis sehen Sie in Abbildung 2.28.
Abbildung 2.28 Einzelne Zeichen formatieren
Zur Erläuterung:
Characters � Die Eigenschaft Characters liefert Teile einer Zeichenfolge. Diese können
anschließend separat formatiert werden. Es müssen zwei Werte festge-
legt werden:
3962.book Seite 80 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
81
2
– Die erste Ziffer bestimmt die Stelle, an der die Teilzeichenfolge
beginnt. Das erste Zeichen einer Zeichenfolge hat die Nummer 1.
– Die zweite Ziffer bestimmt die Länge der Teilzeichenfolge.
Superscript� Im ersten Beispiel wird für zwei Zellen die Teilzeichenfolge hinter dem
Zeichen x geliefert. Mithilfe der Untereigenschaft Superscript der Font-
Eigenschaft des Textes wird dieses Zeichen hochgestellt.
Subscript� Im zweiten Beispiel werden für insgesamt drei Zellen jeweils die beiden
Teilzeichenfolgen 38 und 39 geliefert. Mithilfe der Untereigenschaft Sub-
script der Font-Eigenschaft des Textes werden diese Zeichen tiefgestellt.
2.4.11 Zellbereiche einrahmen
RahmenMit folgender Prozedur werden verschiedene Zellbereiche ganz oder teil-
weise eingerahmt:
Sub ZellformatRahmen()ThisWorkbook.Worksheets("Tabelle2").Activate
Range("E2:E3").Borders.LineStyle = xlDoubleRange("E2:E3").Borders.Weight = xlThickRange("E2:E3").Borders.Color = vbGreen
Range("E4:E6").Borders(xlEdgeLeft).Weight = xlThinRange("E4:E6").Borders(xlEdgeRight).Weight = xlThinRange("E4:E6").Borders(xlInsideHorizontal).Weight = xlHairline
End Sub
Listing 2.29 Sub ZellformatRahmen() in Mappe2.xlsm, Modul 3
Das Ergebnis sehen Sie in Abbildung 2.29.
Abbildung 2.29 Zellbereiche einrahmen
3962.book Seite 81 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
82
Zur Erläuterung:
Borders � Die Eigenschaft Borders dient der Bearbeitung des Rahmens:
– Falls nach Borders keine weitere Angabe in Klammern folgt, werden
die Eigenschaften für alle Rahmenlinien eingestellt, innen wie außen.
Rahmenteile – Es können aber auch die Eigenschaften von ausgewählten Rahmen-
linien bestimmt werden. Zulässige Konstanten sind z. B. xlEdgeLeft (lin-
ker Rahmen), xlEdgeRight (rechter Rahmen), xlEdgeTop (oberer
Rahmen), xlEdgeBottom (unterer Rahmen), xlInsideHorizontal (innere
horizontale Zwischenlinien) und xlInsideVertical (innere vertikale
Zwischenlinien).
– Falls also nur der Außenrahmen eines Zellbereichs eingestellt werden
soll, werden die Konstanten genutzt, deren Name mit xlEdge beginnt.
LineStyle � Mit der Eigenschaft LineStyle wird die Linienart für den Rahmen festge-
legt. Zulässige Konstanten sind z. B. xlContinuous (durchgehende Linie),
xlDot (gepunktete Linie) und xlDouble (doppelte Linie).
Weight � Die Eigenschaft Weight bestimmt die Stärke des Rahmens. Zulässige
Konstanten aus der Enumeration xlBorderWeight sind xlHairline (ganz
feine Linie), xlThin (feine Linie), xlMedium (mittelstarke Linie) und
xlThick (starke Linie). Mehr zu diesem Thema finden Sie in Abschnitt
3.2.4, »Konstanten und Enumerationen«.
Color � Durch die Eigenschaft Color wird die Rahmenfarbe bestimmt. Wie bei
allen Farbangaben können Sie mit den Farbkonstanten oder mit der
Funktion RGB() arbeiten.
2.4.12 Hintergrundmuster von Zellen gestalten
Muster Mit folgender Prozedur wird das Hintergrundmuster der zwei Zellen E3
und E6 gestaltet:
Sub ZellformatMuster()ThisWorkbook.Worksheets("Tabelle2").ActivateRange("E2, E6").Interior.Color = vbYellow
End Sub
Listing 2.30 Sub ZellformatMuster() in Mappe2.xlsm, Modul 3
Das Ergebnis sehen Sie in Abbildung 2.30.
3962.book Seite 82 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
83
2
Abbildung 2.30 Hintergrundmuster von Zellen gestalten
Zur Erläuterung:
Interior� Die Eigenschaft Interior dient der Bearbeitung des Innenbereichs einer
Zelle.
� Sie hat verschiedene Untereigenschaften, u. a. Color für die Innenfarbe.
2.4.13 Zellen einfügen
Zellbereiche
einfügen
Mit folgender Prozedur werden Zellbereiche in einem ausgewählten Tabel-
lenblatt eingefügt:
Sub ZelleEinfuegen()ThisWorkbook.Worksheets("Tabelle1").ActivateRange("A2:A3").Insert Shift:=xlShiftDownRange("6:7").Insert
End Sub
Listing 2.31 Sub ZelleEinfuegen() in Mappe2.xlsm, Modul 3
Zur Erläuterung:
Insert()� Es wird die Methode Insert() des Objekts Range zum Einfügen von Zel-
len aufgerufen.
Shift� Mithilfe des optionalen Parameters Shift entscheiden Sie, was mit den
Nachbarzellen passieren soll. Falls dieser Parameter weggelassen wird,
entscheidet Excel anhand der Bereichsform.
� Im ersten Fall werden die unteren Nachbarzellen nach unten verscho-
ben. Dazu dient die Konstante xlShiftDown. Die Konstante xlShiftTo-Right hätte die rechten Nachbarzellen nach rechts verschoben.
� Im zweiten Fall sind ganze Zeilen ausgewählt. Es kann nur eine Verschie-
bung nach unten stattfinden. Daher macht die Angabe des Parameters
Shift keinen Sinn.
3962.book Seite 83 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
84
Den Tabelleninhalt vor Ablauf der Prozedur sehen Sie in Abbildung 2.31.
Abbildung 2.31 Originalstruktur der Tabelle
Den Tabelleninhalt nach Ablauf der Prozedur sehen Sie in Abbildung 2.32.
Abbildung 2.32 Struktur nach dem Einfügen von Zellen und Zeilen
Hinweis
EntireRow,
EntireColumn
Die Anweisung Range("A2:A3").EntireRow.Insert würde zwei ganze
neue Zeilen vor den Zeilen des angegebenen Bereichs einfügen, hier also
vor den Zeilen 2 und 3. Entsprechend würde durch die Anweisung
Range("A2:A3").EntireColumn.Insert eine ganze neue Spalte vor der
Spalte A eingefügt.
2.4.14 Zellen löschen
Löschen Mit folgender Prozedur werden Zellbereiche eines ausgewählten Tabellen-
blattes gelöscht:
Sub ZelleLoeschen()ThisWorkbook.Worksheets("Tabelle1").ActivateRange("6:7").Delete
3962.book Seite 84 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
85
2
Range("A2:A3").Delete Shift:=xlShiftUpEnd Sub
Listing 2.32 Sub ZelleLoeschen() in Mappe2.xlsm, Modul 3
Zur Erläuterung:
Delete()� Es wird die Methode Delete() des Objekts Range zum Löschen von Zellen
aufgerufen.
Shift� Auch hier gibt es einen optionalen Parameter Shift, mit dem Sie ent-
scheiden, was mit den Nachbarzellen passieren soll. Falls dieser Para-
meter weggelassen wird, entscheidet Excel wiederum aufgrund der
Bereichsform.
� Im ersten Fall sind ganze Zeilen ausgewählt. Es kann nur eine Verschie-
bung (aller Zeilen darunter) nach oben stattfinden. Daher ergibt die
Angabe des Parameters Shift keinen Sinn.
� Im zweiten Fall werden die unteren Nachbarzellen nach oben verscho-
ben. Dazu dient die Konstante xlShiftUp. Die Konstante xlShiftToLeft
hätte die rechten Nachbarzellen nach links verschoben.
Im vorliegenden Beispiel wird durch das Löschen von Zellen und Zeilen das
vorherige Einfügen von Zellen und Zeilen rückgängig gemacht.
Hinweis
EntireRow,
EntireColumn
Die Anweisung Range("A2:A3").EntireRow.Delete würde die gesamten
Zeilen des angegebenen Bereichs löschen, hier also die Zeilen 2 und 3. Ent-
sprechend würde durch die Anweisung Range("A2:A3").EntireCo-lumn.Delete die gesamte Spalte A gelöscht.
2.4.15 Zeilenhöhe und Spaltenbreite
Höhe, BreiteMit folgender Prozedur werden die Höhe bestimmter Zeilen und die Breite
bestimmter Spalten eingestellt:
Sub HoeheBreite()ThisWorkbook.Worksheets("Tabelle2").ActivateRange("1:2").RowHeight = 55
3962.book Seite 85 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
86
Range("B:B,D:D").ColumnWidth = 3End Sub
Listing 2.33 Sub HoeheBreite() in Mappe2.xlsm, Modul 3
Das Ergebnis ist in Abbildung 2.33 dargestellt.
Abbildung 2.33 Zeilenhöhe und Spaltenbreite einstellen
Zur Erläuterung:
� Als Zellbereich werden die Zeilen 1 und 2 sowie die Spalten B und D aus-
gewählt.
RowHeight � Die Eigenschaft RowHeight verändert die Zeilenhöhe.
ColumnWidth � Die Eigenschaft ColumnWidth bestimmt die Spaltenbreite.
Hinweis
AutoFit(),
Columns/Rows
Die optimale Einstellung der Zeilenhöhe und der Spaltenbreite lässt sich
über die Methode AutoFit() des Unterobjekts Columns bzw. Rows erreichen.
Ein Beispiel: Range("G:G").Columns.AutoFit stellt die Breite der Spalte G
optimal ein. Range("1:2").Rows.AutoFit stellt die Höhe der Zeilen 1 und 2
optimal ein.
2.4.16 Benutzten Zellbereich erkennen
Benutzter Bereich Eine nützliche Eigenschaft eines Tabellenblattes ist der benutzte Bereich
(UsedRange). Damit ist der kleinste zusammenhängende rechteckige Zellbe-
reich gemeint, der alle nicht leeren Zellen umfasst.
Nicht leere Zelle Das Problem ist nur: Nicht alle Inhalte einer Zelle können Sie sehen. Auch
die Formatierung einer Zelle kann einen Inhalt darstellen. Falls ein Datum
3962.book Seite 86 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
87
2
in eine Zelle geschrieben und anschließend wieder gelöscht wurde, ist die
Zelle nach wie vor mit dem Datumsformat formatiert. Somit wird sie in
den UsedRange einbezogen. Um hier sicherzugehen, könnten Sie (je nach
Anwendung) vor dem Einfügen neuer Daten alle Zellen der Tabelle löschen
(mit Cells.Delete).
Mit folgender Prozedur werden alle Zellen des benutzten Bereichs durch
einen roten Rahmen hervorgehoben und gezählt:
Sub BenutzterBereich()ThisWorkbook.Worksheets("Tabelle1").ActivateActiveSheet.UsedRange.Borders.Color = vbRedActiveSheet.UsedRange.Interior.Color = vbYellowMsgBox "Anzahl: " & ActiveSheet.UsedRange.Count
End Sub
Listing 2.34 Sub BenutzterBereich() in Mappe2.xlsm, Modul 3
Nehmen wir an, es wurden die Zellen in Abbildung 2.34 benutzt.
Abbildung 2.34 Zellen mit Inhalt
Der benutzte Bereich ergibt sich dann wie in Abbildung 2.35.
Abbildung 2.35 Benutzter Bereich
3962.book Seite 87 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
88
Zur Erläuterung:
UsedRange � Mit ActiveSheet.UsedRange werden alle benutzten Zellen des aktiven
Tabellenblattes erfasst.
� Die Eigenschaft Count ergibt für ein Range-Objekt, wie bei Arbeitsmappen
oder Tabellenblättern, eine Anzahl, hier 10.
2.4.17 Spezielle Zellen erkennen
SpecialCells() Die Methode SpecialCells() ist in der Lage, spezielle Zellen zu erkennen.
Anschließend können diese Zellen besonders bearbeitet bzw. hervorgeho-
ben werden. Im folgenden Beispiel werden verschiedene Zellen farblich
hervorgehoben bzw. gezählt:
� alle Zellen eines Bereichs, die eine Formel enthalten
� alle Zellen eines Bereichs, die leer sind
� die letzte Zelle eines Bereichs, in diesem Fall des benutzten Bereichs
Sub SpezielleZellen()ThisWorkbook.Worksheets("Tabelle2").Activate
' Zellen mit FormelnRange("A1:A8").SpecialCells(xlCellTypeFormulas). _
Interior.Color = vbYellowMsgBox "Formeln: " & Range("A1:A9"). _
SpecialCells(xlCellTypeFormulas).Count
' Leere ZellenRange("A1:A8").SpecialCells(xlCellTypeBlanks). _
Interior.Color = vbCyanMsgBox "Leer: " & Range("A1:A8").SpecialCells _
(xlCellTypeBlanks).Count
' Letzte benutzte ZelleActiveSheet.UsedRange.SpecialCells _
(xlCellTypeLastCell).Interior.Color = vbGreenMsgBox "Letzte Zeile: " & ActiveSheet.UsedRange. _
SpecialCells(xlCellTypeLastCell).RowMsgBox "Letzte Spalte: " & ActiveSheet.UsedRange. _
SpecialCells(xlCellTypeLastCell).ColumnEnd Sub
Listing 2.35 Sub SpezielleZellen() in Mappe2.xlsm, Modul 3
3962.book Seite 88 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
89
2
Abbildung 2.36 zeigt das Ergebnis.
Abbildung 2.36 Spezielle Zellen
Zur Erläuterung:
SpecialCells()� Mithilfe verschiedener Konstanten liefert die Methode SpecialCells()
unterschiedliche Bereiche von Zellen zurück.
Zelle mit Formel� Der Typ xlCellTypeFormulas liefert Zellen, die Formeln enthalten. Hier
sind dies die Zellen A3 und A6.
Leere Zelle� Der Typ xlCellTypeBlanks liefert Zellen, die leer sind, hier die Zelle A8.
Letzte Zelle� Der Typ xlCellTypeLastCell liefert die letzte Zelle eines Bereichs. In die-
sem Fall ist es der benutzte Bereich (UsedRange). Es handelt sich um die
Zelle E8.
� Mithilfe der Eigenschaften Row und Column können Sie sich die Zeilen-
nummer und die Spaltennummer einer Zelle angeben lassen. In diesem
Fall ist es die Zeile und die Spalte der letzten Zelle des benutzten
Bereichs.
Hinweis
Bei einem Zellbereich wird mit den Eigenschaften Row bzw. Column die
Nummer der Zeile bzw. der Spalte der aktiven Zelle ausgegeben. Ein Bei-
spiel: Range("A3:B5").Row ergibt 3 und Range("A3:B5").Column ergibt 1.
3962.book Seite 89 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
90
2.4.18 Versatz mit Offset vornehmen
Offset Mit dem Offset für einen Zellbereich bezeichnen Sie einen zweiten Zellbe-
reich, der gegenüber dem Ursprungsbereich versetzt ist. Dieser Bereich ist
wiederum ein Range-Objekt. Dieser Versatz kann sowohl in Bezug auf ein-
zelne Zellen als auch in Bezug auf zusammenhängende oder nicht zusam-
menhängende Zellbereiche angewendet werden.
Es folgt ein Beispiel mit Zellbereichen im Tabellenblatt Tabelle3. Stellen Sie
vorher sicher, dass es existiert.
Sub ZellOffset()ThisWorkbook.Worksheets("Tabelle3").Activate
' Offset berechnenCells(4, 3).Value = "Ber 1"Cells(4, 3).Offset(0, 2).Value = "Off(0,2)"Cells(4, 3).Offset(-3, 1).Value = "Off(-3,1)"Cells(4, 3).Offset(-2, –1).Value = "Off(-2,-1)"
' Offset eines BereichsRange("C6:D8,E9").Value = "Ber 2"Range("C6:D8,E9").Offset(4, 0).Value = "Off(4,0)"
' Offset-relative ZellenCells(4, 3).Offset(0, 2).Range("A2").Value = "A2"Cells(4, 3).Offset(0, 2).Range("A3").Value = "A3"Cells(4, 3).Offset(0, 2).Range("B1").Value = "B1"Cells(4, 3).Offset(0, 2).Range("B2").Value = "B2"Cells(4, 3).Offset(0, 2).Range("B3").Value = "B3"
End Sub
Listing 2.36 Sub ZellOffset() in Mappe2.xlsm, Modul 3
Offset berechnen:
� Ausgangszelle ist die Zelle 4, 3 oder, anders bezeichnet, C4.
Zeile, Spalte � Bei einem Offset wird zuerst der Versatz für die Zeile, dann für die Spalte
angegeben.
� Falls der Ursprungsbereich mit Cells angegeben ist, können Sie den ver-
setzten Bereich leicht ermitteln, indem Sie die Zahlen für die Zeile und
die Spalte jeweils addieren.
3962.book Seite 90 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
91
2
Negativer Offset� Ein Offset kann aber auch negativ sein. Dann handelt es sich um Zeilen
oberhalb oder um Spalten links vom Ursprungsbereich.
� Die drei Offset-Angaben für den ersten Bereich ergeben:
– Zelle 4, 3 + Offset 0, 2 = Zelle 4, 5 = Zelle E4
– Zelle 4, 3 + Offset 3, 1 = Zelle 1, 4 = Zelle D1
– Zelle 4, 3 + Offset 2, 1 = Zelle 2, 2 = Zelle B2
Das Ergebnis für den ersten Bereich sehen Sie in Abbildung 2.37.
Abbildung 2.37 Offset berechnen
Den Offset eines Bereichs sehen Sie in Abbildung 2.38.
Abbildung 2.38 Offset eines Bereichs
� Die Offset-Angabe für den nicht zusammenhängenden Zellbereich
ergibt einen gleichartigen Bereich, der um vier Zeilen – Offset(4, 0) –
nach unten verschoben ist.
Offset-relative Zellen:
Offset-relative
Bezeichnung
� Die erste Zelle eines Offsets, egal ob einzelne Zelle oder Zellbereich, wird
relativ mit A1 bezeichnet. So können Sie jede Zelle im Offset eindeutig
erreichen.
3962.book Seite 91 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
92
� Im Beispiel sind die Zellen A2, A3, B1, B2 und B3 des Offsets besonders
hervorgehoben.
Die Offset-relativen Zellen sehen Sie in Abbildung 2.39.
Abbildung 2.39 Offset-relative Zellen
2.4.19 Zellbereich sortieren
Sortieren Die Methode Sort() des Range-Objekts bietet zahlreiche Möglichkeiten,
Zellbereiche zu sortieren. Ausgangspunkt soll die Tabelle im Tabellenblatt
Tabelle4 sein, die Sie in Abbildung 2.40 sehen.
Abbildung 2.40 Tabelle, die sortiert werden soll
Diese Tabelle soll auf zwei Arten sortiert werden:
� nach Nummer
� nach Nachname und Vorname
Die oberste Zeile soll als Überschrift erkannt werden, so dass sie nicht ein-
sortiert wird.
Zunächst die Prozedur für die Sortierung nach Nummer:
Sub SortierenNummer()ThisWorkbook.Worksheets("Tabelle4").ActivateRange("A1:C4").Sort Key1:=Range("C1:C4"), Header:=xlYes
End Sub
Listing 2.37 Sub SortierenNummer() in Mappe2.xlsm, Modul 4
Das Ergebnis sehen Sie in Abbildung 2.41.
3962.book Seite 92 Dienstag, 24. November 2015 3:53 15
2.4 Auf Zellen und Zellbereiche zugreifen
93
2
Abbildung 2.41 Sortierung nach Nummer
Zur Erläuterung:
� Es wird der angegebene Bereich (A1:C4) sortiert.
Sort()� Die Methode Sort() hat zahlreiche Parameter. Daher werden die Para-
meter beim Aufruf am besten einzeln benannt.
Key1� Der Parameter Key1 gibt den Bereich an, in dem der Sortierschlüssel
steht. Hier ist dies die dritte Spalte mit der Nummer, also C1:C4.
Order1� Der Parameter Order1 bestimmt darüber, ob aufsteigend (xlAscending)
oder absteigend (xlDescending) sortiert wird. Da aufsteigende Sortierung
der Standard ist, muss der Parameter nicht angegeben werden.
Header� Über den Parameter Header legen Sie fest, ob die oberste Zeile des
Bereichs als Überschrift erkannt werden soll. Der Standard ist xlNo.
Daher wird hier xlYes angegeben. Falls der Wert xlGuess angegeben wird,
entscheidet Excel, ob eine Überschrift vorhanden ist, und reagiert ent-
sprechend.
Es folgt die Prozedur für die Sortierung nach Nachname und Vorname:
Sub SortierenName()ThisWorkbook.Worksheets("Tabelle4").ActivateRange("A1:C4").Sort Key1:=Range("A1:A4"), _
Key2:=Range("B1:B4"), Header:=xlYesEnd Sub
Listing 2.38 Sub SortierenName() in Mappe2.xlsm, Modul 4
Abbildung 2.42 zeigt das Ergebnis.
Abbildung 2.42 Nach Nachname und Vorname sortieren
3962.book Seite 93 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
94
Zur Erläuterung:
Key2 � Der Parameter Key2 gibt den Bereich an, in dem der zweite Sortierschlüs-
sel steht. Es wird also zunächst nach der ersten Spalte mit den Nachna-
men sortiert und bei gleichem Nachnamen nach der zweiten Spalte mit
den Vornamen.
� Es können bis zu drei Sortierschlüssel (Key1 bis Key3) angegeben werden.
Eine auf- bzw. absteigende Sortierung wird über die Parameter Order1
bis Order3 bestimmt.
Mehr als drei Sortierschlüssel
Mehr Sortier-
schlüssel
Falls Sie mehr als drei Sortierschlüssel benötigen, dann können Sie das
Objekt Sort des Tabellenblattes verwenden. Im nachfolgenden Beispiel im
Tabellenblatt Tabelle5 werden insgesamt fünf Sortierschlüssel eingesetzt.
Diese Möglichkeit gibt es erst seit Excel 2007. Der gewünschte Bereich wird
zunächst nach dem ersten Schlüssel sortiert. Falls dabei gleiche Einträge
vorliegen, wird nach dem zweiten Schlüssel sortiert usw.
Sub SortierenVieleSchlüssel()ThisWorkbook.Worksheets("Tabelle5").Activate
' Alte Sortiereinstellungen löschenActiveSheet.Sort.SortFields.Clear
' Insgesamt fünf Sortierschlüssel einstellenActiveSheet.Sort.SortFields.Add Range("A1:A6")ActiveSheet.Sort.SortFields.Add Range("B1:B6")ActiveSheet.Sort.SortFields.Add Range("C1:C6")ActiveSheet.Sort.SortFields.Add Range("D1:D6")ActiveSheet.Sort.SortFields.Add Range("E1:E6")
' Bereich, der sortiert werden sollActiveSheet.Sort.SetRange Range("A1:E6")
' Sortierung anwenden = durchführenActiveSheet.Sort.Apply
End Sub
Listing 2.39 Sub SortierenVieleSchlüssel() in Mappe2.xlsm, Modul 4
3962.book Seite 94 Dienstag, 24. November 2015 3:53 15
2.5 Ereignisprozeduren schreiben
95
2
Zur Erläuterung:
SortFields� Zunächst werden mithilfe der Methode Clear() eventuell vorhandene
alte Sortiereinstellungen aus der Auflistung SortFields der Sortier-
schlüssel gelöscht.
Add()� Die Methode Add() dient dem Hinzufügen der Bereiche, in denen die
Sortierschlüssel stehen, zu der Auflistung SortFields.
� Im vorliegenden Beispiel wird zunächst nach den Einträgen im Bereich
A1 bis A6 sortiert. Falls es Daten gibt, die in diesem Bereich übereinstim-
men, werden diese Daten nach den Einträgen im Bereich B1 bis B6 sor-
tiert usw.
Sort()� Mithilfe der Methode SetRange() wird der Bereich festgelegt, der sortiert
werden soll.
Apply()� Die Methode Apply() dient der Ausführung der Sortierung.
2.5 Ereignisprozeduren schreiben
Ereignis passiertEreignisse sagen etwas darüber aus, was gerade mit einem Objekt passiert.
Es können Ereignisse bezüglich Arbeitsmappen, Tabellenblättern oder Zell-
bereichen stattfinden. Diese können mit VBA-Code verbunden werden, so
dass automatisch weitere Aktionen folgen.
KlassenmodulDer VBA-Code von Ereignissen muss in den vorhandenen Klassenmodulen
eingetragen werden. Nach Erzeugen einer neuen Arbeitsmappe gibt es
bereits die Klassenmodule DieseArbeitsmappe und Tabelle1. In Programm-
versionen vor Excel 2013 werden neue Arbeitsmappen mit drei Tabellen-
blättern erzeugt. Daher gibt es hier auch die Klassenmodule Tabelle2 und
Tabelle3. Ein Doppelklick auf eines der Klassenmodule im Projekt-Explorer
führt dazu, dass das betreffende Codefenster angezeigt wird.
Ereignis auswählenOberhalb des Codefensters wählen Sie in der linken Liste das Objekt (Work-
book oder Worksheet) und anschließend in der rechten Liste das Ereignis aus.
Es wird ein leerer Prozedurrahmen angezeigt, in den die Ereignisprozedur
geschrieben werden kann.
Noch umfangreicher sind die Möglichkeiten der Ereignisprogrammierung
bei eigenen Dialogfeldern. Diese werden in Kapitel 10, »Dialogfelder«,
beschrieben.
3962.book Seite 95 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
96
2.5.1 Arbeitsmappe wird geöffnet
Mappe öffnen Mit folgender Prozedur wird beim Öffnen der Arbeitsmappe gleichzeitig
eine zweite Arbeitsmappe geöffnet:
Private Sub Workbook_Open()MsgBox ActiveWorkbook.NameWorkbooks.Open "C:\Temp\Mappe1.xlsm"
End Sub
Listing 2.40 Sub Workbook_Open() in Mappe2.xlsm,
Klassenmodul »DieseArbeitsmappe«
Zur Erläuterung:
Workbook_Open() � Es wird die Ereignisprozedur Workbook_Open() durchlaufen.
� Nach einer Kontrollausgabe wird eine zweite Arbeitsmappe geöffnet.
Testen Sie die Prozedur, indem Sie Excel vollständig schließen und
anschließend die Arbeitsmappe Mappe2.xlsm öffnen, die die oben angege-
bene Prozedur enthält.
Hinweis
In den Versionen vor Excel 2007 muss die Dateibezeichnung in der Proze-
dur wie folgt lauten: Mappe1.xls.
2.5.2 Arbeitsmappe wird geschlossen
Mappe schließen Mit folgender Prozedur im Klassenmodul DieseArbeitsmappe wird eine
Arbeitsmappe vor dem Schließen ohne weitere Nachfrage automatisch
gespeichert:
Private Sub Workbook_BeforeClose(Cancel As Boolean)ThisWorkbook.Save
End Sub
Listing 2.41 Sub Workbook_BeforeClose() in Mappe2.xlsm,
Klassenmodul »DieseArbeitsmappe«
Zur Erläuterung:
Workbook_
BeforeClose()
� Es wird die Ereignisprozedur Workbook_BeforeClose() durchlaufen.
� Verhalten ohne diese Prozedur: Falls der Benutzer die Arbeitsmappe
ändert und schließt, wird er gefragt, ob er die Arbeitsmappe speichern
3962.book Seite 96 Dienstag, 24. November 2015 3:53 15
2.5 Ereignisprozeduren schreiben
97
2
möchte. Diese Prozedur umgeht das, weil das Ereignis BeforeClose vor
der Nachfrage auftritt.
� Innerhalb der Prozedur wird die Arbeitsmappe mithilfe der Methode
Save() gespeichert.
Testen Sie die Prozedur, indem Sie eine Änderung vornehmen und die
Arbeitsmappe schließen.
2.5.3 Tabellenblatt wird aktiviert
Blatt aktivierenMit folgender Prozedur in einem Klassenmodul wird nach dem Aktivieren
des betreffenden Tabellenblattes (vom Benutzer oder durch VBA-Code)
eine Zelle ausgewählt:
Private Sub Worksheet_Activate()MsgBox ActiveSheet.NameRange("C5").Select
End Sub
Listing 2.42 Sub Worksheet_Activate() in Mappe2.xlsm, Klassenmodul «Tabelle1«
Zur Erläuterung:
Worksheet_
Activate()
� Es wird die Ereignisprozedur Worksheet_Activate() zu einem Tabellen-
blatt durchlaufen.
� Nach einer Kontrollausgabe wird eine Zelle ausgewählt.
Testen Sie die Prozedur, indem Sie zwischen den verschiedenen Tabellen-
blättern der Arbeitsmappe hin- und herwechseln. Das Ereignis tritt nur ein,
falls die Tabelle, in deren Codefenster dieser VBA-Code steht, nicht bereits
das aktivierte Tabellenblatt ist.
2.5.4 Zellbereich wird ausgewählt
Zelle wechseltMit folgender Prozedur in einem Klassenmodul wird nach der Auswahl
eines Zellbereichs in der betreffenden Tabelle die Adresse dieses Zellbe-
reichs ausgegeben:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)MsgBox Target.Address
End Sub
Listing 2.43 Sub Worksheet_SelectionChange() in Mappe2.xlsm,
Klassenmodul »Tabelle1«
3962.book Seite 97 Dienstag, 24. November 2015 3:53 15
2 Grundlagen von Objekten und Ereignissen
98
Zur Erläuterung:
SelectionChange() � Es wird die Ereignisprozedur Worksheet_SelectionChange() zu einem
Tabellenblatt durchlaufen.
Target � Die Prozedur liefert den ausgewählten Zellbereich als Range über die
Objektvariable Target. Weitere Einzelheiten zu Objektvariablen lesen Sie
in Abschnitt 6.4, »Mit Objektvariablen arbeiten«.
� Für den ausgewählten Zellbereich wird die Eigenschaft Address ausgege-
ben. Dabei handelt es sich um die absolute Bezeichnung der Zelladresse.
Testen Sie die Prozedur, indem Sie verschiedene zusammenhängende bzw.
nicht zusammenhängende Zellbereiche (mithilfe der Taste (Strg)) auswäh-
len.
2.5.5 Zelle wird doppelt angeklickt
Doppelklick Mit folgender Prozedur in einem Klassenmodul wird bei einem Doppel-
klick auf eine Zelle die betreffende Zelle formatiert:
Private Sub Worksheet_BeforeDoubleClick _(ByVal Target As Range, Cancel As Boolean)
Target.Interior.Color = vbGreenTarget.Borders.LineStyle = xlContinuousTarget.Borders.Weight = xlThickCancel = True
End Sub
Listing 2.44 Sub Worksheet_BeforeDoubleClick() in Mappe2.xlsm,
Klassenmodul «Tabelle1«
Zur Erläuterung:
BeforeDoubleClick() � Die Ereignisprozedur Worksheet_BeforeDoubleClick() zu einem Tabel-
lenblatt wird durchlaufen. Mit Target wird die Zelle bezeichnet, auf der
der Mauszeiger beim Doppelklick steht.
� Das Hintergrundmuster und der Rahmen der Zelle werden eingestellt.
Cancel � Über die logische Variable Cancel können Sie bestimmen, ob das eigent-
liche Ereignis, hier der Doppelklick, stattfinden soll. Mit Cancel = True
wird die weitere Verarbeitung abgebrochen. Es findet nur die Formatie-
rung statt. Mit Cancel = False oder einfach ganz ohne diese Anweisung
wird fortgefahren, also der Cursor zur Bearbeitung in die Zelle gesetzt.
3962.book Seite 98 Dienstag, 24. November 2015 3:53 15
2.5 Ereignisprozeduren schreiben
99
2
Logische Variablen werden in Abschnitt 3.2.3, »Datentypen«, noch
genauer erläutert.
2.5.6 Tabellenblatt wird neu berechnet
NeuberechnungMit folgender Prozedur in einem Klassenmodul wird eine Spaltenbreite
optimal eingestellt, falls im Tabellenblatt an irgendeiner Stelle eine Neube-
rechnung stattfand:
Private Sub Worksheet_Calculate()Range("G:G").Columns.AutoFit
End Sub
Listing 2.45 Sub Worksheet_Calculate() in Mappe2.xlsm,
Klassenmodul «Tabelle1«
Zur Erläuterung:
Worksheet_
Calculate()
� Es wird die Ereignisprozedur Worksheet_Calculate() zu einem Tabellen-
blatt durchlaufen. Dieses Ereignis tritt ein, falls z. B. eine Zelle einen
neuen Wert erhalten hat, die in der Berechnungsformel für den Wert
einer anderen Zelle vorkommt.
� Beispiel: In Zelle G3 steht die Formel =G1+G2. Sobald sich G1 oder G2
ändert, tritt das Ereignis Calculate ein.
� Die Spaltenbreite wird in diesem Fall optimal auf die neuen Werte einge-
stellt.
3962.book Seite 99 Dienstag, 24. November 2015 3:53 15
Auf einen Blick
Auf einen Blick
1 Einführung ................................................................................................................... 17
2 Grundlagen von Objekten und Ereignissen ...................................................... 49
3 Grundlagen der Programmierung mit VBA ...................................................... 101
4 Fehlerbehandlung ..................................................................................................... 137
5 Mehr über die Programmierung mit VBA ......................................................... 147
6 Mehr über Objekte .................................................................................................... 189
7 Diagramme und Grafiken ....................................................................................... 209
8 VBA- und Worksheet-Funktionen ........................................................................ 253
9 Externe Daten ............................................................................................................. 297
10 Dialogfelder ................................................................................................................. 369
11 Beispielprojekte ......................................................................................................... 393
3962.book Seite 3 Dienstag, 24. November 2015 3:53 15
Inhalt
5
Inhalt
Geleitwort des Fachgutachters ............................................................................................................. 15
1 Einführung 17
1.1 Was wird besser durch Makros und VBA? .................................................................... 17
1.2 MS Office 2016 .......................................................................................................................... 19
1.3 Mit Makros arbeiten .............................................................................................................. 20
1.3.1 Makro aufzeichnen ............................................................................................... 20
1.3.2 Makro ausführen ................................................................................................... 23
1.3.3 Makro ansehen ...................................................................................................... 23
1.3.4 Makro speichern .................................................................................................... 25
1.3.5 Makrosicherheit ändern ...................................................................................... 26
1.3.6 Registerkarte »Entwicklertools« ....................................................................... 28
1.3.7 Makrosicherheit dauerhaft ändern ................................................................. 29
1.4 Visual Basic Editor (VBE) als Entwicklungsumgebung ........................................... 31
1.4.1 Menüleiste und Symbolleiste ........................................................................... 31
1.4.2 Projekt-Explorer und Fenster »Eigenschaften« ........................................... 32
1.4.3 Codefenster ............................................................................................................. 33
1.5 Makrocode verstehen und ändern .................................................................................. 34
1.6 Makro per Schaltfläche ausführen .................................................................................. 36
1.7 Relative Verweise verwenden ........................................................................................... 37
1.8 Persönliche Makroarbeitsmappe ..................................................................................... 39
1.9 Code schreiben für einfache Ausgaben ......................................................................... 41
1.9.1 Eigene Sub-Prozedur ............................................................................................ 41
1.9.2 In Zelle ausgeben .................................................................................................. 42
1.9.3 In Nachrichtenbox ausgeben ............................................................................ 43
1.9.4 Im Direktfenster des VBE ausgeben ................................................................ 44
1.10 Mit Versionen vor Excel 2007 arbeiten ......................................................................... 45
1.10.1 Makro aufzeichnen ............................................................................................... 45
1.10.2 Makro ausführen ................................................................................................... 46
1.10.3 Makro ansehen ...................................................................................................... 46
1.10.4 Makro speichern .................................................................................................... 46
3962.book Seite 5 Dienstag, 24. November 2015 3:53 15
Inhalt
6
1.10.5 Makrosicherheit ändern ...................................................................................... 47
1.10.6 Symbolleiste »Visual Basic« einblenden ....................................................... 47
1.10.7 Visual Basic Editor (VBE) als Entwicklungsumgebung ............................. 47
1.10.8 Persönliche Makroarbeitsmappe verwalten ................................................ 47
2 Grundlagen von Objekten und Ereignissen 49
2.1 Objekthierarchie und Auflistungen ................................................................................ 49
2.2 Arbeitsmappen bearbeiten ................................................................................................. 50
2.2.1 Anzahl der Arbeitsmappen ermitteln ............................................................. 50
2.2.2 Neue Arbeitsmappe erzeugen .......................................................................... 51
2.2.3 Vorhandene Arbeitsmappe öffnen ................................................................. 52
2.2.4 Alle Arbeitsmappen schließen .......................................................................... 52
2.2.5 Name einer Arbeitsmappe ermitteln ............................................................. 53
2.2.6 Aktive Arbeitsmappe ermitteln ........................................................................ 54
2.2.7 Arbeitsmappe aktivieren .................................................................................... 55
2.2.8 Arbeitsmappe speichern ..................................................................................... 56
2.2.9 Arbeitsmappe über Index oder Namen auswählen .................................. 57
2.2.10 Pfad einer Arbeitsmappe ermitteln ................................................................ 57
2.3 Tabellenblätter bearbeiten ................................................................................................. 59
2.3.1 Tabellenblatt erzeugen ....................................................................................... 60
2.3.2 Tabellenblatt kopieren ........................................................................................ 60
2.3.3 Tabellenblatt verschieben .................................................................................. 62
2.3.4 Tabellenblatt löschen .......................................................................................... 62
2.3.5 Tabellenblatt aktivieren ...................................................................................... 63
2.3.6 Tabellenblatt formatieren .................................................................................. 63
2.3.7 Gitternetz, Zeilen- und Spaltenüberschriften ............................................. 64
2.3.8 Seite einrichten ...................................................................................................... 65
2.4 Auf Zellen und Zellbereiche zugreifen ........................................................................... 67
2.4.1 Zellen über das Range-Objekt auswählen .................................................... 68
2.4.2 Zellen über das Cells-Objekt auswählen ....................................................... 70
2.4.3 Zellinhalte verschieben oder kopieren ........................................................... 71
2.4.4 Teile von Zellinhalten kopieren ........................................................................ 72
2.4.5 Zellinhalt löschen .................................................................................................. 73
2.4.6 Werte und Formeln eintragen .......................................................................... 74
2.4.7 Zahlenformate anwenden ................................................................................. 76
3962.book Seite 6 Dienstag, 24. November 2015 3:53 15
Inhalt
7
2.4.8 Zellen ausrichten ................................................................................................... 77
2.4.9 Schrifteigenschaften bestimmen .................................................................... 79
2.4.10 Einzelne Zeichen formatieren ........................................................................... 80
2.4.11 Zellbereiche einrahmen ...................................................................................... 81
2.4.12 Hintergrundmuster von Zellen gestalten ..................................................... 82
2.4.13 Zellen einfügen ...................................................................................................... 83
2.4.14 Zellen löschen ......................................................................................................... 84
2.4.15 Zeilenhöhe und Spaltenbreite .......................................................................... 85
2.4.16 Benutzten Zellbereich erkennen ...................................................................... 86
2.4.17 Spezielle Zellen erkennen ................................................................................... 88
2.4.18 Versatz mit Offset vornehmen ......................................................................... 90
2.4.19 Zellbereich sortieren ............................................................................................ 92
2.5 Ereignisprozeduren schreiben ........................................................................................... 95
2.5.1 Arbeitsmappe wird geöffnet ............................................................................. 96
2.5.2 Arbeitsmappe wird geschlossen ...................................................................... 96
2.5.3 Tabellenblatt wird aktiviert ............................................................................... 97
2.5.4 Zellbereich wird ausgewählt ............................................................................. 97
2.5.5 Zelle wird doppelt angeklickt ............................................................................ 98
2.5.6 Tabellenblatt wird neu berechnet ................................................................... 99
3 Grundlagen der Programmierung mit VBA 101
3.1 Allgemeines ............................................................................................................................... 101
3.1.1 Codeblöcke auskommentieren ......................................................................... 102
3.1.2 Zeilen zerlegen ....................................................................................................... 103
3.2 Variablen und Datentypen ................................................................................................. 104
3.2.1 Namen, Werte ........................................................................................................ 104
3.2.2 Deklarationen ......................................................................................................... 104
3.2.3 Datentypen .............................................................................................................. 105
3.2.4 Konstanten und Enumerationen ..................................................................... 109
3.3 Operatoren ................................................................................................................................. 112
3.3.1 Arithmetische Operatoren ................................................................................. 113
3.3.2 Vergleichsoperatoren .......................................................................................... 116
3.3.3 Logische Operatoren ............................................................................................ 119
3.3.4 Verkettungsoperator ............................................................................................ 120
3.3.5 Rangfolge der Operatoren .................................................................................. 121
3962.book Seite 7 Dienstag, 24. November 2015 3:53 15
Inhalt
8
3.4 Verzweigungen ........................................................................................................................ 123
3.4.1 Einzeiliges If … Then … Else ................................................................................. 123
3.4.2 If-Then-Else-Block .................................................................................................. 124
3.4.3 Select Case ............................................................................................................... 126
3.5 Schleifen ...................................................................................................................................... 127
3.5.1 For-Next-Schleife ................................................................................................... 128
3.5.2 Do-Loop-Schleife ................................................................................................... 131
4 Fehlerbehandlung 137
4.1 Eine Anwendung entwickeln ............................................................................................. 137
4.2 Syntaxfehler .............................................................................................................................. 138
4.3 Laufzeitfehler ............................................................................................................................ 139
4.3.1 Programm mit Laufzeitfehlern ......................................................................... 139
4.3.2 Laufzeitfehler abfangen: On Error ................................................................... 141
4.4 Logische Fehler und Debugging ........................................................................................ 143
4.4.1 Einzelschrittverfahren ......................................................................................... 143
4.4.2 Haltepunkte ............................................................................................................ 145
5 Mehr über die Programmierung mit VBA 147
5.1 Gültigkeitsbereiche ................................................................................................................ 147
5.2 Datenfelder ................................................................................................................................ 150
5.2.1 Eindimensionale Datenfelder ........................................................................... 150
5.2.2 Datenfeld sortieren .............................................................................................. 153
5.2.3 Mehrdimensionale Datenfelder ....................................................................... 154
5.2.4 Dynamische Datenfelder .................................................................................... 157
5.2.5 Datenfelder löschen oder freigeben ............................................................... 159
5.3 Prozeduren und Funktionen ............................................................................................... 161
5.3.1 Prozeduren .............................................................................................................. 162
5.3.2 Parameter übergeben .......................................................................................... 165
5.3.3 Funktionen .............................................................................................................. 167
5.3.4 Optionale Parameter ............................................................................................ 171
5.3.5 Benannte Parameter ............................................................................................ 173
3962.book Seite 8 Dienstag, 24. November 2015 3:53 15
Inhalt
9
5.3.6 Beliebig viele Parameter ..................................................................................... 175
5.3.7 Datenfelder als Parameter ................................................................................. 177
5.4 Benutzerdefinierter Datentyp ........................................................................................... 179
5.5 Modular programmieren ..................................................................................................... 182
5.5.1 Code in der gleichen Datei ................................................................................. 182
5.5.2 Code in einer anderen Datei .............................................................................. 183
5.6 Module exportieren und importieren ............................................................................ 185
5.6.1 Ein Modul exportieren ......................................................................................... 186
5.6.2 Ein Modul importieren ........................................................................................ 187
6 Mehr über Objekte 189
6.1 Objektkatalog ........................................................................................................................... 189
6.2 Objekte referenzieren ........................................................................................................... 190
6.2.1 Beispiel »Zellen verschieben« ........................................................................... 191
6.3 Mit With auf Objekte zugreifen ....................................................................................... 192
6.4 Mit Objektvariablen arbeiten ............................................................................................ 194
6.4.1 Objektvariablen hierarchisch zuweisen ........................................................ 195
6.4.2 Neue Objekte erzeugen ....................................................................................... 196
6.4.3 Objekttyp ermitteln .............................................................................................. 197
6.5 For-Each-Schleife ..................................................................................................................... 198
6.6 Collections .................................................................................................................................. 200
6.7 Hauptobjekt »Application« ................................................................................................ 202
6.7.1 Anwendungspfad ausgeben ............................................................................. 202
6.7.2 Prozedur zeitverzögert aufrufen ...................................................................... 202
6.7.3 Excel-Anwendung schließen ............................................................................. 203
6.8 Filtern ............................................................................................................................................ 203
7 Diagramme und Grafiken 209
7.1 Diagramm erstellen ............................................................................................................... 210
7.1.1 Diagrammblatt erstellen .................................................................................... 210
7.1.2 Eingebettetes Diagramm erstellen ................................................................. 212
3962.book Seite 9 Dienstag, 24. November 2015 3:53 15
Inhalt
10
7.2 Diagramm ändern ................................................................................................................... 214
7.2.1 Diagrammblatt ändern ....................................................................................... 214
7.2.2 Eingebettetes Diagramm ändern .................................................................... 219
7.3 Diagramm verwalten ............................................................................................................ 219
7.3.1 Diagrammblatt verwalten ................................................................................. 220
7.3.2 Eingebettetes Diagramm verwalten .............................................................. 221
7.4 Beispiel: Formatiertes Kreisdiagramm .......................................................................... 223
7.5 Shapes .......................................................................................................................................... 226
7.5.1 Rechteck ................................................................................................................... 226
7.5.2 Oval ............................................................................................................................ 228
7.5.3 Linie ............................................................................................................................ 229
7.5.4 Verbinder ................................................................................................................. 230
7.5.5 Freiform .................................................................................................................... 232
7.5.6 Alle Formen ............................................................................................................. 235
7.6 WordArt ....................................................................................................................................... 237
7.7 Bedingte Formatierungen ................................................................................................... 240
7.7.1 Datenbalken ............................................................................................................ 240
7.7.2 Zweifarbige Farbskala ......................................................................................... 241
7.7.3 Dreifarbige Farbskala ........................................................................................... 242
7.7.4 Symbolsatz .............................................................................................................. 244
7.8 Sparklines ................................................................................................................................... 246
7.8.1 Linie ............................................................................................................................ 246
7.8.2 Spalte ......................................................................................................................... 247
7.8.3 Gewinn/Verlust ..................................................................................................... 248
7.8.4 Formatierung .......................................................................................................... 248
7.8.5 Alle Farben ............................................................................................................... 249
7.9 SmartArt ...................................................................................................................................... 250
8 VBA- und Worksheet-Funktionen 253
8.1 Formeln zuweisen und lesen .............................................................................................. 255
8.1.1 Formeln zuweisen ................................................................................................. 255
8.1.2 Formeln lesen ......................................................................................................... 256
8.2 Eingaben des Benutzers ....................................................................................................... 257
8.2.1 Funktion »InputBox« ............................................................................................ 258
3962.book Seite 10 Dienstag, 24. November 2015 3:53 15
Inhalt
11
8.2.2 Methode »Application.InputBox« .................................................................... 259
8.3 Einfacher Dialog mit dem Benutzer ................................................................................ 263
8.3.1 Schaltfläche »OK« ................................................................................................. 263
8.3.2 Schaltflächen – eine Übersicht ......................................................................... 264
8.3.3 Zeichen »Information« ........................................................................................ 265
8.3.4 Systemmodal .......................................................................................................... 265
8.3.5 Schaltflächen »Ja« und »Nein« ......................................................................... 266
8.3.6 Drei Schaltflächen einschließlich Default-Schaltfläche ........................... 267
8.3.7 Schaltflächen »Wiederholen« und »Abbrechen« ....................................... 268
8.3.8 Schaltflächen »Abbrechen«, »Wiederholen« und »Ignorieren« ............ 269
8.4 Zeichenketten ........................................................................................................................... 270
8.4.1 Zeichenketten umwandeln ................................................................................ 272
8.4.2 Ausgabeformatierung ......................................................................................... 273
8.4.3 Datensätze zusammenfügen ............................................................................ 276
8.4.4 Datensätze zerlegen ............................................................................................. 277
8.5 Datum und Uhrzeit ................................................................................................................. 278
8.5.1 Zeitintervall addieren .......................................................................................... 278
8.5.2 Zeitdifferenz berechnen ..................................................................................... 279
8.5.3 Datumsangaben erstellen und Wochentage markieren ......................... 280
8.5.4 Jahreskalender ....................................................................................................... 281
8.5.5 ISO-Kalenderwoche berechnen ........................................................................ 283
8.5.6 Arbeitstage berechnen ........................................................................................ 284
8.6 Weitere Funktionen ............................................................................................................... 286
8.6.1 Anwendung unterbrechen ................................................................................. 286
8.6.2 Einheiten umrechnen .......................................................................................... 287
8.6.3 Zwischen Zahlensystemen umrechnen ......................................................... 289
8.6.4 Zellen zählen ........................................................................................................... 290
8.6.5 Webfunktionen nutzen ....................................................................................... 291
8.6.6 Größte und kleinste Werte finden ................................................................... 294
8.6.7 Zahlen runden ........................................................................................................ 294
8.6.8 Römische und arabische Zahlen umwandeln ............................................. 296
9 Externe Daten 297
9.1 Ein Überblick .............................................................................................................................. 297
3962.book Seite 11 Dienstag, 24. November 2015 3:53 15
Inhalt
12
9.2 Einfache Textdateien ............................................................................................................. 298
9.2.1 Einfache Textdateien schreiben ....................................................................... 298
9.2.2 Einfache Textdateien lesen ................................................................................ 300
9.3 CSV-Dateien ............................................................................................................................... 302
9.3.1 CSV-Dateien schreiben ........................................................................................ 303
9.3.2 CSV-Dateien lesen ................................................................................................. 304
9.4 Dateien mit wahlfreiem Zugriff ....................................................................................... 306
9.4.1 Benutzerdefinierten Datentyp erstellen ....................................................... 306
9.4.2 Datei mit allen Datensätzen erstellen ........................................................... 307
9.4.3 An beliebiger Stelle lesen ................................................................................... 309
9.4.4 An beliebiger Stelle schreiben ........................................................................... 311
9.5 Mit Dateien arbeiten ............................................................................................................. 312
9.5.1 Dateien suchen und auflisten ........................................................................... 312
9.5.2 Informationen über Dateien ermitteln .......................................................... 314
9.5.3 Operationen mit Dateien durchführen ......................................................... 316
9.5.4 Operationen mit Verzeichnissen ausführen ................................................ 318
9.6 Daten mit MS Word austauschen .................................................................................... 320
9.6.1 Objektmodell von Word ...................................................................................... 320
9.6.2 Word-Absätze schreiben ..................................................................................... 321
9.6.3 Word-Absätze lesen ............................................................................................. 323
9.6.4 Word-Tabelle schreiben ...................................................................................... 325
9.6.5 Word-Tabelle lesen ............................................................................................... 327
9.6.6 Internetseite lesen ................................................................................................ 329
9.7 Daten mit MS Outlook austauschen .............................................................................. 331
9.7.1 Objektmodell von Outlook ................................................................................. 331
9.7.2 Eine Arbeitsmappe einfach als Anlage versenden ..................................... 332
9.7.3 Integriertes E-Mail-Dialogfeld nutzen ........................................................... 334
9.7.4 Eine E-Mail zusammensetzen ........................................................................... 335
9.7.5 Eine Serien-E-Mail erstellen ............................................................................... 337
9.7.6 Bestimmten Bereich in E-Mail versenden ..................................................... 339
9.7.7 Auf Outlook-Verzeichnis zugreifen ................................................................. 341
9.7.8 Auf E-Mail-Anhänge zugreifen ......................................................................... 343
9.7.9 Kontakt erzeugen .................................................................................................. 345
9.7.10 Auf Kontakte zugreifen ....................................................................................... 346
9.7.11 Termin erzeugen .................................................................................................... 347
9.7.12 Terminserie erzeugen .......................................................................................... 349
9.7.13 Auf Termine und Terminserien zugreifen ..................................................... 351
3962.book Seite 12 Dienstag, 24. November 2015 3:53 15
Inhalt
13
9.8 Daten mit MS Access austauschen .................................................................................. 353
9.8.1 Beispieldatenbank: Aufbau ............................................................................... 353
9.8.2 Beispieldatenbank: Verbindung herstellen .................................................. 354
9.8.3 SQL-Befehle ............................................................................................................. 355
9.8.4 Beispieldatenbank: Auswahlabfrage .............................................................. 355
9.8.5 Beispieldatenbank: Aktionsabfrage ................................................................ 358
9.8.6 SQL: Auswahlabfragen mit SELECT ................................................................. 359
9.8.7 SQL: Operatoren .................................................................................................... 361
9.8.8 SQL: Abfrageergebnis sortieren ........................................................................ 363
9.8.9 SQL: Nach Eingabe über Auswahlabfragen suchen ................................... 364
9.8.10 SQL: Mit UPDATE über Aktionsabfragen ändern ........................................ 365
9.8.11 SQL: Mit INSERT über Aktionsabfrage Datensätze einfügen ................. 367
9.8.12 SQL: Mit DELETE über Aktionsabfrage Datensätze löschen .................... 368
10 Dialogfelder 369
10.1 Integrierte Dialogfelder ........................................................................................................ 369
10.1.1 Datei öffnen ............................................................................................................ 370
10.1.2 Datei speichern unter .......................................................................................... 371
10.1.3 Hintergrundmuster für Zellbereich auswählen .......................................... 371
10.1.4 Schriftformatierung für Zellbereich auswählen ......................................... 372
10.2 Eigene Dialogfelder und Anwendungen ....................................................................... 373
10.2.1 Erstes Beispiel ......................................................................................................... 373
10.2.2 Erstes Beispiel: Gestaltung ................................................................................ 374
10.2.3 Erstes Beispiel: Code ............................................................................................. 375
10.2.4 Erstes Beispiel starten .......................................................................................... 376
10.2.5 Mit Steuerelementen arbeiten ......................................................................... 378
10.2.6 Textfeld und Bezeichnungsfeld ........................................................................ 379
10.2.7 Optionsschaltflächen und Kontrollkästchen ............................................... 381
10.2.8 Liste, Bildlaufleiste und Drehfeld ..................................................................... 385
10.2.9 Ausgabeformatierung ......................................................................................... 388
10.2.10 RefEdit und Umschaltfeld .................................................................................. 390
3962.book Seite 13 Dienstag, 24. November 2015 3:53 15
Inhalt
14
11 Beispielprojekte 393
11.1 Memory ....................................................................................................................................... 393
11.1.1 Spielablauf ............................................................................................................... 393
11.1.2 Aufbau des Spielfeldes ........................................................................................ 395
11.1.3 Spiel starten ............................................................................................................ 396
11.1.4 Spiel bedienen ........................................................................................................ 399
11.2 Snake ............................................................................................................................................ 403
11.2.1 Spielablauf ............................................................................................................... 403
11.2.2 Aufbau des Spielfeldes ........................................................................................ 405
11.2.3 Spiel starten ............................................................................................................ 406
11.2.4 Spiel bedienen ........................................................................................................ 410
11.3 Vokabeln ..................................................................................................................................... 412
11.3.1 Programmablauf ................................................................................................... 412
11.3.2 Aufbau der Vokabelsammlung ......................................................................... 414
11.3.3 Spiel starten ............................................................................................................ 415
Anhang 421
A Lösungen der Übungsaufgaben ........................................................................................ 421
B Der Autor ..................................................................................................................................... 431
Index ............................................................................................................................................................... 433
3962.book Seite 14 Dienstag, 24. November 2015 3:53 15
Index
433
Index
- (minus) ....................................................................... 113
^ (Potenzierung)........................................................ 115
_ (Platzhalter) ............................................................. 362
_ (Zeile zerlegen) ................................................ 65, 103
:= (benannter Parameter) ............................... 61, 175
! (Formatierung) ........................................................ 390
? (Platzhalter).................................................... 117, 313
. (nach Objektname) ................................................ 102
@ (Formatierung)........................................... 290, 390
* (Multiplikation) ...................................................... 113
* (Platzhalter) .................................................... 117, 313
/ (Division)................................................................... 113
& (Verkettung) .................................................... 44, 120
% (Platzhalter) ............................................................ 362
+ (plus)................................................................. 113, 265
< (kleiner) ..................................................................... 117
in SQL ........................................................................ 361
<= (kleiner oder gleich) ........................................... 117
in SQL ........................................................................ 361
<> (ungleich) ............................................................... 117
in SQL ........................................................................ 361
= (gleich) ....................................................................... 117
in SQL ........................................................................ 361
> (größer)...................................................................... 117
in SQL ........................................................................ 361
>= (größer oder gleich) ........................................... 117
in SQL ........................................................................ 361
A
Abfrage
Aktions- (SQL) ........................................................ 355
Auswahl- (SQL) ...................................................... 355
Ergebnis filtern (SQL) .......................................... 360
Ergebnis sortieren (SQL) .................................... 363
Abfrage (SQL) .............................................................. 355
Abfrageergebnis filtern (SQL) .............................. 360
Abläufe
parallele ................................................................... 410
AbortRetryIgnore ..................................................... 264
Absatz erzeugen (Word) ......................................... 323
Absolute Aufzeichnung ........................................... 38
Access
ADO-Bibliothek ..................................................... 354
Datenaustausch ................................................... 353
Verbindung herstellen ....................................... 354
Activate()
Worksheets ................................................................ 63
ActiveCell ................................................................. 35, 67
Address........................................................................ 70
ActiveChart ................................................................. 211
ActiveSheet ..................................................... 25, 35, 59
UsedRange................................................................. 86
ActiveWindow .............................................................. 64
DisplayGridlines ...................................................... 65
DisplayHeadings..................................................... 65
ActiveWorkbook ................................................... 35, 54
ActiveX-Objekt erstellen (Word) ........................ 323
Add()
Attachments (Outlook)...................................... 336
ChartObjects .......................................................... 213
Charts ....................................................................... 211
Collection ................................................................ 200
Documents (Word) .............................................. 323
Paragraphs (Word) .............................................. 323
SortFields.................................................................... 95
SparklineGroups................................................... 246
Tables (Word) ........................................................ 327
Workbooks................................................................. 51
Worksheets ................................................................ 60
AddColorScale()
FormatConditions ...................................... 242, 243
AddConnector()
Shapes ............................................................. 226, 231
AddDatabar()
FormatConditions ............................................... 240
AddIconSetCondition()
FormatConditions ............................................... 244
AddItem()
combo box .............................................................. 387
Addition ....................................................................... 113
AddLine()
Shapes ............................................................. 226, 229
AddNodes()
FreeformBuilder ................................................... 234
3962.book Seite 433 Dienstag, 24. November 2015 3:53 15
Index
434
Address ............................................................... 401, 411
Zellbereich.................................................................. 70
AddShape() .................................................................. 237
Shapes ............................................................. 226, 227
ADO-Bibliothek
Access ....................................................................... 354
ADODB
Connection (Access) ................................... 354, 357
Recordset (Access)....................................... 355, 357
After
Diagrammblatt..................................................... 211
Tabellenblatt............................................................. 61
Aktionsabfrage (SQL)......... 355, 358, 365, 367, 368
Aktivieren und selektieren ..................................... 36
Aktualisierungsabfrage (SQL) .............................. 365
Alle Zellen ............................................................... 63, 70
Alt + F11 ........................................................................... 31
And ....................................................................... 119, 316
AND (SQL) .................................................................... 361
Anführungszeichen
doppelte ...................................................................... 77
Anweisung in mehreren Zeilen .......................... 103
Anwendung unterbrechen ................................... 286
Anzeigefenster............................................................. 64
Apostroph............................................................... 24, 34
Append.......................................................................... 300
Application................................................. 50, 202, 257
Dialogs ............................................................ 335, 369
Documents (Word) .............................................. 325
GetNameSpace() (Outlook) .............................. 342
InputBox() ............................................................... 259
OnTime().................................................................. 202
Outlook .................................................................... 336
Path ........................................................................... 202
Quit() ......................................................................... 203
Quit() (Outlook) .................................................... 337
Run() .......................................................................... 185
ScreenUpdating .................................................... 282
Visible (Word) ........................................................ 323
Word................................................................. 320, 323
Apply()
Sort ............................................................................... 95
ApplyDataLabels()
Point ................................................................. 218, 225
Series ......................................................................... 218
AppointmentItem (Outlook)
Duration .................................................................. 348
GetRecurrencePattern() ..................................... 350
Location................................................................... 348
Outlook .................................................................... 348
Save() ........................................................................ 348
Start........................................................................... 348
Subject ...................................................................... 348
Arabic().......................................................................... 296
Arabische Ziffern ...................................................... 296
Arbeitsmappe ............................................................... 50
aktive ........................................................................... 54
aktivieren ................................................................... 55
Anzahl ......................................................................... 50
diese ............................................................................. 50
erzeugen ..................................................................... 51
ist gesichert ............................................................... 56
laufende Nummer .................................................. 57
Name .................................................................... 53, 57
öffnen .......................................................................... 52
Pfad .............................................................................. 57
schließen..................................................................... 52
speichern .................................................................... 56
wird geöffnet ............................................................ 96
wird geschlossen ..................................................... 96
Arbeitstage
berechnen ............................................................... 284
Array() ........................................................................... 159
As........................................................ 107, 167, 181, 194
Dateinummer ........................................................ 300
New................................................................... 196, 201
ASC (SQL)...................................................................... 363
Asc()................................................................................ 402
Attachment (Outlook) ............................................ 345
Attachments
Add() (Outlook) ..................................................... 336
Count (Outlook).................................................... 345
MailItem (Outlook) ............................................. 336
Auflistung................................................................ 50, 59
durchlaufen............................................................ 198
eigene ....................................................................... 200
Aufruf
zeitverzögerter ...................................................... 202
Aufzeichnung
absolute ...................................................................... 38
beenden ...................................................................... 22
beginnen..................................................................... 21
relative ........................................................................ 37
Ausgabe formatieren .............................................. 273
Ausgabe-Dialog ......................................................... 263
Auskommentieren................................................... 102
3962.book Seite 434 Dienstag, 24. November 2015 3:53 15
Index
435
Auswahlabfrage (SQL) ................................... 355, 360
Auswertungsreihenfolge ............................. 116, 122
AutoFilter()
Range ........................................................................ 204
AutoFit
Columns/Rows ......................................................... 86
Axes................................................................................ 217
Axes()
Chart ......................................................................... 217
Axis................................................................................. 217
AxisTitle ................................................................... 217
HasTitle .................................................................... 217
MaximumScale..................................................... 217
MinimumScale ...................................................... 217
TickLabels................................................................ 217
AxisTitle ....................................................................... 217
B
BackColor
text box .................................................................... 386
Balkendiagramm ...................................................... 212
BarColor
FormatConditions ............................................... 241
bas ................................................................................... 186
Bcc
MailItem (Outlook) ............................................. 338
Bearbeitungsmodus .................................................. 37
Bedingte Formatierung.......................................... 240
Bedingung ................................................................... 123
Before
Diagrammblatt..................................................... 211
Tabellenblatt............................................................. 61
BeginConnect()
ConnectorFormat ................................................ 232
Benannter Parameter ...................................... 61, 173
Benutzer ......................................................................... 18
-definierter Datentyp....................... 179, 298, 306
-eingabe ................................................................... 257
-führung................................................................... 369
Bereich auswählen ..................................................... 35
Bezeichnungsfeld ..................................................... 379
Beziehung darstellen .............................................. 250
Bildlaufleiste............................................................... 385
Eigenschaften ........................................................ 387
Bildschirmaktualisierung ein/aus ..................... 282
Bin2…()........................................................................... 289
Binär .............................................................................. 289
Blatt, Tabelle und Diagramm............................... 210
Blau ................................................................................ 111
Body
MailItem (Outlook) ............................................. 336
Bold
Font .............................................................................. 79
Boolean............................................................... 105, 116
Border
Legend ...................................................................... 217
Point.......................................................................... 218
Series ......................................................................... 218
Borders
Color............................................................................. 82
InsideLineStyle (Word) ....................................... 327
LineStyle ..................................................................... 82
OutsideLineStyle (Word) ................................... 327
Range ........................................................................... 82
Table (Word) .......................................................... 327
Weight ......................................................................... 82
Breakpoint................................................................... 145
Bubble Sort.................................................................. 153
BuildFreeform()
Shapes ............................................................. 226, 233
ByRef.............................................................................. 167
ByVal.............................................................................. 165
C
Cancel ............................................................................... 98
Caption
Steuerelement ....................................................... 375
Carriage Return ............................................................ 44
Case Else ....................................................................... 126
CDate() ................................................................ 259, 273
CDbl()................................................................... 259, 273
Cell
Table (Word) .......................................................... 329
Cells ............................................................................ 63, 70
Delete........................................................................... 87
Cells (Word) ................................................................. 320
CenterFooter ................................................................. 67
CenterHeader ................................................................ 67
CenterHorizontally..................................................... 67
CenterVertically ........................................................... 67
Characters
Range ........................................................................... 80
TextFrame............................................................... 229
3962.book Seite 435 Dienstag, 24. November 2015 3:53 15
Index
436
Chart .................................................................... 211, 212
Axes() ........................................................................ 217
ChartArea................................................................ 217
ChartTitle ................................................................ 217
ChartType....................................................... 212, 214
HasLegend .............................................................. 217
HasTitle .................................................................... 217
Legend ...................................................................... 217
Name......................................................................... 212
PlotArea ................................................................... 217
SeriesCollection().................................................. 218
SetSourceData() ........................................... 212, 214
ChartArea
Chart ......................................................................... 217
Interior ..................................................................... 217
ChartObject ................................................................. 212
Copy()........................................................................ 222
Delete() ..................................................................... 222
Export() .................................................................... 223
Height ....................................................................... 219
Left ............................................................................. 219
Top ............................................................................. 219
Width ........................................................................ 219
ChartObjects ............................................................... 212
Add() .......................................................................... 213
Charts ............................................................................ 210
Add() .......................................................................... 211
Copy()........................................................................ 220
Delete() ..................................................................... 220
Export() .................................................................... 221
Charts(Index).............................................................. 215
ChartTitle
Chart ......................................................................... 217
Text ............................................................................ 217
ChartType
Chart ................................................................ 212, 214
Check box .................................................................... 381
Value ......................................................................... 383
CInt() .............................................................................. 402
Clear()
Range ........................................................................... 73
SortFields .................................................................... 95
ClearContents()
Range ........................................................................... 73
ClearFormats()
Range ........................................................................... 73
Close............................................................................... 300
Datei.......................................................................... 302
Close()
Connection (Access) ................................... 354, 358
Recordset (Access) ............................................... 358
Workbooks................................................................. 52
Code-ansicht .................................................................... 376
exportieren .................................................... 186, 377
-fenster ........................................................................ 33
importieren ................................................... 187, 377
-modul ......................................................................... 32
selbst schreiben ....................................................... 41
Codefenster.................................................................... 95
Collection..................................................................... 200
ColorBorders ........................................................................ 82
Font .............................................................................. 79
Interior ........................................................................ 83
ColorScale .................................................................... 242
ColorScaleCriteria..................................................... 242
ColorScaleType .......................................................... 242
ColumnRange ........................................................................... 89
ColumnsAutoFit ........................................................................ 86
Count (Word) ......................................................... 329
Range ........................................................................... 86
Table (Word) .......................................................... 329
ColumnWidthRange ........................................................................... 86
Combo box.................................................................. 385
AddItem() ................................................................ 387
Change ..................................................................... 387
List(Index) ............................................................... 387
ListIndex .................................................................. 387
Style ........................................................................... 387
Text............................................................................ 387
Comma separated Values ..................................... 302
Connection (Access)ADODB ............................................................ 354, 357
Close() .............................................................. 354, 358
ConnectionString ........................................ 354, 357
Execute() ......................................................... 357, 359
Open() .............................................................. 354, 357
ConnectionStringConnection (Access) ................................... 354, 357
ConnectorFormatBeginConnect() ..................................................... 232
EndConnect() ......................................................... 232
Shapes ...................................................................... 232
3962.book Seite 436 Dienstag, 24. November 2015 3:53 15
Index
437
ContactItem (Outlook) ........................................... 347
Email1Address ....................................................... 347
FirstName................................................................ 347
LastName ................................................................ 347
Save()......................................................................... 346
Convert()
WorksheetFunction ............................................. 287
ConvertToShape()
FreeformBuilder.................................................... 234
Copy()
ChartObject ............................................................ 222
Charts ....................................................................... 220
Range .................................................................... 35, 71
Worksheets ................................................................ 60
Count
Attachments (Outlook) ...................................... 345
Collection ................................................................ 200
Columns (Word).................................................... 329
Items (Outlook) ..................................................... 342
Range ........................................................................... 88
Rows (Word) ........................................................... 329
Shapes ...................................................................... 226
Workbooks................................................................. 50
Count()
WorksheetFunction ............................................. 290
CountBlank()
WorksheetFunction ............................................. 290
CreateItem() (Outlook) ........................................... 331
AppointmentItem ................................................ 348
ContactItem ........................................................... 346
MailItem .................................................................. 336
CreateObject()
Outlook ........................................................... 331, 336
Word................................................................. 320, 323
Critical-Zeichen ......................................................... 264
CSV-Datei ........................................................... 297, 302
lesen .......................................................................... 304
schreiben ................................................................. 303
Cut()
Range ............................................................. 25, 35, 71
Cyan ............................................................................... 111
D
DashStyle
Line ............................................................................ 229
Databar ......................................................................... 240
DataLabel
NumberFormatLocal .......................................... 225
Point.......................................................................... 225
Date ................................................................................ 105
DateAdd() ..................................................................... 278
DateDiff() ..................................................................... 279
Datei
Änderungsdatum................................................. 315
Attribut .................................................................... 316
Ende........................................................................... 302
Export ....................................................................... 297
Funktionen ............................................................. 312
geöffnete .............................................. 395, 405, 414
Größe in Byte ......................................................... 310
Import ...................................................................... 297
Information über ................................................. 314
kopieren ................................................................... 317
löschen ..................................................................... 317
Menü ............................................................................ 25
öffnen .............................................................. 300, 302
Öffnen-Dialog ....................................................... 370
Operation ................................................................ 316
schließen......................................................... 300, 302
Speichern-Dialog.................................................. 371
suchen ...................................................................... 312
umbenennen.......................................................... 317
verschieben............................................................. 317
Zeile lesen................................................................ 302
Zeile schreiben....................................................... 300
Dateiendung
bas.............................................................................. 186
doc ............................................................................. 321
docx ........................................................................... 321
frm .................................................................... 186, 378
frx ...................................................................... 186, 378
gif ............................................................................... 221
jpg .............................................................................. 221
png ............................................................................. 221
xls .................................................................................. 45
xlsb ............................................................................... 40
xlsm .............................................................................. 26
xlsx ............................................................................... 25
Dateityp ändern ........................................................... 46
Datenaustausch ........................................................ 297
Outlook .................................................................... 331
Word ......................................................................... 320
Datenbalken
bedingte Formatierung ..................................... 240
3962.book Seite 437 Dienstag, 24. November 2015 3:53 15
Index
438
Datenbank
relationale .............................................................. 353
Datenfeld ..................................................................... 150
als Parameter ........................................................ 177
dynamisches .......................................................... 157
eindimensionales ................................................. 150
löschen ..................................................................... 159
mehrdimensionales ............................................ 154
Obergrenze .................................................... 176, 177
sortieren................................................................... 153
statisches................................................................. 150
umwandeln ............................................................ 276
Untergrenze ........................................................... 177
von Objekten.......................................................... 229
Datenquelle für Diagramm ........................ 212, 214
Datensatz
Access ....................................................................... 355
beliebig lesen ......................................................... 309
beliebig schreiben ................................................ 311
lesen .......................................................................... 310
schreiben ................................................................. 308
Datentyp ............................................................ 104, 105
benutzerdefinierter ............................................. 179
einer Funktion ....................................................... 167
erkennen .................................................................. 108
Genauigkeit ............................................................ 107
DateSerial() .................................................................. 280
Datum
Datentyp.................................................................. 105
Datum und Zeit
Datumsangabe erstellen................................... 280
erkennen .................................................................. 273
Jahr ermitteln ........................................................ 282
letzter Tag im Monat.......................................... 281
Monat ermitteln ................................................... 282
Tag im Monat ermitteln.................................... 281
umwandeln ............................................................ 273
Wochentag ermitteln ......................................... 280
Zeit addieren .......................................................... 278
Zeitdifferenz berechnen..................................... 279
Datumsfilter ............................................................... 207
Day() ............................................................................... 281
DayofWeekMask
RecurrencePattern (Outlook) .......................... 350
Debug .................................................................. 140, 143
Debug.Print ................................................................... 44
Dec2…() .......................................................................... 289
Default-Schaltfläche ................................................ 264
Deklaration ................................................................. 104
erforderlich ...................................................... 31, 105
DELETE (SQL) .................................................... 355, 368
Delete()
Cells .............................................................................. 87
ChartObject ............................................................ 222
Charts ....................................................................... 220
EntireRow/EntireColumn .................................... 85
FormatConditions ............................................... 240
Range ........................................................................... 85
Worksheets ................................................................ 62
DESC (SQL) ................................................................... 363
Description Err .......................................................... 142
Destination Range....................................................... 71
Dezimal......................................................................... 289
Dezimalpunkt ............................................................ 107
Diagramm ................................................................... 209
Achse......................................................................... 217
als Blatt erstellen ................................................. 210
ändern ...................................................................... 214
Datenpunkt ............................................................ 218
Datenquelle ................................................... 212, 214
Datenreihe .............................................................. 218
Datenreihenbeschriftung ................................. 225
Datenreihenbeschriftungsformat ................. 225
Diagrammfläche .................................................. 217
Diagrammtyp ....................................................... 225
eingebettetes ......................................................... 212
eingebettetes (ändern) ....................................... 219
eingebettetes (exportieren).............................. 223
eingebettetes (kopieren).................................... 222
eingebettetes (löschen) ...................................... 222
erstellen ................................................................... 210
hat Legende ............................................................ 217
hat Titel.................................................................... 217
Legende .................................................................... 217
nach Spalten/Zeilen ............................................ 212
Titel............................................................................ 217
Typ ............................................................................. 214
Zeichnungsfläche ................................................. 217
Diagrammblatt .......................................................... 210
ändern ...................................................................... 214
benennen................................................................. 212
exportieren ............................................................. 221
kopieren ................................................................... 220
löschen ..................................................................... 220
3962.book Seite 438 Dienstag, 24. November 2015 3:53 15
Index
439
Diagrammrahmen ................................................... 212
Größe ........................................................................ 219
neu erzeugen ......................................................... 213
Position .................................................................... 219
Dialogfeld..................................................................... 369
anzeigen .................................................................. 377
eigenes............................................................... 33, 373
einfaches ................................................................. 263
erzeugen .................................................................. 374
initialisieren ........................................................... 383
integriertes ............................................................. 369
Makro .......................................................................... 23
Makro aufzeichnen ................................................ 40
modales ................................................................... 377
schließen.................................................................. 376
Speichern unter........................................................ 25
Start aus Tabellenblatt ...................................... 376
Dialogs
Application .................................................... 335, 369
Show() .............................................................. 335, 369
DieseArbeitsmappe
Modul .......................................................................... 33
Dim................................................................................. 107
Dir() ................................................................................ 312
Direktfenster ....................................................... 44, 144
Display()
MailItem (Outlook) ............................................. 336
DisplayGridlines
ActiveWindow .......................................................... 65
DisplayHeadings
ActiveWindow .......................................................... 65
Division ........................................................................ 113
durch 0 ..................................................................... 140
Rest ............................................................................ 114
Do Until ........................................................................ 132
Do While ....................................................................... 132
doc .................................................................................. 321
Documents (Word)................................................... 320
Add() .......................................................................... 323
Application ............................................................. 325
Open() ....................................................................... 325
Paragraphs ............................................................. 325
SaveAs().................................................................... 323
Tables........................................................................ 329
docx................................................................................ 321
DoEvents() ......................................................... 287, 410
Dokument (Word)
erzeugen .................................................................. 323
speichern ................................................................. 323
Double........................................................................... 105
Drehfeld........................................................................ 385
Seiteneinrichtung ................................................... 65
Duration
AppointmentItem (Outlook) ........................... 348
E
Eigenschaft..................................................................... 49
Einfügeabfrage (SQL)............................................... 367
Eingabe des Benutzers............................................ 257
Einheit umrechnen.................................................. 287
Einrückung.................................................................. 102
Einzelschrittverfahren ........................................... 143
Else.................................................................................. 123
ElseIf............................................................................... 124
E-Mail (Outlook)
Anhang ........................................................... 336, 345
Anzahl Anhänge................................................... 345
anzeigen .................................................................. 336
Betreff ....................................................................... 336
Dialogfeld anzeigen ............................................ 334
einfaches Senden ................................................. 332
Empfänger ..................................................... 333, 336
erzeugen ......................................................... 335, 336
Inhalt ........................................................................ 336
Kopieempfänger .................................................. 338
senden ...................................................................... 336
Serie erzeugen ....................................................... 337
Zellbereich senden ............................................... 339
Email1Address
ContactItem ........................................................... 347
Empty ............................................................................ 197
EncodeURL() ............................................................... 292
End Enum .................................................................... 111
End If.............................................................................. 124
End Select..................................................................... 126
End Sub ........................................................... 24, 35, 162
End Type....................................................................... 180
End With....................................................................... 192
EndConnect()
ConnectorFormat ................................................ 232
3962.book Seite 439 Dienstag, 24. November 2015 3:53 15
Index
440
Endung
bas.............................................................................. 186
doc ............................................................................. 321
docx ........................................................................... 321
frm .................................................................... 186, 378
frx ...................................................................... 186, 378
gif ............................................................................... 221
jpg .............................................................................. 221
png ............................................................................. 221
xls .................................................................................. 45
xlsb................................................................................ 40
xlsm .............................................................................. 26
xlsx................................................................................ 25
EntireColumn
Insert() ......................................................................... 84
Range .................................................................... 84, 85
EntireRow
Insert() ......................................................................... 84
Range .................................................................... 84, 85
Entwickler ...................................................................... 18
Entwicklung einer Anwendung .......................... 137
Entwicklungsumgebung ......................................... 31
Enum ............................................................................. 111
Enumeration .................................................... 110, 150
vordefiniert............................................................. 112
EOF
Recordset (Access)................................................ 357
EOF()............................................................................... 302
EoMonth()
WorksheetFunction ............................................. 281
Erase ............................................................................... 159
Ereignis .................................................................... 49, 95
Ereignisprozedur ............................................... 95, 375
Err.................................................................................... 142
Excel
Datei............................................................................. 50
eigene Funktion ........................................... 161, 168
schließen.................................................................. 203
vor 2007...................................................................... 45
Excel-Optionen............................................................ 28
Exclamation-Zeichen .............................................. 264
Execute()
Connection (Access) ................................... 357, 359
Exit Do................................................................. 132, 135
Exit For.......................................................................... 128
Exit Function .............................................................. 167
Exit Sub ............................................................... 143, 162
Export
in Textdatei ............................................................ 298
Word ................................................................ 321, 325
Export()
ChartObject ............................................................ 223
Charts ....................................................................... 221
Externe Daten ............................................................ 297
F
F1............................................................................ 101, 195
F2 ..................................................................................... 189
F5 .................................................................... 33, 145, 376
F8 ..................................................................................... 143
F9..................................................................................... 145
False ..................................................................... 105, 116
Farbe ....................................................................... 80, 111
Farbskala
bedingte Formatierung ............................ 241, 242
Fehler
-behandlung........................................................... 137
logischer .................................................................. 143
-objekt ...................................................................... 142
vermindern ................................................................ 32
Feld von Variablen ................................................... 150
Fenster »Eigenschaften« ...................... 32, 374, 378
FileCopy() ........................................................... 317, 319
FileDateTime() ........................................................... 315
FileLen() ........................................................................ 310
Fill
ForeColor................................................................. 227
Shape ........................................................................ 227
Filter ............................................................................... 203
mehrere Kategorien ............................................ 206
mit Platzhalter ...................................................... 207
mit Vergleich ......................................................... 205
über zwei Spalten................................................. 206
verknüpfter............................................................. 205
FilterXML() .................................................................. 293
FirstName
ContactItem (Outlook) ...................................... 347
FitToPagesTall
PageSetup .................................................................. 67
FitToPagesWide
PageSetup .................................................................. 67
fmOrientationHorizontal ..................................... 387
fmOrientationVertical............................................ 388
3962.book Seite 440 Dienstag, 24. November 2015 3:53 15
Index
441
fmSpecialEffectSunken .......................................... 388
fmStyleDropDownList............................................ 387
Folder (Outlook) ........................................................ 342
Items ......................................................................... 342
FontBold............................................................................... 79
Color ............................................................................. 79
Italic ............................................................................. 79
Name............................................................................ 79
Range ........................................................................... 79
Size ................................................................................ 79
Subscript ..................................................................... 81
Superscript................................................................. 81
Underline.................................................................... 79
For Each ........................................................................ 198
For Next .............................................................. 128, 151
ForeColorFill............................................................................... 227
Line ............................................................................ 228
Format() .............................................................. 273, 388
FormatColorColorScaleCriteria ................................................ 242
FormatConditions .................................................... 240
Formatierung ............................................................. 273
bedingte ................................................................... 240
schachteln ............................................................... 390
FormelEingabe .................................................................... 261
lesen .......................................................................... 256
prüfen ....................................................................... 256
zuweisen .................................................................. 255
Formula ........................................................................ 255
FormulaLocal.............................................................. 255
Range ................................................................. 74, 253
FormulaR1C1 ............................................................... 255
FormulaR1C1Local..................................................... 256
Frame............................................................................. 381
FreeformBuilderAddNodes() ............................................................. 234
ConvertToShape() ................................................ 234
Freiform.............................................................. 226, 232
Knoten hinzufügen ............................................. 234
umwandeln ............................................................ 234
FRM ...................................................................... 186, 378
FRX........................................................................ 186, 378
Function ....................................................................... 167
Funktion .................................................... 161, 167, 253
aufrufen ................................................................... 167
aufrufen in anderer Datei................................. 182
G
Ganze Zahl ................................................................... 105
Ganzzahldivision...................................................... 114
Gelb ................................................................................ 111
Genauigkeit................................................................. 107
Geschachteltes With................................................ 193
Gesendete Objekte
Outlook .................................................................... 341
Get .................................................................................. 310
GetAttr() ....................................................................... 316
GetDefaultFolder()
Namespace (Outlook) ............................... 331, 342
GetNameSpace()
Application (Outlook) ............................... 331, 342
GetRecurrencePattern()
AppointmentItem (Outlook) ........................... 350
GIF................................................................................... 221
Gleich ............................................................................ 117
SQL ............................................................................. 361
Gleitkommazahl ....................................................... 105
GoTo............................................................................... 142
Größer als .................................................................... 117
SQL ............................................................................. 361
GroupItems
Shape ........................................................................ 251
Grün ............................................................................... 111
Gültigkeitsbereich.............. 104, 147, 164, 397, 407
benutzerdefinierter Datentyp ......................... 181
Prozedur/Funktion.............................................. 183
H
Haltepunkt .................................................................. 145
HasLegend
Chart ......................................................................... 217
HasTitle
Axis ............................................................................ 217
Chart ......................................................................... 217
Height
ChartObject ............................................................ 219
Steuerelement ....................................................... 378
Hex2…() ......................................................................... 289
Hexadezimal .............................................................. 289
Hierarchie darstellen .............................................. 250
Hilfe...................................................................... 101, 190
Hochformat ................................................................... 66
3962.book Seite 441 Dienstag, 24. November 2015 3:53 15
Index
442
Hochstellen ................................................................... 81
HorizontalAlignment
Range ........................................................................... 78
HTML-Datei
lesen .......................................................................... 329
I
IconCriteria
FormatConditions ............................................... 244
IconSet
FormatConditions ............................................... 244
IconSetCondition...................................................... 244
If
Block.......................................................................... 124
einzeiliges................................................................ 123
Import
aus Textdatei ......................................................... 300
Word................................................................. 323, 327
In ..................................................................................... 198
Index
Charts ....................................................................... 215
Datenfeld................................................................. 151
eindeutiger (Access) ............................................ 353
Items (Outlook) ..................................................... 342
Points ........................................................................ 218
SeriesCollection .................................................... 218
Shapes ...................................................................... 226
Workbooks................................................................. 57
Worksheets ................................................................ 59
Information-Zeichen............................................... 264
Innenbereich ................................................................ 83
InputBox()
Application ............................................................. 259
einfache ................................................................... 258
INSERT (SQL) ..................................................... 355, 367
Insert()
EntireRow/EntireColumn .................................... 84
Range ........................................................................... 83
InsideLineStyle
Borders (Word) ...................................................... 327
InStr()............................................................................. 271
Integer ........................................................................... 105
Integriert
Dialogfeld................................................................ 369
Konstante................................................................ 110
Interior
ChartArea................................................................ 217
Color............................................................................. 83
Legend ...................................................................... 217
PlotArea ................................................................... 217
Range ........................................................................... 83
Internetseite
lesen .......................................................................... 329
Is ...................................................................................... 126
IsDate().......................................................................... 273
IsFormula() .................................................................. 256
IsNumeric() ................................................................. 273
IsoWeekNum() ........................................................... 283
Italic
Font .............................................................................. 79
Items (Outlook) ......................................................... 332
Count ........................................................................ 342
Folder ........................................................................ 342
Index ......................................................................... 342
J
Jahreskalender ........................................................... 281
Join()..................................................................... 276, 303
JPG .................................................................................. 221
K
Kalenderwoche.......................................................... 283
Key1
Sortierschlüssel ........................................................ 93
Kill() ................................................................................ 317
Klammerausdruck ......................................... 116, 122
Klassenmodul ........................................................ 33, 95
Kleiner als .................................................................... 117
SQL ............................................................................. 361
Kombinationsfeld .................................................... 385
aktuelles Element................................................. 387
Auswahl wechselt ................................................ 387
Elementnummer .................................................. 387
füllen ......................................................................... 387
Text des aktuellen Elements ............................ 387
Kommentar .................................................. 24, 34, 102
Kompatibilitätsprüfung ........................................... 46
Komponente .............................................................. 179
Konstante .......................................................... 109, 150
integrierte ............................................................... 110
3962.book Seite 442 Dienstag, 24. November 2015 3:53 15
Index
443
Kontakt
erzeugen (Outlook).............................................. 345
speichern (Outlook)............................................. 346
Kontrollausgabe.......................................................... 41
Kontrollkästchen ...................................................... 381
Kontrollstruktur ............................................. 123, 127
Korrektur
automatische ........................................................ 102
Kreisdiagramm.......................................................... 212
L
Label ............................................................................... 379
SpecialEffect ........................................................... 388
Large()............................................................................ 294
LargeChange
ScrollBar .................................................................. 387
LastName
ContactItem (Outlook)....................................... 347
Laufzeitfehler ............................................................. 139
lbl..................................................................................... 380
LBound() ....................................................................... 177
Leerzeile........................................................................ 101
Left
ChartObject ............................................................ 219
Steuerelement ....................................................... 378
Left() ............................................................................... 271
LeftFooter
PageSetup .................................................................. 67
LeftHeader, PageSetup ............................................. 67
Legend
Border ....................................................................... 217
Chart ......................................................................... 217
Interior ..................................................................... 217
Len .................................................................................. 308
Len() ............................................................................... 271
Like ................................................................................. 117
LIKE (SQL)..................................................................... 362
Line
DashStyle ................................................................ 229
ForeColor ................................................................. 228
Shape ........................................................................ 228
TextFrame............................................................... 229
Weight ...................................................................... 228
Line Feed ........................................................................ 44
Line Input .................................................................... 302
LineStyle
Borders ........................................................................ 82
Linie ..................................................................... 226, 229
Liniendiagramm ....................................................... 212
Linksbündig ................................................................ 390
List box ......................................................................... 385
List(Index)
combo box .............................................................. 387
Listenfeld ..................................................................... 385
aktuelles Element................................................. 387
Auswahl wechselt ................................................ 387
Elementnummer .................................................. 387
füllen ......................................................................... 387
Text des aktuellen Elements ............................ 387
ListIndex
combo box .............................................................. 387
Location
AppointmentItem (Outlook) ........................... 348
Locked
text box.................................................................... 386
Logischer Fehler ........................................................ 143
Logischer Operator .................................................. 119
Lokale Variable .......................................................... 147
Long ............................................................................... 105
Loop ..................................................................... 132, 135
Loop Until.......................................................... 132, 135
Loop While ........................................................ 132, 134
Löschabfrage (SQL)................................................... 368
Lösungen ..................................................................... 421
M
Magenta........................................................................ 111
MailItem (Outlook) .................................................. 336
Attachments .......................................................... 336
Bcc .............................................................................. 338
Body .......................................................................... 336
Display() .................................................................. 336
Send() ........................................................................ 336
Subject ...................................................................... 336
To................................................................................ 336
Makro ............................................................................... 17
aktivieren ................................................................... 27
ansehen, vor Excel 2007....................................... 46
aufzeichnen............................................................... 20
aufzeichnen (Diagramm) ................................. 214
aufzeichnen, vor Excel 2007 ............................... 45
3962.book Seite 443 Dienstag, 24. November 2015 3:53 15
Index
444
ausführen ................................................................... 23
ausführen nicht möglich...................................... 27
ausführen per Schaltfläche ................................. 36
ausführen, vor Excel 2007 ................................... 46
deaktivieren .............................................................. 27
geht verloren............................................................. 26
Name..................................................................... 21, 23
Sicherheit, vor Excel 2007.................................... 47
speichern .................................................................... 25
speichern, vor Excel 2007 .................................... 46
überall benutzen ..................................................... 39
Verzeichnis aktivieren........................................... 29
zuweisen ..................................................................... 36
Makrocode
ansehen....................................................................... 23
verändern ................................................................... 34
verstehen .................................................................... 34
Makrosicherheit.......................................................... 26
Schaltfläche ............................................................... 29
MarkerBackgroundColor
Point .......................................................................... 218
Series ......................................................................... 218
MarkerForegroundColor
Point .......................................................................... 218
Series ......................................................................... 218
MarkerStyle
Point .......................................................................... 218
Series ......................................................................... 218
Max
ScrollBar .................................................................. 387
Max().............................................................................. 294
MaximumScale
Axis ............................................................................ 217
Me ................................................................................... 376
Mehrfachauswahl ..................................................... 126
Memory ........................................................................ 393
MergeCells ......................................................... 396, 406
Range ........................................................................... 78
Methode ................................................................ 49, 162
Microsoft Developer Network ............................. 101
Mid()..................................................................... 271, 402
Min
ScrollBar .................................................................. 387
Min()............................................................................... 294
Minidiagramm .......................................................... 246
MinimumScale
Axis ............................................................................ 217
MkDir() .......................................................................... 319
Mod ................................................................................ 114
modales Dialogfeld .................................................. 377
Modul
DieseArbeitsmappe ................................................ 33
einfügen...................................................................... 32
exportieren .................................................... 186, 377
importieren ................................................... 187, 377
löschen ..................................................................... 187
Tabelle1 ....................................................................... 33
Modularisierung ............................................. 161, 182
Modulo ......................................................................... 114
modulweite Variable............................................... 147
Month()......................................................................... 282
Move()
Worksheets ................................................................ 62
MoveNext()
Recordset (Access) ............................................... 357
MRound() ..................................................................... 295
MSDN ............................................................................ 101
MsgBox() ..................................................... 43, 138, 263
msoAutoShapeType ................................................ 227
msoConnectorStraight........................................... 232
msoConnectorType ................................................. 232
msoEditingAuto........................................................ 233
msoEditingType........................................................ 233
msoLineDash ............................................................. 229
msoLineDashStyle ................................................... 229
msoSegmentCurve .................................................. 234
msoSegmentLine...................................................... 234
msoSegmentType .................................................... 234
msoShapeOval........................................................... 228
msoShapeRectangle ................................................ 227
Multiplikation............................................................ 113
Mustervergleich ........................................................ 117
N
Nachrichtenbox ........................................................... 43
Name
Chart ......................................................................... 212
Font .............................................................................. 79
von Variablen ........................................................ 104
Workbook .................................................................. 53
Name()........................................................................... 319
Datei umbenennen ............................................. 317
Namensraum
Outlook .................................................................... 342
3962.book Seite 444 Dienstag, 24. November 2015 3:53 15
Index
445
Namespace
GetDefaultFolder() (Outlook) .......................... 342
NetworkDays_Intl() ................................................. 284
NetworkDays() ........................................................... 284
New................................................................................. 196
Next...................................................................... 128, 198
Nicht
logisches .................................................................. 119
logisches (SQL) ...................................................... 361
Nordwind.mdb .......................................................... 204
Not .................................................................................. 119
NOT (SQL)..................................................................... 361
Nothing......................................................................... 195
Now() ............................................................................. 203
NumberFormatLocal............................................... 290
DataLabel................................................................ 225
Range ........................................................................... 76
TickLabels................................................................ 217
O
Object .................................................................. 105, 194
Objekt
allgemeines ............................................................ 189
-ansicht .................................................................... 376
Grundlagen ............................................................... 49
Haupt- ......................................................................... 50
kurzer Zugriff ......................................................... 192
neu erzeugen ................................................ 196, 201
referenzieren .......................................................... 191
Typ ermitteln ......................................................... 197
Verweis ..................................................................... 194
Objektbibliothek
Access ....................................................................... 354
Outlook .................................................................... 332
Word.......................................................................... 320
Objekthierarchie ............................... 49, 64, 191, 202
Outlook .................................................................... 331
Word.......................................................................... 320
Objektkatalog ............................................................. 189
Objektmodellreferenz ............................................ 190
Objektorientierung .................................................... 49
Objektvariable............................................................ 194
Oct2…()........................................................................... 289
Oder
logisches .................................................................. 119
logisches (SQL) ...................................................... 361
Office-Schaltfläche ...................................................... 25
Offset ................................................................................ 39
Range ........................................................................... 90
Oktal............................................................................... 289
olContactItem ............................................................ 346
olFolderContacts....................................................... 347
olFolderSentMail ...................................................... 342
olMonday .................................................................... 350
olRecursDaily ............................................................. 350
olRecursMonthly ...................................................... 350
olRecursWeekly......................................................... 350
olTuesday..................................................................... 350
On Error.............................................................. 139, 142
Online-Hilfe ................................................................ 190
OnTime()
Application ............................................................. 202
Open
Datei................................................................. 300, 302
Open()
Connection (Access) ................................... 354, 357
Documents (Word) .............................................. 325
Workbooks................................................................. 52
Operator ....................................................................... 112
arithmetischer....................................................... 113
logischer .................................................................. 119
Rangfolge ................................................................ 169
SQL ............................................................................. 361
Option Explicit ................................................... 32, 105
Optional ....................................................................... 171
Optionsschaltfläche ................................................ 381
voreinstellen .......................................................... 382
Or .......................................................................... 119, 265
OR (SQL)........................................................................ 361
ORDER BY (SQL)......................................................... 363
Order1
Sortierrichtung ........................................................ 93
Orientation
PageSetup .................................................................. 66
Range ........................................................................... 79
ScrollBar .................................................................. 387
SpinButton.............................................................. 388
Outlook
Application ............................................................. 336
AppointmentItem................................................ 348
Attachment ............................................................ 345
ContactItem ........................................................... 347
CreateItem() (AppointmentItem) .................. 348
CreateItem() (ContactItem) ............................. 346
3962.book Seite 445 Dienstag, 24. November 2015 3:53 15
Index
446
CreateItem() (MailItem) .................................... 336
Datenaustausch ................................................... 331
E-Mail erzeugen .................................................... 335
E-Mail finden ......................................................... 341
Folder ........................................................................ 342
Gesendete Objekte ............................................... 341
Kontakt erzeugen ................................................ 345
Kontakt finden ...................................................... 346
Kontakteigenschaft ............................................ 347
MailItem .................................................................. 336
Namensraum......................................................... 342
Objektbibliothek................................................... 332
Objekthierarchie................................................... 331
RecurrencePattern ............................................... 350
starten ...................................................................... 336
Termin erzeugen .................................................. 347
Termin(-serie) finden .......................................... 351
Termineigenschaft .............................................. 348
Terminserie erzeugen ......................................... 349
Terminwiederholung .......................................... 350
Verzeichnis ermitteln ......................................... 342
Verzeichniseintrag .............................................. 342
Zugriff erlauben/verweigern ........................... 333
Output
Datei schreiben ..................................................... 300
OutsideLineStyle
Borders (Word) ...................................................... 327
Oval ................................................................................ 228
P
PageSetup
CenterHorizontally ................................................ 67
CenterVertically....................................................... 67
FitToPagesTall.......................................................... 67
FitToPagesWide ....................................................... 67
Footer........................................................................... 67
Header ......................................................................... 67
Orientation ................................................................ 66
PrintGridlines ........................................................... 66
PrintHeadings .......................................................... 66
Worksheets ................................................................ 65
Zoom ............................................................................ 66
Paragraphs (Word).................................................... 320
Add() .......................................................................... 323
Documents ............................................................. 325
Range ........................................................................ 325
Parallele Aktionen .................................................... 287
ParamArray................................................................. 175
Parameter .................................................................... 162
beliebig viele .......................................................... 175
benannter ........................................................ 61, 173
ist Datenfeld........................................................... 177
optionaler ............................................................... 171
Übergabe ................................................................. 165
Paste() ........................................................................ 25, 35
PasteSpecial()
Range ........................................................................... 72
Path
Application ............................................................. 202
Workbook .................................................................. 57
PatternEndDate
RecurrencePattern (Outlook) .......................... 350
PatternStartDate
RecurrencePattern (Outlook) .......................... 350
Pause.............................................................................. 286
personal.xls.................................................................... 47
personal.xlsb ................................................................. 40
Persönliche Makroarbeitsmappe................... 40, 51
vor Excel 2007 .......................................................... 47
Perzentil ....................................................................... 243
Pfad
Installation............................................................. 202
Platzhalter
Dateiname .............................................................. 313
Zeichenkette........................................................... 117
Platzhalter (SQL)........................................................ 362
PlotArea
Chart ......................................................................... 217
Interior ..................................................................... 217
PNG ................................................................................ 221
Point .............................................................................. 218
ApplyDataLabels() ...................................... 218, 225
Border ....................................................................... 218
DataLabel ............................................................... 225
MarkerBackgroundColor .................................. 218
MarkerForegroundColor................................... 218
MarkerStyle ............................................................ 218
Points ............................................................................ 218
Index ......................................................................... 218
SparklineGroups................................................... 249
Points()
Series ......................................................................... 218
Potenzierung.............................................................. 115
Preserve ........................................................................ 157
Primärschlüssel
Tabelle (Access) ..................................................... 353
3962.book Seite 446 Dienstag, 24. November 2015 3:53 15
Index
447
Dateizeile schreiben ............................................ 300
PrintGridlines
PageSetup .................................................................. 66
PrintHeadings
PageSetup .................................................................. 66
Priorität der Operatoren ........................................ 121
Private Function........................................................ 183
Private Sub .................................................................. 183
Private Type ................................................................ 181
Programm
Abbruch ................................................................... 139
anhalten .................................................................. 145
unterbrechen ......................................................... 286
Programmierstil........................................................ 101
Programmzeile in mehreren Zeilen.................. 103
Projekt-Explorer.......................................................... 32
Projektweite Variable .............................................. 148
Prozedur ...................................................... 42, 161, 162
aufrufen ................................................................... 163
aufrufen in anderer Datei................................. 182
Name............................................................................ 42
Prozess darstellen..................................................... 250
Public ............................................................................. 148
Public Const ................................................................ 150
Public Enum ............................................................... 150
Public Type .................................................................. 181
Punkt nach Objektname ........................................ 102
Put................................................................................... 308
Q
Querformat ................................................................... 66
Question-Zeichen ..................................................... 264
Quit()
Application ............................................................. 203
Application (Outlook) ........................................ 337
R
Radio-Button .............................................................. 381
Value ......................................................................... 383
Rahmen ........................................................................ 381
Linienfarbe................................................................. 82
Linienstärke............................................................... 82
Linienstil ..................................................................... 82
Random ........................................................................ 308
Randomize .................................................................. 133
Randomize() ..................................................... 399, 410
Range .......................................................... 24, 35, 50, 68
Borders ........................................................................ 82
Cells .............................................................................. 71
Characters ................................................................. 80
Clear() .......................................................................... 73
ClearContents() ........................................................ 73
ClearFormats() ......................................................... 73
Column ....................................................................... 89
Columns ..................................................................... 86
ColumnWidth ........................................................... 86
Copy() .......................................................................... 71
Count ........................................................................... 88
Cut().............................................................................. 71
Delete() ........................................................................ 85
EntireColumn .................................................... 84, 85
EntireRow............................................................ 84, 85
Font .............................................................................. 79
FormulaLocal ................................................. 74, 253
HorizontalAlignment............................................ 78
Insert() ......................................................................... 83
Interior ........................................................................ 83
MergeCells ................................................................. 78
NumberFormatLocal ............................................. 76
Offset ........................................................................... 90
Orientation................................................................ 79
Paragraphs (Word) .............................................. 325
PasteSpecial() ........................................................... 72
Row ............................................................................... 89
RowHeight ................................................................. 86
Rows ............................................................................. 86
Select() ......................................................................... 70
Sort() ............................................................................ 92
SpecialCells() ............................................................. 88
Value .............................................................. 42, 71, 74
VerticalAlignment .................................................. 78
WrapText ................................................................... 78
Range (Word) .............................................................. 320
Rangfolge der Operatoren .......................... 121, 169
Rechteck ....................................................................... 226
Rechtsbündig ............................................................. 390
Recordset (Access)
ADODB ............................................................ 355, 357
Close() ....................................................................... 358
EOF............................................................................. 357
3962.book Seite 447 Dienstag, 24. November 2015 3:53 15
Index
448
Feld erreichen ........................................................ 357
MoveNext() ............................................................. 357
RecurrencePattern (Outlook)............................... 350
DayofWeekMask .................................................. 350
PatternEndDate .................................................... 350
PatternStartDate.................................................. 350
RecurrenceType .................................................... 350
RecurrenceType ........................................................ 350
ReDim............................................................................ 157
RefEdit ........................................................................... 390
Referenz
Übergabe per ......................................................... 165
Referenzierung
Objekt ....................................................................... 191
Registerkarte
Ansicht ........................................................................ 20
Entwicklertools ................................................. 28, 29
Relationale Datenbank ........................................... 353
Relative Aufzeichnung ............................................. 37
Relativer Verweis ........................................................ 37
Relativer Zellbezug................................................... 255
Remove()
Collection ................................................................ 200
Replace()
WorksheetFunction ............................................. 272
RerouteConnections()
Shapes ...................................................................... 232
Resume Next .............................................................. 143
RetryCancel ................................................................. 264
RGB() ....................................................................... 80, 111
Right() ............................................................................ 271
RightFooter
PageSetup .................................................................. 67
RightHeader, PageSetup .......................................... 67
Ringtausch................................................................... 166
RmDir() ......................................................................... 319
Rnd()............................................................ 133, 399, 410
Roman() ........................................................................ 296
Römische Ziffern ...................................................... 296
Rot................................................................................... 111
Rotation
Shape ........................................................................ 228
Round() ......................................................................... 294
RoundDown() ............................................................. 294
RoundUp() ................................................................... 294
Row, Range .................................................................... 89
RowHeight, Range ...................................................... 86
Rows
AutoFit ........................................................................ 86
Count (Word) ......................................................... 329
Range ........................................................................... 86
Table (Word) .......................................................... 329
Rückgabewert................................................... 162, 167
Run()
Application ............................................................. 185
Runden ......................................................................... 294
S
Säulendiagramm ...................................................... 212
Save() (Outlook)
AppointmentItem................................................ 348
ContactItem ........................................................... 346
SaveAs()
Documents (Word) .............................................. 323
Schädlicher VBA-Code ............................................... 27
Schaltfläche.................................................................... 36
Click ........................................................................... 375
Abbrechen ............................................................... 264
erzeugen ........................................................... 36, 374
Ignorieren ............................................................... 264
Ja................................................................................. 264
Nein ........................................................................... 264
OK .............................................................................. 264
Wiederholen ........................................................... 264
Schaltjahr ..................................................................... 169
Schattierung ............................................................... 237
Schleife................................................................ 127, 198
bedingungsgesteuerte ....................................... 131
geschachtelte......................................................... 155
kopf-/fußgesteuerte ............................................ 132
zählergesteuerte................................................... 128
Schriftart
Eigenschaft ................................................................ 79
Schrittweite................................................................. 128
negative ................................................................... 131
Schwarz......................................................................... 111
ScreenUpdating
Application ............................................................. 282
ScrollBar ....................................................................... 385
Change ..................................................................... 388
Eigenschaften ........................................................ 387
Search()
WorksheetFunction............................................. 272
3962.book Seite 448 Dienstag, 24. November 2015 3:53 15
Index
449
Select......................................................................... 24, 35
SELECT (SQL) ............................................ 355, 357, 360
Select Case ................................................................... 126
Select(), Range .............................................................. 70
Selection .................................................................. 25, 35
Send()
MailItem (Outlook) ............................................. 336
SendMail()
Workbook................................................................ 333
Series.............................................................................. 218
ApplyDataLables() ............................................... 218
Border ....................................................................... 218
MarkerBackgroundColor .................................. 218
MarkerForegroundColor ................................... 218
MarkerStyle ............................................................ 218
Points() ..................................................................... 218
SeriesCollection......................................................... 218
Index ......................................................................... 218
SeriesCollection()
Chart ......................................................................... 218
SeriesColor
SparkLineGroups.................................................. 249
Set ................................................................................... 195
SetRange()
Sort ............................................................................... 95
SetSourceData()
Chart ................................................................ 212, 214
Shape ............................................................................. 226
Fill............................................................................... 227
Line ............................................................................ 228
Rotation................................................................... 228
Shapes ........................................................................... 226
AddConnector() ........................................... 226, 231
AddLine() ........................................................ 226, 229
AddShape() .................................................... 226, 227
alle ............................................................................. 235
BuildFreeform() ............................................ 226, 233
ConnectorFormat ................................................ 232
Count ........................................................................ 226
Index ......................................................................... 226
RerouteConnections() ........................................ 232
Sheets ............................................................................ 210
Shift
Zellen verschieben ........................................... 83, 85
Show()
Dialogs ............................................................ 335, 369
UserForm................................................................. 377
Sicherheitscenter ........................................................ 29
Sicherheitswarnung ................................................... 27
Single ............................................................................. 105
Size
Font .............................................................................. 79
Small() ........................................................................... 294
SmallChange
ScrollBar .................................................................. 387
SpinButton.............................................................. 388
SmartArt....................................................................... 250
Snake ............................................................................. 403
Sort
Objekt .......................................................................... 94
Range ........................................................................... 92
SortFields
Sort ............................................................................... 95
Sortieren ...................................................................... 153
Sortierschlüssel .................................................. 94, 193
Spaltennummer........................................................... 70
Sparkline ...................................................................... 246
alle Farben .............................................................. 249
formatieren ............................................................ 248
Gewinn/Verlust .................................................... 248
Linie ........................................................................... 246
Spalte ........................................................................ 247
SparkLineGroups ...................................................... 246
SpecialCells()
Range ........................................................................... 88
SpecialEffect
Label.......................................................................... 388
Speicherbedarf................................................. 104, 105
Spiegelung ................................................................... 237
SpinButton .................................................................. 385
Eigenschaften ........................................................ 388
Split() ................................................................... 277, 304
SQL.................................................................................. 355
Fehlersuche............................................................. 365
Großschrift ............................................................. 355
SQL-Befehl
senden ............................................................. 357, 359
Start
AppointmentItem (Outlook) ........................... 348
Static .............................................................................. 147
Statische Variable ..................................................... 147
Statusleiste ..................................................................... 22
Step................................................................................. 128
Steuerelement
Abstand links ......................................................... 378
Abstand oben ........................................................ 378
3962.book Seite 449 Dienstag, 24. November 2015 3:53 15
Index
450
Bezeichnungsfeld ................................................. 379
Bildlaufleiste .......................................................... 385
Breite ......................................................................... 378
Drehfeld ................................................................... 385
erzeugen .................................................................. 374
Farbe ......................................................................... 386
formatieren ............................................................ 378
Höhe .......................................................................... 378
Kombinationsfeld ................................................ 385
Kontrollkästchen ................................................. 381
kopieren ................................................................... 378
Listenfeld ................................................................. 385
Name......................................................................... 374
Optionsschaltfläche ............................................ 381
Rahmen.................................................................... 381
RefEdit ...................................................................... 390
-sammlung ................................................................ 36
Textfeld .................................................................... 379
Titel ............................................................................ 375
Toggle-Button ....................................................... 391
Wert ermitteln ....................................................... 379
Zahl formatieren .................................................. 388
Strg
Zellbereich.................................................................. 98
Strg + Umschalt + F2 ...................................... 108, 164
String ............................................................................. 105
String *
Länge ........................................................................ 307
Structured Query Language ................................. 355
Style
combo box .............................................................. 387
Sub .................................................................... 24, 35, 162
Sub/UserForm ausführen ....................................... 33
Subject
AppointmentItem (Outlook) ........................... 348
MailItem (Outlook) ............................................. 336
Sub-Prozedur................................................................ 41
Subscript
Font .............................................................................. 81
Subtraktion ................................................................. 113
Suchmuster
Dateiname .............................................................. 313
Superscript
Font .............................................................................. 81
Symbol
Aufzeichnung beenden ......................................... 22
Aufzeichnung beginnen ....................................... 22
Auskommentierung aufheben ....................... 102
Block auskommentieren ................................... 102
grüner Pfeil ................................................................ 34
Symbolleiste
bearbeiten .................................................................. 31
Visual Basic ............................................................... 47
Voreinstellung.......................................................... 31
Symbolsatz
alle ............................................................................. 245
bedingte Formatierung ..................................... 244
Syntaxfehler ............................................................... 138
SystemModal ............................................................. 264
Systemton ................................................................... 263
T
Tabelle
erzeugen (Word) ................................................... 327
Rahmen (Word) .................................................... 327
Tabelle1
Modul .......................................................................... 33
Tabellenblatt .......................................................... 50, 59
aktives ......................................................................... 59
aktivieren ................................................................... 63
alle Zellen ............................................................ 63, 70
Druck skalieren ........................................................ 66
Druck zentrieren...................................................... 67
Druckformat ............................................................. 66
Druckgröße anpassen ........................................... 67
Druckinformationen ............................................. 67
erzeugen ..................................................................... 60
Gitternetz ................................................................... 64
Gitternetzlinien ....................................................... 66
Kopf-/Fußzeile.......................................................... 67
kopieren ...................................................................... 60
laufende Nummer .................................................. 59
löschen ........................................................................ 62
Name ........................................................................... 59
Seiteneinrichtung ................................................... 65
strukturieren............................................................. 83
Überschriften Zeile/Spalte............................ 64, 66
verschieben................................................................ 62
wird aktiviert ............................................................ 97
wird neu berechnet ................................................ 99
Tabellenfunktion ...................................................... 253
Tabellenstruktur
Access ....................................................................... 353
3962.book Seite 450 Dienstag, 24. November 2015 3:53 15
Index
451
Table (Word)
Borders ..................................................................... 327
Cell ............................................................................. 329
Columns................................................................... 329
Rows .......................................................................... 329
Tables (Word).............................................................. 320
Add() .......................................................................... 327
Documents ............................................................. 329
Tabulator...................................................................... 102
Target............................................................................... 98
Address............................................................ 401, 411
Taste
Alt + F11 ....................................................................... 31
F1 ........................................................................ 101, 195
F2 ................................................................................ 189
F5 ................................................................ 33, 145, 376
F8 ................................................................................ 143
F9 ................................................................................ 145
Strg................................................................................ 98
Strg + Umschalt + F2 .................................. 108, 164
Tab ............................................................................. 102
Umschalt + F2 ............................................... 108, 164
Termin
Eigenschaft (Outlook) ........................................ 348
erzeugen (Outlook).............................................. 347
Serie erzeugen (Outlook) ................................... 349
speichern (Outlook)............................................. 348
Wiederholung (Outlook) ................................... 350
Text
AxisTitle ................................................................... 217
ChartTitle ................................................................ 217
combo box .............................................................. 387
text box .................................................................... 380
Text box........................................................................ 379
BackColor ................................................................ 386
locked........................................................................ 386
Text ............................................................................ 380
Textdatei ...................................................................... 297
lesen .......................................................................... 300
schreiben ................................................................. 298
Texteffekt..................................................................... 237
Textfeld......................................................................... 379
sperren...................................................................... 386
Textfilter ...................................................................... 206
TextFrame
Characters............................................................... 229
Line ............................................................................ 229
Then ............................................................................... 123
ThisWorkbook .............................................................. 50
TickLabels
Axis ............................................................................ 217
NumberFormatLocal .......................................... 217
Tiefstellen ....................................................................... 81
Timer() .......................................................................... 286
TimeValue()................................................................. 203
Titel
Steuerelement ....................................................... 375
To ................................................................. 126, 128, 151
MailItem (Outlook) ............................................. 336
Toggle-Button ............................................................ 391
Value ......................................................................... 392
Toolbox ........................................................................ 374
Top
ChartObject ............................................................ 219
Steuerelement ....................................................... 378
Trim()............................................................................. 310
True ...................................................................... 105, 116
Trust Center ................................................................... 29
txt.................................................................................... 380
Type................................................................................ 180
AddShape() ............................................................. 237
ColorScaleCriteria................................................ 242
TypeName()....................................................... 108, 197
U
Übergabe von Parametern.................................... 165
UBound()............................................................ 176, 177
Uhrzeit
aktuelle .................................................................... 203
-angabe .................................................................... 203
Umschalt + F2................................................... 108, 164
Umschaltfeld .............................................................. 391
Und
logisches .................................................................. 119
logisches (SQL) ...................................................... 361
Underline
Font .............................................................................. 79
Ungleich ....................................................................... 117
SQL ............................................................................. 361
Unload .......................................................................... 376
UPDATE (SQL) ......................................... 355, 359, 365
URL-Format
codieren ................................................................... 292
3962.book Seite 451 Dienstag, 24. November 2015 3:53 15
Index
452
UsedRange
Worksheet .................................................................. 86
UserForm ....................................................................... 33
_Initialize() ............................................................. 383
erzeugen .................................................................. 374
Me .............................................................................. 376
Show() ....................................................................... 377
V
Value
check box................................................................. 383
Radio-Button ......................................................... 383
Range ............................................................. 42, 71, 74
ScrollBar .................................................................. 387
Toggle-Button ....................................................... 392
Variable......................................................................... 104
ausblenden ............................................................. 148
Datenfeld................................................................. 150
Deklaration erforderlich ............................ 31, 105
Gültigkeitsbereich................................................ 147
lokale ........................................................................ 147
modulweite ............................................................ 147
Objekt- ...................................................................... 194
projektweite ........................................................... 148
statische................................................................... 147
Variant ....................................................... 107, 108, 159
VBA ................................................................................... 17
vbAbort ......................................................................... 265
VBA-Funktion............................................................. 253
vbArchive..................................................................... 316
VBA-Referenz ................................................... 190, 254
vbBlack.......................................................................... 111
vbBlue ........................................................................... 111
vbCancel ....................................................................... 265
vbCrLf .............................................................................. 43
vbCyan .......................................................................... 111
vbDirectory ................................................................. 316
VBE ................................................................................... 31
vbGreen ........................................................................ 111
vbHidden ..................................................................... 316
vbIgnore ....................................................................... 265
vbMagenta................................................................... 111
vbModeless ................................................................. 377
vbNo............................................................................... 265
vbOK .............................................................................. 265
vbOkOnly..................................................................... 264
vbReadOnly ................................................................ 316
vbRed............................................................................. 111
vbRetry ......................................................................... 265
vbSystem ..................................................................... 316
vbWhite ........................................................................ 111
vbYellow....................................................................... 111
vbYes.............................................................................. 265
Verbinder........................................................... 226, 230
Verbindung
Datenbank (Access)............................................. 354
Verbindungspunkt .................................................. 230
Vergleichsoperator ........................................ 116, 123
Verkettungsoperator .............................................. 120
Versatz ............................................................................. 39
VerticalAlignment
Range ........................................................................... 78
Vertrauenscenter......................................................... 29
Vertrauenswürdige Dokumente ........................... 30
Vertrauenswürdige Speicherorte.......................... 30
Verweis
relativer ...................................................................... 37
Verweis auf Objekt ......................................... 105, 194
Verzeichnis
Attribut .................................................................... 316
-eintrag (Outlook) ................................................ 342
ermitteln (Outlook) ............................................. 342
erzeugen .................................................................. 319
Funktionen ............................................................. 312
löschen ..................................................................... 319
Operation ................................................................ 318
Verzweigung..................................................... 116, 123
Visible
Application (Word).............................................. 323
Visual Basic for Applications .................................. 17
W
Wagenrücklauf ............................................................. 44
Wahlfreier Zugriff........................................... 298, 306
Wartezeit............................................................ 402, 410
wdLineStyleSingle
Word ......................................................................... 327
Webservice
abrufen..................................................................... 291
WebService() ............................................................... 293
3962.book Seite 452 Dienstag, 24. November 2015 3:53 15
Index
453
Weekday() .................................................................... 280
Weight
Borders ........................................................................ 82
Line ............................................................................ 228
Weiß ............................................................................... 111
Werkzeugsammlung ............................................... 374
Wert
größter ..................................................................... 294
kleinster ................................................................... 294
Wertebereich .............................................................. 105
außerhalb................................................................ 107
WHERE (SQL) .............................................................. 360
Width
ChartObject ............................................................ 219
Steuerelement ....................................................... 378
Wiederholung ............................................................ 127
With................................................................................ 192
geschachteltes ....................................................... 193
Wochentag ermitteln.............................................. 280
Word
Absatz ....................................................................... 325
Application ............................................................. 323
Datenaustausch ................................................... 320
Dokument öffnen................................................. 325
Export .............................................................. 321, 325
Import.............................................................. 323, 327
Objektbibliothek................................................... 320
Objekthierarchie................................................... 320
starten ...................................................................... 323
Word.Application ..................................................... 320
WordArt ........................................................................ 237
Workbook ...................................................................... 50
_BeforeClose()........................................................... 96
_Open().............................................................. 96, 377
Activate() .................................................................... 55
Codefenster ............................................................... 95
Name............................................................................ 53
Path .............................................................................. 57
Save()............................................................................ 56
SaveAs()....................................................................... 56
Saved............................................................................ 56
SendMail() ............................................................... 333
Workbook_Open() ................................. 395, 405, 414
Workbooks .................................................................... 50
Add() ............................................................................. 51
Close() .......................................................................... 52
Count ........................................................................... 50
FullName .................................................................... 54
Index ............................................................................ 57
Open() .......................................................................... 52
WorkDay_Intl().......................................................... 284
WorkDay().................................................................... 284
Worksheet
_Activate() ................................................................. 97
_BeforeDoubleClick()............................................. 98
_Calculate() ............................................................... 99
_SelectionChange() ................................................ 98
Codefenster ............................................................... 95
UsedRange................................................................. 86
Worksheet_SelectionChange().................. 401, 411
WorksheetFunction
Convert().................................................................. 287
Count() ..................................................................... 290
CountBlank().......................................................... 290
EoMonth() ............................................................... 281
Replace() .................................................................. 272
Search() .................................................................... 272
Worksheet-Funktion ............................................... 253
Worksheets ............................................................. 50, 59
Activate() .................................................................... 63
Add()............................................................................. 60
Copy() .......................................................................... 60
Delete() ........................................................................ 62
Index ............................................................................ 59
Move() ......................................................................... 62
PageSetup .................................................................. 65
WrapText
Range ........................................................................... 78
X
xlAnd ............................................................................. 205
xlAscending ................................................................... 93
xlBarClustered ........................................................... 212
xlBottom ......................................................................... 78
xlCategory ................................................................... 217
xlCellTypeBlanks ......................................................... 89
xlCellTypeFormulas ................................................... 89
xlCellTypeLastCell ....................................................... 89
xlCenter ........................................................................... 78
xlColumnClustered ................................................. 212
xlColumns ................................................................... 212
xlConditionValueTypes ......................................... 242
xlContinuous ................................................................ 82
xlDescending ................................................................ 93
3962.book Seite 453 Dienstag, 24. November 2015 3:53 15
Index
454
xlDialogFontProperties.......................................... 373
xlDialogOpen ............................................................. 370
xlDialogPatterns ....................................................... 372
xlDialogSaveAs .......................................................... 371
xlDialogSendMail ..................................................... 335
xlDot ................................................................................ 82
xlDouble......................................................................... 82
xlEdgeBottom .............................................................. 82
xlEdgeLeft ...................................................................... 82
xlEdgeRight ................................................................... 82
xlEdgeTop ...................................................................... 82
xlFilterValues ............................................................. 206
xlGuess ........................................................................... 93
xlHairline ....................................................................... 82
xlInsideHorizontal ..................................................... 82
xlInsideVertical ........................................................... 82
xlJustify .......................................................................... 78
xlLandscape .................................................................. 66
xlLeft ................................................................................ 78
xlLine ............................................................................. 212
xlMarkerStyleCircle ................................................. 218
xlMarkerStyleNone.................................................. 218
xlMarkerStyleSquare............................................... 218
xlMedium ...................................................................... 82
xlNo.................................................................................. 93
xlPasteFormats............................................................ 72
xlPasteValues ............................................................... 72
xlPie ............................................................................... 212
xlPortrait ........................................................................ 66
xlRight............................................................................. 78
xlRows ........................................................................... 212
XLS .................................................................................... 45
XLSB ................................................................................. 40
xlShiftDown.................................................................. 83
xlShiftToLeft ................................................................. 85
xlShiftToRight.............................................................. 83
xlShiftUp ........................................................................ 85
xlShowLabel................................................................ 218
xlShowNone ............................................................... 218
xlShowValue............................................................... 218
XLSM ................................................................................ 26
xlSparkColumn ......................................................... 247
xlSparkColumnStacked100 .................................. 248
xlSparkLine ................................................................. 247
XLStart............................................................................. 40
XLSX ................................................................................. 25
xlThick ............................................................................ 82
xlThin .............................................................................. 82
xlTop................................................................................. 78
xlValue .......................................................................... 217
xlVertical......................................................................... 79
xlYes.................................................................................. 93
XML-Datei
filtern ........................................................................ 293
Xor .................................................................................. 119
Y
Year().............................................................................. 282
YesNo............................................................................. 264
YesNoCancel ............................................................... 264
Z
Zahl
Eingabe .................................................................... 259
erkennen.................................................................. 273
ganze ........................................................................ 105
umrechnen ............................................................. 289
umwandeln ............................................................ 273
Zahlenfilter ................................................................. 204
Zeichen einzeln formatieren .................................. 80
Zeichenkette ............................................................... 105
feste Länge..................................................... 298, 307
Funktion .................................................................. 270
Länge ........................................................................ 271
Leerzeichen löschen ............................................ 310
Teilzeichenkette ermitteln................................ 271
Teilzeichenkette ersetzen.................................. 272
Teilzeichenkette suchen .................................... 271
umwandeln ............................................................ 272
verketten ................................................................. 120
zerlegen.................................................................... 277
Zeichnungsobjekt..................................................... 226
Anzahl ...................................................................... 226
Drehung................................................................... 228
Form ................................................................. 226, 227
Freiform ................................................ 226, 233, 234
Füllfarbe .................................................................. 227
Füllung ..................................................................... 227
Lage ........................................................................... 228
Linie ........................................................ 226, 228, 229
Linienart .................................................................. 229
Linienfarbe ............................................................. 228
Linienstärke ........................................................... 228
3962.book Seite 454 Dienstag, 24. November 2015 3:53 15
Index
455
Text ............................................................................ 229
Textrahmen............................................................ 229
Typ .................................................................... 227, 228
Verbinder........................................................ 226, 231
Verbindung Anfang/Ende ................................ 232
Verbindung herstellen ....................................... 232
Verbindungsart..................................................... 232
Zeile zerlegen ............................................................... 65
Zeilenmarke ................................................................ 142
Zeilennummer............................................................. 70
Zeilenvorschub ............................................................ 44
Zellbereich .............................................................. 50, 67
Adresse ........................................................................ 70
ausschneiden ............................................................ 35
auswählen.................................................................. 70
besondere Zellen...................................................... 86
einfügen ...................................................................... 83
Eingabe .................................................................... 261
ermitteln .................................................................. 390
Formel eintragen.................................................. 253
ganze Zeile/Spalte einfügen ............................... 84
ganze Zeile/Spalte löschen.................................. 85
hat Formel ................................................................. 89
Innenbereich ............................................................. 83
Innenfarbe ................................................................. 83
leere Zellen ermitteln............................................. 89
leere Zellen zählen ............................................... 290
letzte Zelle ermitteln .............................................. 89
löschen ........................................................................ 84
Muster ......................................................................... 82
Nachbarzelle verschieben .................................... 83
optimale Zeile/Spalte ............................................ 86
per E-Mail senden (Outlook) ............................ 339
Rahmen....................................................................... 81
sortieren...................................................................... 92
Spaltenbreite............................................................. 85
spezielle Zellen ......................................................... 88
unsichtbare Benutzung ........................................ 87
Versatz ........................................................................ 90
verwendeter Bereich .............................................. 86
Zahlen zählen ........................................................ 290
Zeilenhöhe ................................................................. 85
Zellbereich wird ausgewählt .............................. 97
Zellen zählen ............................................................. 88
zusammenhängender ........................................... 68
Zellbezug
relativer ................................................................... 255
Zelle ................................................................................... 67
Adresse ............................................................ 401, 411
ausgewählte.................................................. 401, 411
Spaltennummer ...................................................... 89
wird doppelt angeklickt ....................................... 98
Zeilennummer.......................................................... 89
Zellen verbinden....................................................... 396
Zellhintergrund
Sparkline ................................................................. 246
Zellinhalt
ausrichten .................................................................. 77
ein-/mehrzeiliger .................................................... 78
einzelne Zeichen ...................................................... 80
Formel eintragen .................................................... 74
kopieren ...................................................................... 71
löschen ........................................................................ 73
Muster-Dialog ....................................................... 371
nur Format kopieren ............................................. 72
nur Format löschen................................................ 73
nur Wert kopieren................................................... 72
nur Wert löschen ..................................................... 73
Schrift-Dialog ........................................................ 372
Schrifteigenschaft................................................... 79
übereinander ............................................................ 79
verbinden ................................................................... 78
verschieben................................................................ 71
Wert eintragen ......................................................... 74
Zoom
PageSetup .................................................................. 66
Zufallsgenerator.............................................. 399, 410
Zufallszahlengenerator .......................................... 133
Zuweisung ................................................................... 104
benutzerdefinierter Datentyp ......................... 181
Objekt ....................................................................... 195
über Objekthierarchie ........................................ 195
Zwischenablage ..................................................... 25, 35
3962.book Seite 455 Dienstag, 24. November 2015 3:53 15
Thomas Theis
Einstieg in VBA mit Excel455 Seiten, broschiert, 4. Auflage 2015 19,90 Euro, ISBN 978-3-8362-3962-2
www.rheinwerk-verlag.de/4015
Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie ger-ne empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag.
Teilen Sie Ihre Leseerfahrung mit uns!
Thomas Theis ist Dipl.-Ing. für Technische Informatik, verfügt über langjährige Erfahrung als EDV-Dozent, unter anderem an der Fachhochschule Aachen. Er leitet Schulungen zu C/C++, Visual Basic und Webprogram-mierung.
Wissen, wie’s geht.