Previous Page  TOC  Index  Next Page  See Page

Einfache Makros schreiben und bearbeiten

Sie sind jetzt in der Lage, Makros aufzuzeichnen und auszuführen und Sie wissen, wie VBA Ihre Makros optimiert. Als nächsten Schritt werden Sie erfahren, wie Makros bearbeitet werden und wie Sie ein Makro erstellen können, ohne es aufzuzeichnen. In der heutigen Lektion lernen Sie:

Die Umgebung von VBA

An Tag 1 haben Sie gelernt, Makros in Word und Excel zu erstellen und auszuführen. Damit Sie Makros bearbeiten oder schreiben können, benötigen Sie jedoch detailliertes Wissen darüber, wo Makros gespeichert werden. Es ist außerdem wichtig, allgemeine Kenntnisse über den Aufbau des VBA-Editors, seine Menübefehle und Schaltflächen sowie deren Bedeutung in der Word- und Excel-Umgebung zu haben.

Module

An Tag 1 haben Sie gelernt, daß VBA-Makros als Teil der Dateien gespeichert werden, die Word und Excel auch sonst zur Speicherung von Daten benutzen. Bei Word werden Sie in den Dokument-Dateien und bei Excel in den Arbeitsmappendateien abgelegt. Dieser besondere Speicherplatz innerhalb der Datei wird als Modul bezeichnet. In den VBA-Modulen finden sie die Quelltexte, die die Befehle des Makros schriftlich darstellen. In jedem Word-Dokument oder jeder Dokumentvorlage können sich sowohl kein oder ein als auch mehrere Module befinden. Das gleiche gilt für Module in Dateien von Excel-Arbeitsmappen. (Die in einem Word-Dokument oder einer Excel-Arbeitsmappe gespeicherten Module werden zusammen als Projekt bezeichnet). In jedem Word- oder Excel-Modul können sich die Quelltexte für kein, ein sowie für mehrere VBA-Makros befinden.

Wenn Sie sich aufgezeichnete Makros ansehen oder diese bearbeiten wollen, können Sie diese wesentlich schneller und einfacher finden, wenn Sie wissen, unter welchem Namen Word und Excel Makros ablegen. Die nächsten Abschnitte erläutern, nach welchen Kriterien Word und Excel Modulnamen für aufgezeichnete Makros vergeben.

Word-97-Module

Beim Aufzeichnen eines Makros in Word können Sie nur bestimmen, in welchem Dokument oder in welcher Vorlage Word das Makro speichern soll. (Dies kann das geöffnete Dokument oder die globale Dokumentvorlage wie z.B. NORMAL.DOT sein, wie bereits an Tag 1 erläutert). Word wählt oder erstellt, wenn notwendig, das Modul, unter dem das aufgezeichnete Makro gespeichert werden soll, selbst.

Bei Word 97 werden alle aufgezeichneten Makros in einem Modul mit dem Namen NewMacros gespeichert. Wollen sie das neue Makro beispielsweise in der Vorlage Normal.dot ablegen, speichert Word den Quelltext des Makros im Modul NewMakros in der Vorlage NORMAL.DOT. Wenn Sie auf der anderen Seite in dem geöffneten Dokument CH02.DOC ein Makro aufzeichnen und es dort ablegen, speichert Word das aufgezeichnete Makro in dem Modul des Dokuments CH02.DOC NewMacros. Existiert das Modul NewMacros noch nicht, erstellt Word es zeitgleich mit der Speicherung der von Ihnen aufgezeichneten Aktionen.

Word speichert alle aufgezeichneten Makros in dem Modul NewMacros in dem geöffneten Dokument oder der ausgewählten Dokumentvorlage. Dabei spielt es keine Rolle, in welcher Sitzung Sie das Makro aufgezeichnet haben.

Excel-Module

Wie schon bei Word können Sie die Arbeitsmappe festlegen, in der Sie das neue Makro speichern wollen. Diese Arbeitsmappen können sein: die aktuelle Arbeitsmappe, eine neue Arbeitsmappe und oder die Arbeitsmappe PERSONAL.XLS. Excel wählt oder erstellt, wenn notwendig, das Modul, in dem das aufgezeichnete Makro gespeichert werden soll. Die Kriterien, nach denen Excel 97 den Speicherplatz für das neue Makro auswählt, sind jedoch etwas komplexer als bei Word.

Wenn Excel 97 das Modul erstellt, in dem das aufgezeichnete Makro gespeichert werden soll, erhält dieses Modul den Namen MODULN. N entspricht dabei der Anzahl der Module in einer Arbeitsmappe, die innerhalb einer Sitzung neu erstellt wurden. Wenn Sie zum Beispiel zum ersten Mal ein aufgezeichnetes Makro in der persönlichen Makro-Arbeitsmappe namens PERSONAL.XLS speichern, erstellt Excel das Modul Modul1, um das aufgezeichnete Makro abzulegen. Zeichnen Sie in dieser Sitzung noch weitere Makros auf und speichern Sie diese in der persönlichen Makro-Arbeitsmappe, legt Excel auch diese in dem Modul ab. Erst wenn Sie eine andere Arbeitsmappe für die Speicherung wählen, erstellt Excel ein neues Modul. Entscheiden Sie sich später in Ihrer Arbeitssitzung wieder dafür, aufgezeichnete Makros in der Arbeitsmappe PERSONAL.XLS zu speichern, fügt Excel der Arbeitsmappe PERSONAL.XLS ein neues Modul mit dem Namen Modul2 hinzu. 

Existiert der ausgewählte Modulname in der Arbeitsmappe bereits, erhöht Excel die Zahl im Modulnamen so lange um eins, bis der neue Name sich von dem bereits vergebenen Namen unterscheidet. Sie haben beispielsweise eine neue Excel-Arbeitssitzung gestartet und wollen ein neu erstelltes Makro in der persönlichen Makro-Arbeitsmappe speichern. Excel wählt jetzt zuerst Modul1 als Namen des neuen Moduls, da es das erste Modul ist, das während dieser Sitzung für die Arbeitsmappe PERSONAL.XLS erstellt wurde. Gibt es in der Arbeitsmappe PERSONAL.XLS bereits Module mit den Namen Modul1 und Modul2, erhöht Excel die Zahl im Modulnamen so lange um eins, bis es keine Konflikte mit bereits vorhandenen Modulnamen mehr gibt. Das neue Modul erhält also den Namen Modul3.


 

Excel wendet für die Wahl des Namens für ein Modul, das Sie manuell über den Befehl Modul aus dem Menü Einfügen des Visual-Basic-Editors eingeben, dieselben Regeln an, die auch verwendet werden, wenn Excel ein Modul zur Speicherung eines aufgezeichneten Makros erzeugt. Obwohl Word alle neu aufgezeichneten Makros in dem Modul NewMacros speichert, gelten für die Speicherung eines Word-Moduls, das Sie manuell mit Hilfe des Befehls Modul aus dem Menü Einfügen des Visual Basic-Editors eingeben, dieselben Benennungsregeln für Module wie bei Excel. Das Einfügen von Modulen wird weiter unten in dieser Lektion beschrieben. 


Der Visual-Basic-Editor

Mit Hilfe des Visual-Basic-Editors können Sie die Module eines bestimmten Dokuments, einer Vorlage oder einer Arbeitsmappe anzeigen lassen und sich den Quelltext dieser Module ansehen. Der Visual-Basic-Editor verfügt über eine Art »Werkbank«, mit deren Hilfe Sie neue Module erstellen, den Inhalt bereits existierender Module anzeigen, einen Quelltext eingeben und bearbeiten, benutzerdefinierte Dialogfelder einbinden sowie alle anderen Aufgaben erfüllen können, die für die Erstellung und Pflege Ihres Programms in Visual Basic for Applications notwendig sind. In diesem Buch wird der Visual-Basic-Editor verkürzt als VB-Editor bezeichnet. Die VB-Editoren sind in Word und Excel identisch. Wenn Sie in Word mit dem VB-Editor arbeiten, handelt es sich dabei um den gleichen Editor, der Ihnen auch in Excel zur Verfügung stehen würde, und umgekehrt. In den nächsten Abschnitten lernen Sie, den VB-Editor zu starten, die Funktion der unterschiedlichen Fenster des VB-Editors wird erklärt und es werden die Menübefehle sowie Schaltflächen des VB-Editors vorgestellt.

Den VB-Editor starten

Wie bereits erwähnt, müssen Sie den VB-Editor zunächst starten, um sich Module oder die darin enthaltenen VBA-Quelltexte anzusehen. Egal, ob Sie mit Word oder Excel arbeiten, der Start des VB-Editors ist identisch. Mit jedem der beiden folgenden Befehle können Sie den VB-Editor starten: Nach Wahl der Befehle oder Drücken der Tasten, starten Word und Excel den VB-Editor. In Abbildung 2.1 sehen Sie ein typisches VB-Editor-Fenster in Word. (Das Fenster für den Quelltext in der rechten Seite der Abbildung wird erst geöffnet, nachdem Sie ein bestimmtes Modul geöffnet haben, um sich seinen Quelltext anzeigen zu lassen). Das Fenster des VB-Editors in Excel ist im wesentlichen identisch mit dem VB-Editor aus Abbildung 2.1. 

siehe Abbildung 

Abbildung 2.1: 
Ein typisches VB-Editor-Fenster, in diesem Fall von Word angezeigt. 

Die Fenster des VB-Editors

Der VB-Editor besitzt drei Unterfenster. (Ein Unterfenster ist jedes Fenster, das sich innerhalb eines geöffneten Fensters befindet; das Fenster, in dem die Unterfenster angezeigt werden, ist das Hauptfenster). In jedem der drei Unterfenster des VB-Editors finden Sie wichtige Informationen über Ihr VBA-Projekt. (Ein Projekt ist eine Gruppe von Modulen und anderen Objekten, die in einem bestimmten Dokument, einer Dokumentvorlage, einer Arbeitsmappe oder einer Arbeitsmappenvorlage gespeichert wurden.) Jedes Fenster des VB-Editors wird, wie in Abbildung 2.1 zu sehen, standardmäßig in seiner verankerten Position dargestellt. (Ein VB-Editorfenster zu verankern, bedeutet, daß das Unterfenster an der oberen oder unteren Kante bzw. in der linken oder rechten Ecke des Hauptfensters positioniert wird; das verankerte Unterfenster ist somit fest mit der Ecke des VB-Editorfensters verbunden.

Bei Bedarf können Sie jedes VB-Editor-Unterfenster an einen anderen Ort auf dem Bildschirm verschieben, indem Sie die Kopfzeile des Fensters erfassen und diese mit der Maustaste in die gewünschte Position ziehen. Wenn Sie die Verankerung des Unterfensters durch Verschieben lösen, wird es zu einem verschiebbaren Fenster. (Verschiebbare Fenster sind stets im Vordergrund aller anderen Fenster sichtbar). Sie können auch die Größe der VB-Editor-Unterfenster verändern, indem Sie die Fensterränder mit der Maus auf die gewünschte Größe ziehen. Um die Größe eines VB-Editor-Fensters zu ändern, sind die gleichen Schritte wie bei jeder anderen Windows-Anwendung notwendig.

Die drei Unterfenster des VB-Editors (siehe Abbildung 2.1) und ihre Aufgaben werden in der folgenden Liste zusammengefaßt.

Um das Fenster des Projekt-Explorer und das Code-Fenster verstehen zu können, ist die oben stehende Zusammenfassung nicht ausreichend. Daher werden das Fenster des Projekt-Explorer und das Code-Fenster in den zwei nachfolgenden Abschnitten detaillierter vorgestellt.

Das Fenster des Projekt-Explorer

Im Fenster des Projekt-Explorer werden die zur Zeit aktivierten Projekte als Baumdiagramm dargestellt. Durch einen Mausklick auf das Pluszeichen (+) in dem Kästchen links neben dem Eintrag erweitern Sie diesen Zweig im Baumdiagramm und durch einen Mausklick auf das Minuszeichen (-) wird dieser Zweig des Baumdiagramms zusammengefaßt.

Das Auswählen der Objekte im Projekt-Explorer erfolgt durch Anklicken des gewünschten Objekts. Mit Hilfe der Ordneransicht (siehe Abbildung 2.1) können Sie Objekte des gleichen Typs, in diesem Beispiel Word-Objekte, Module und Hinweise, in einem Ordner zusammenfassen. In der Ansicht in Abbildung 2.2 werden alle Objekte eines bestimmten Projekts ohne jegliche Art der Gruppierung angezeigt. Durch Anklicken der Schaltfläche Ordner wechseln können Sie Ordneransicht an- oder ausschalten.

Zusätzlich zu der Schaltfläche Ordner wechseln verfügt das Fenster des Projekt-Explorer noch über zwei weitere Schaltflächen: Code anzeigen und Objekt anzeigen. Haben Sie ein Objekt, beispielsweise ein Dokument oder eine Arbeitsmappe, im Fenster des Projekt-Explorer ausgewählt, können Sie sich dieses durch Anklicken der Schaltfläche Objekt anzeigen anzeigen lassen. Mit Hilfe der Schaltfläche Code anzeigen können Sie sich den Inhalt eines ausgewählten Moduls im Code-Fenster anzeigen lassen. 

siehe Abbildung 

Abbildung 2.2: 
Der Projekt-Explorer mit ausgeschalteter Ordneransicht. 


 

Wenn Sie das Code-Fenster geöffnet haben, um den Quelltext Ihres Makros zu bearbeiten, ist es vielleicht vorteilhaft, den Projekt-Explorer und das Eigenschaften-Fenster zu schließen. Mit dieser Maßnahme wird das Code-Fenster vergrößert und das Arbeiten wird erleichtert, da ein größerer Ausschnitt Ihres Quelltextes auf dem Bildschirm sichtbar wird. Durch Anklicken der Schaltfläche Fenster schliessen oben rechts im Fenster können Sie jedes VB-Editor-Unterfenster – Projekt-Explorer, Eigenschaften-Fenster und Code-Fenster – schließen (siehe auch Abbildungen 2.2 und 2.3). Der Projekt-Explorer und das Eigenschaften-Fenster werden wieder angezeigt, wenn Sie die entsprechenden Schaltflächen auf der Symbolleiste anklicken oder wenn Sie im Menü Ansicht den Befehl Projekt-Explorer bzw. den Befehl Eigenschaften-Fenster wählen. 


Das Code-Fenster

In Abbildung 2.3 sehen Sie das gleiche Code-Fenster wie in Abbildung 2.1, jedoch so positioniert und vergrößert, daß ein größerer Auschnitt vom Quelltext des Makros angezeigt wird und die besonderen Merkmale des Code-Fensters leichter zu erkennen sind. (In dem dargestellten Code-Fenster sehen Sie das Modul NewMacros in der Datei NORMAL.DOT und den Quelltext der beiden Makros, die Sie am Tag 1 aufgezeichnet haben.)

Die Standardansicht des VBA-Quelltextes ist die Vollständige Modulansicht, wie in Abbildung 2.3 dargestellt. Bei der Vollständigen Modulansicht wird der gesamte Makro-Quelltext gleichzeitig in einem Text-Fenster mit Bildlauf angezeigt. Die Trennung der einzelnen Makros erfolgt in der Vollständigen Modulansicht durch eine dicke graue Linie. Den Inhalt eines Moduls können Sie sich auch über die Prozeduransicht des VB-Editors ansehen. (Prozedur ist ein Synonym für Makro; weiter unten erhalten Sie nähere Informationen zu Prozeduren). Die Module, die Sie in der Vollständigen Modulansicht, Abbildung 2.3, und in der Prozeduransicht, Abbildung 2.4, sehen, sind identisch. Die Wahl der Ansicht erfolgt durch Anklicken der entsprechenden Schaltfläche unten links im Code-Fenster. 

siehe Abbildung 

Abbildung 2.3: 
Das Code-Fenster des VB-Editors im Modus Vollständige Modulansicht. 

siehe Abbildung 

Abbildung 2.4: 
Darstellung des Moduls aus Abbildung 2.3 in Prozeduransicht. 

Befindet sich das Code-Fenster im Modus Prozeduransicht, wie in Abbildung 2.4 dargestellt, ist zur Zeit nur der Quelltext eines Makros auf dem Bildschirm sichtbar. Um sich ein anderes Makro anzusehen, wählen Sie dieses aus dem Listenfeld Prozedur aus. Diese Liste steht Ihnen auch in der Vollständigen Modulansicht zur Verfügung, damit Sie schnell von einem Makro zum nächsten gelangen können. 

Verwenden Sie das Listenfeld Objekt, um die Objekte auszuwählen, deren Prozeduren angezeigt und bearbeitet werden sollen. Bei Standardmodulen, wie beispielsweise Modulen, in denen Ihre aufgezeichneten Makros gespeichert werden, können Sie im Listenfeld Objekt nur (Allgemein) anklicken. Im weiteren Verlauf dieses Buchs werden Sie mehr über die Einsatzmöglichkeiten dieser Liste erfahren.

Die Fenster des VB-Editors kennen Sie mittlerweile recht genau. Als nächster Schritt werden daher die Symbolleisten und Menüs des VB-Editors erläutert, in denen Sie die notwendigen Befehle für die Arbeit mit dem Projekt-Explorer, dem Eigenschaften-Fenster und dem Code-Fenster finden.

Einführung in die Menüs des VB-Editors

In diesem und den folgenden Kapiteln erhalten Sie einen Überblick über die Menüs und Symbolleisten des VB-Editors. Seien Sie nicht enttäuscht, wenn Sie den Zweck und die Bedeutung der in den nächsten beiden Abschnitten beschriebenen Befehle noch nicht völlig verstehen. Die meisten der im Anschluß vorgestellten VBA-Menübefehle werden für Aktionen eingesetzt, die Ihnen bis jetzt noch unbekannt sind. Die detaillierte Erklärung für die einzelnen Befehle erfolgt immer dann, wenn Sie diese Befehle für bestimmte Programmieraufgaben benötigen. Zu diesem Zeitpunkt sollen die zur Verfügung stehenden Befehle nur vorgestellt werden. Wenn Sie Spaß daran haben, können Sie einige dieser Befehle schon einmal ausprobieren. Vergewissern Sie sich jedoch, daß das Dokument, mit dem Sie üben, keine unersetzbaren Daten enthält.


 

Unternehmen Sie nicht den Versuch, alle in diesem Kapitel vorgestellten Menübefehle und Schaltflächen auf den Symbolleisten auswendig zu lernen. Die meisten Befehle gehören zu Aktivitäten, die noch nicht erläutert wurden. Verstehen Sie die nachfolgende Beschreibung der Menübefehle und Schaltflächen als Überblick über die Möglichkeiten des VB-Editors. In jeder Lektion werden die relevanten Menübefehle und Schaltflächen detailliert erklärt. In diesem Kapitel können Sie jedoch nachschlagen, wenn Sie komplexere Aufgaben mit dem VB-Editor lösen und bearbeiten wollen. 


Das Menü Datei
Das Menü Datei enthält wie alle Windows-Anwendungen Befehle, die mit der Speicherung und dem Öffnen von Dateien in Verbindung stehen. Im Menü Datei des VB-Editors finden Sie die notwendigen Befehle für die Speicherung von Änderungen im VBA-Projekt und zum Drucken des Makro-Quelltextes. In Tabelle 2.1 werden die Befehle für das Menü Datei, die zugehörigen Shortcuts und eine Zusammenfassung über die Funktion jedes Befehls aufgelistet. 

Tabelle 2.1: Befehle im Menü Datei 

Befehl  Shortcut  Aktion 
Speichern von <Projekt>  (Strg)+(S)  Speichert das aktuelle VBA-Projekt, einschließlich aller Module und Formulare. 
Datei importieren  (Strg)+(M)  Fügt dem jetzigen Projekt ein existierendes Modul, Formular oder eine Klasse hinzu. Die Module, Formulare oder Klassen müssen mit dem Befehl Datei exportieren in einem anderen Projekt gespeichert worden sein, bevor sie importiert werden können. 
Datei exportieren  (Strg)+(E)  Speichert alle Module, Formulare oder Klassen in einer Textdatei, damit diese von einem anderen Projekt importiert werden können, oder zu Archivierungszwecken. 
Entfernen von <Element>  Löscht dauerhaft das aktuell ausgewählte Modul oder Formular aus Ihrem VBA-Projekt. Dieser Befehl ist deaktiviert, wenn Sie kein Element aus dem Projekt-Explorer ausgewählt haben. 
Drucken  (Strg)+(P)  Druckt ein Modul oder Formular zu Dokumentations- oder Archivierungszwecken. 
Schließen und zurück zu  (Alt)+(Q)  Schließt den VB-Editor. Sie kehren zurück in die Host-Anwendung und in die Dokumente oder die Arbeitsmappen, von denen aus Sie den VB-Editor gestartet haben. 


 

An Tag 15, »Erstellen benutzerdefinierter Dialogfelder«, erfahren Sie, wie benutzerdefinierte Formulare für die Erstellung benutzerdefinierter Dialogfelder eingesetzt werden. 


Das Menü Bearbeiten
Das Menü Bearbeiten enthält Befehle, mit denen Sie den Makro-Quelltext im Code-Fenster und Objekte in Formularen bearbeiten können. In Tabelle 2.2 finden Sie die Befehle für das Menü Bearbeiten, die zugehörigen Shortcuts und eine kurze Erläuterung dazu, welche Funktion dieser Befehl hat. 

Tabelle 2.2: Befehle im Menü Bearbeiten 

Befehl  Shortcut  Aktion 
Rückgängig  (Strg)+(Z)  Macht den zuletzt ausgeführten Befehl rückgängig. Nicht alle Befehle können rückgängig gemacht werden. 
Wiederholen  Wiederholt den zuletzt rückgängig gemachten Befehl. 
Ausschneiden  (Strg)+(X)  Schneidet einen ausgewählten Text oder ein Objekt aus und speichert diese in der Windows-Zwischenablage. Der ausgewählte Text oder das Objekt werden nach dem Ausschneiden aus dem Modul oder Formular gelöscht. 
Kopieren  (Strg)+(C)  Kopiert ausgewählten Text oder ein Objekt in die Windows-Zwischenablage. Der Text oder das Objekt bleiben unverändert. 
Einfügen  (Strg)+(V)  Fügt einen Text oder ein Objekt aus der Windows-Zwischenablage in das geladene Modul oder Formular ein. 
Löschen  (Entf)  Löscht Text oder Objekte aus einem Dokument oder Formular. 
Alles auswählen  (Strg)+(A)  Markiert den gesamten Text in einem Modul oder alle Objekte auf einem Formular. 
Suchen  (Strg)+(F)  Sucht einen speziellen Text in einem Modul und ähnelt damit dem Befehl Suchen in Word und Excel. 
Weitersuchen  (F3)  Wiederholt den letzten Suchvorgang. 
Ersetzen  (Strg)+(H)  Ersetzt ausgewählten Text in einem Module durch einen anderen Text und ähnelt damit dem Befehl Ersetzen in Word und Excel. 
Einzug vergrößern  (ÿ)  Rückt einen oder mehrere Absätze um eine Ebene ein. 
Einzug verkleinern  (Strg)+(ÿ)  Entfernt eine Einzugsebene für einen oder mehrere Absätze. 
Eigenschaften/Methoden anzeigen  Öffnet im Code-Fenster eine Drop-down-Liste, die die Eigenschaften und Methoden des gerade eingegebenen Objektnamens anzeigt. Befindet sich die Einfügemarke an einer leeren Stelle im Code-Fenster, öffnet dieser Befehl eine Liste mit Eigenschaften und Methoden, die global zu Verfügung stehen. 
Konstanten anzeigen  (Strg)+(Umschalt)+(J)  Öffnet im Code-Fenster eine Drop-down-Liste mit den gültigen Konstanten für Eigenschaften, die Sie vor ein Gleichheitszeichen (=) geschrieben haben. 
Quickinfo  (Strg)+(I) 
Parameterinfo  (Strg)+(Umschalt)+(I)  Öffnet ein Hilfe-Fenster, das die Parameter (auch Argumente genannt) einer gerade im Code-Fenster geschriebenen Prozedur, Funktion oder Anweisung anzeigt. 
Wort vervollständigen  (Strg)+(Leertaste)  Erteilt dem VB-Editor den Befehl, das Wort, das Sie gerade schreiben sofort selbständig zu beenden, sobald genug Buchstaben für die Erkennung des Begriffs eingegeben wurden. 
Lesezeichen  Öffnet ein Untermenü mit Wahlmöglichkeiten. Sie können Lesezeichen setzen oder entfernen oder den Befehl erteilen, bereits vergebenen Lesezeichen eines Moduls zu springen. Die Lesezeichen des VB-Editors unterscheiden sich von denjenigen in Word dadurch, daß sie keine Namen haben. 


 

An Tag 7, »Objekte und Auflistungen«, und an Tag 18, »Steuerung der Host-Anwendung zu VBA«, erfahren Sie mehr über Eigenschaften und Methoden. 


Das Menü Ansicht
Mit dem Menü Ansicht können Sie festlegen, welche Elemente des VB-Editors angezeigt werden sollen und wie die Anzeige erfolgen soll. In Tabelle 2.3 finden Sie die Befehle für das Menü Ansicht, die zugehörigen Shortcuts und eine kurze Erklärung dazu, welche Funktion der jeweilige Befehl übernimmt. 

Tabelle 2.3: Befehle im Menü Ansicht 

Befehl  Shortcut  Aktion 
Code  (F7)  Aktiviert das Code-Fenster, damit es den Quelltext des ausgewählten Moduls oder Formulars anzeigt. 
Objekt  (Strg)+(F7)  Zeigt alle im Projekt-Explorer ausgewählten Objekte an. 
Definition  (Strg)+(F2)  Zeigt den VBA-Quelltext für eine Prozedur oder Funktion an; zeigt den Objektkatalog für Objekte in einem VBA-Verweis an, dessen Name sich gerade unter dem Cursor befindet. 
Letzte Position  (Strg)+(F2)  Springt zurück an die Position in einem Modul, 
an der sich der Cursor befand, bevor der Befehl Definition oder Bearbeiten eingegeben wurde. 
Objektkatalog  (F2)  Öffnet den Objektkatalog, so daß die aktuell zur Verfügung stehenden Makros angezeigt werden. In dem Abschnitt »Suchen aufgezeichneter Makros« weiter unten in dieser Lektion wird der Objektkatalog noch detaillierter vorgestellt. Zusätzliche Informationen über den Objektkatalog erhalten Sie in den folgenden Lektionen. 
Direkt-Fenster  (Strg)+(G)  Zeigt das Direkt-Fenster zur Fehlersuche an. 
Lokal-Fenster  Zeigt das Lokal-Fenster zur Fehlersuche an. 
Überwachungs-Fenster  Zeigt das Überwachungs-Fenster zur Fehlersuche an. 
Aufrufliste  (Strg)+(L)  Zeigt die Aufrufliste für die aktuelle VBA-Funktion oder -Prozedur an. 
Projekt-Explorer  (Strg)+(L)  Öffnet das Fenster des Projekt-Explorer. 
Eigenschaften-Fenster  (F4)  Öffnet das Eigenschaften-Fenster. 
Werkzeugsammlung  Zeigt die Symbolleiste der Werkzeugsammlung an. Sie arbeiten mit der Werkzeugsammlung, wenn Sie benutzerdefinierten Dialogfeldern Steuerelemente hinzufügen wollen. Mehr Informationen zu dem Befehl Werkzeugsammlung erhalten Sie an Tag 15. 
Aktivierreihenfolge  Öffnet das Dialogfeld Aktivierreihenfolge. Das Dialogfeld Aktivierreihenfolge verwenden Sie bei der Erstellung von benutzerdefinierten Dialogfeldern, die an Tag 15 beschrieben werden. 
Symbolleisten  Aktiviert ein Untermenü, mit dem Sie sowohl die unterschiedlichen Symbolleisten des VB-Editors ein- und ausblenden als auch das Dialogfeld Anpassen öffnen und die Symbolleisten des VB-Editors anpassen können. 
<Host-Anwendung>  (Alt)+(F11)  Bringt Sie in die Host-Anwendung zurück, aus der Sie den VB-Editor gestartet haben. Schließt dabei jedoch nicht den VB-Editor. Der exakt einzugebende Befehl hängt von der Host-Anwendung ab, aus der Sie den VB-Editor gestartet haben. 
Das Menü Einfügen
Mit den Befehlen des Menüs Einfügen können Sie Ihrem Projekt unterschiedliche Objekte, wie Module und Formulare, hinzufügen. In Tabelle 2.4 finden Sie die Befehle für das Menü Einfügen, die zugehörigen Shortcuts und eine Beschreibung dazu, welche Funktion dieser Befehl hat. 

Tabelle 2.4: Die Befehle im Menü Einfügen 

Befehl  Aktion 
Prozedur  Fügt dem aktuellen Modul eine neue Function- oder Property-Prozedur hinzu (Prozedur ist ein Synonym für Makro). 
UserForm  Fügt Ihrem Projekt ein neues Formular für die Erstellung von benutzerdefinierten Dialogfeldern hinzu. Benutzerdefinierte Dialogfelder werden an Tag 15 vorgestellt. 
Modul  Fügt Ihrem Projekt ein neues Modul hinzu. Der VB-Editor übernimmt die Benennung des Moduls nach den zuvor beschriebenen Gesichtspunkten. 
Klassenmodul  Fügt Ihrem Projekt ein neues Klassenmodul hinzu. Klassenmodule werden für die Erstellung von benutzerdefinierten Objekten in Projekten benutzt. 
Datei  Fügt eine Textdatei mit einem VBA-Quelltext in ein Modul ein. 
Das Menü Format
Die Befehle des Menüs Format brauchen Sie für die Erstellung Ihrer eigenen benutzerdefinierten Dialogfelder und anderer Formulare. Mit den Befehlen im Menü Format können Sie zum Beispiel Objekte in einem Formular ausrichten oder die Größe von Steuerelementen so wählen, daß sie ihrem Inhalt gerecht werden. Der Vollständigkeit halber werden alle Befehle des Menüs Format aufgeführt. Sie werden sie jedoch erst einsetzen, wenn Sie mit der Erstellung Ihrer eigenen benutzerdefinierten Dialogfelder beginnen (siehe Tag 15). In der Tabelle 2.5 werden die Befehle des Menüs Format und deren Aktionen aufgelistet. Für keinen dieser Befehle stehen Shortcuts zur Verfügung. 

Tabelle 2.5: Befehle im Menü Format 

Befehl  Aktion 
Ausrichten  Öffnet ein Untermenü, mit dessen Befehlen Sie ausgewählte Objekte auf einem Formular zu einander ausrichten können. Objekte können an der oberen und unterer Kante sowie der linken oder rechten Ecke als auch an der Mitte oder am Mittelpunkt eines zuvor definierten Objekts ausgerichtet werden. 
Grösse angleichen  Öffnet ein Untermenü, mit dessen Befehlen Sie ausgewählte Objekte auf die Größe eines zuvor definierten Objekts bringen können. 
Grösse anpassen  Verändert gleichzeitig die Breite und Höhe eines Objekts so, daß die Größe des Objekts seinem Inhalt angepaßt wird. 
Grösse an Raster  Verändert gleichzeitig die Breite und Höhe eines Objekts so, daß jede Ecke am jeweils nächstgelegenen Rasterpunkt ausgerichtet wird. (Beim Erstellen von Formularen überspannt der VB-Editor das zu erstellende Formular optisch mit einem Gitternetz, das Ihnen die Positionierung und die Festlegung der Größe erleichtern soll.) 
Horizontaler Abstand  Öffnet ein Untermenü, mit dem Sie den horizontalen Abstand zwischen ausgewählten Objekten festlegen können. Der horizontale Abstand zwischen Objekten kann angeglichen, verringert, vergrößert oder ganz entfernt werden. 
Vertikaler Abstand  Öffnet ein Untermenü, mit dem Sie den vertikalen Abstand zwischen ausgewählten Objekten festlegen können. Der vertikale Abstand zwischen Objekten kann angeglichen, verringert, vergrößert oder ganz entfernt werden. 
Im Formular zentrieren  Öffnet ein Untermenü, mit dem Sie ausgewählte Objekte horizontal oder vertikal auf dem Formular zentrieren können. 
Schaltflächen ausrichten  Öffnet ein Untermenü, mit dem Sie automatisch die Befehlsschaltflächen auf einem Formular anordnen können. Die Schaltflächen werden in gleichmäßigem Abstand in einer Reihe über dem unteren Rand oder dem rechten Rand angeordnet. 
Gruppieren  Faßt mehrere ausgewählte Objekte zu einer Gruppe zusammen, so daß für diese Objekte die Größen- oder Positionsänderung sowie das Ausschneiden oder Kopieren als Gruppe vorgenommen werden kann. Dabei ist es immer noch möglich, einzelne Objekte auszuwählen, um deren Eigenschaften zu verändern. 
Gruppierung aufheben  Macht den Befehl Gruppierung unwirksam, so daß Objekte, die zuvor nur als Einheit vorlagen, jetzt wieder einzeln zur Verfügung stehen. 
Reihenfolge  Öffnet ein Untermenü, mit dem Sie übereinanderliegende Objekte, die von oben nach unten (in der sogenannten Z-Reihenfolge) angeordnet wurden, eine andere Reihenfolge zuweisen können. Benutzen Sie den Befehl Reihenfolge, um zum Beispiel ein Textfeld über einem grafischen Objekt anzuordnen. 
Das Menü Testen
Die Befehle des Menüs Testen verwenden Sie, um Ihre Makros zu testen. Beim Testlauf suchen und korrigieren Sie Fehler in Ihrem Programm. Wie die Befehle des Menüs Testen eingesetzt werden, lernen Sie an Tag 14, in der Lektion »Fehlersuche und Testen von VBA-Code«, in der beschrieben wird, wie Sie Fehler im Makro-Quelltext finden und wie diese korrigiert werden. In Tabelle 2.6 finden Sie die Befehle des Menüs Testen, deren Shortcuts und Aktionen. 

Tabelle 2.6: Befehle im Menü Testen 

Befehl  Shortcut  Aktion 
Kompilieren  Kompiliert das im Projekt-Explorer ausgewählte Projekt. 
Einzelschritt  (F8)  Führt jede Anweisung des Quelltextes Ihres Makros einzeln aus. 
Prozedurschritt  (Umschalt)+(F8)  Ähnelt dem Befehl Einzelschritt. Mit dem Befehl Prozedurschritt werden alle Anweisungen des Makro-Quelltextes ausgeführt, ohne daß nach jeder einzelnen Anweisung die Ausführung unterbrochen wird. 
Prozedur abschliessen  (Strg)+(Umschalt)+(F8)  Führt die noch verbleibenden Makro-Anweisungen ohne Unterbrechungen aus. 
Ausführen bis Cursor-Position  (Strg)+(F8)  Führt Anweisungen eines Makro-Quelltextes von der gerade ausgeführten Anweisung bis hin zur aktuellen Cursorposition aus. 
Überwachung hinzufügen  Mit diesem Befehl können Sie Variablen oder Ausdrücke hinzufügen, deren Werte Sie während des Testlaufs Ihres Makro-Quelltextes überwachen möchten. 
Überwachung bearbeiten  Mit diesem Befehl können Sie die Spezifikationen der unter Überwachung hinzufügen ausgewählten Variablen und Ausdrücke verändern. 
Aktuellen Wert anzeigen  (Strg)+(F9)  Zeigt den aktuellen Wert eines ausgewählten Ausdrucks. 
Haltepunkt ein/aus  Markiert eine Stelle in Ihrem VBA-Quelltext, an der die Ausführung unterbrochen werden soll. Durch erneutes Anklicken wird die Markierung entfernt. 
Alle Haltepunkte löschen  (Strg)+(Umschalt)+(F9)  Entfernt alle Haltepunkte aus Ihrem Modul. 
Nächste Anweisung festlegen  (Strg)+(F9)  Mit diesem Befehl können Sie die normale Ausführung Ihres Codes beeinflussen, indem Sie manuell die Zeile festlegen, von der aus mit der Ausführung Ihres Quelltextes fortgefahren werden soll. 
Nächste Anweisung anzeigen  Mit diesem Befehl erhält der VB-Editor den Befehl, die Befehlszeile hervorzuheben, die als nächstes ausgeführt wird. 

Mit den Befehlen des Menüs Testen können Sie die Ausführung Ihres Makros genau überwachen, das Makro an zuvor festgelegten Punkten anhalten und starten sowie die Ausführung des Makros schrittweise nachvollziehen. Jeder Befehl im Menü Testen wird detailliert an Tag 14 beschrieben.

Das Menü Ausführen
Mit den Befehlen des Menüs Ausführen können Sie die Ausführung eines Makros starten, unterbrechen und fortsetzen. Außerdem können Sie ein unterbrochenes Makro in seinen Anfangszustand zurücksetzen. In dieser Lektion wird der Gebrauch einiger Befehle des Menüs Ausführen vorgestellt. Vertiefende Kenntnisse erhalten Sie an Tag 14. In Tabelle 2.7 finden Sie die Befehle des Menüs Ausführen, mit deren Shortcuts und Aktionen. 

Tabelle 2.7: Befehle im Menü Ausführen 

Befehl  Shortcut  Aktion 
Makro ausführen oder Sub-/Userform ausführen  (F5)  Mit diesem Befehl erhält VBA die Information, das Makro auszuführen, das Sie gerade bearbeiten. Das heißt, daß VBA das Makro ausführt, auf dem sich zur Zeit die Einfügemarke befindet. Wurde ein Formular geladen, führt VBA dieses aus. 
Unterbrechen  (Strg)+(Untbr)  Unterbricht die Ausführung Ihres VBA-Quelltextes und sorgt dafür, daß der VB-Editor in den Haltemodus wechselt. (Den Haltemodus benötigen Sie beim Testen Ihres VBA-Quelltextes und deshalb wird er ebenfalls an Tag 14 behandelt.) 
Beenden <Projekt>  Löscht alle Variablen auf Modulebene und die Aufrufeliste. (Variablen werden an Tag 3 und die Aufrufeliste an Tag 14 vorgestellt.) 
Entwurfsmodus  Schaltet den Entwurfsmodus für ein Projekt an und aus. Befinden Sie sich im Entwurfsmodus, können Befehle und Testläufe des Projekts nicht ausgeführt werden. 
Das Menü Extras
Mit den Befehlen des Menüs Extras können Sie nicht nur das auszuführende Makro auswählen, sondern sie verschaffen Ihnen auch Zugang zu externen Makro-Bibliotheken und zu weiteren Formular-Steuerelementen, die nicht Bestandteil von VBA sind. Unter dem Menü Extras finden Sie auch das Dialogfeld Optionen des VB-Editors und die Eigenschaften des derzeit im Projekt-Explorer ausgewählten VBA-Projekts. In Tabelle 2.8 finden Sie die Befehle des Menüs Extras und die damit verbundenen Aktionen. Für die Befehle in diesem Menü gibt es keine Shortcuts. 

Tabelle 2.8: Befehle im Menü Extras 

Befehl  Aktion 
Verweise  Zeigt das Dialogfeld Verweise, mit dem Sie Querverweise zu Objekt- oder Typbibliotheken sowie anderen Projekten einfügen können. Nachdem Sie den Verweis festgelegt haben, werden die Objekte, Methoden, Eigenschaften, Prozeduren und Funktionen im Dialogfeld des Objektkatalogs angezeigt. 
Weitere Steuerelemente  Zeigt das Dialogfeld Weitere Steuerelemente, mit dem Sie die Symbolleisten der Werkzeugsammlung anpassen können, so daß Sie Formularen auch Steuerelemente hinzufügen können, die nicht in VBA integriert sind. Mit diesem Dialogfeld können Sie den Symbolleisten der Werkzeugsammlung auch Schaltflächen hinzufügen, die es Ihnen erlauben, einem Formular einfügbare Objekte, wie Excel-Arbeitsmappen oder Word-Dokumente, hinzuzufügen. 
Makros  Zeigt das Dialogfeld Makros an, mit dem Sie Makros erstellen, bearbeiten, ausführen oder löschen können. 
Optionen  Zeigt das Dialogfeld Optionen an, mit dem Sie unterschiedliche Optionen, für den VB-Editor festlegen können. So können Sie in diesem Dialogfeld zum Beispiel die Anzahl der Leerschritte eines Tab-Stopps bei der Syntax-Überprüfung ihrer Anweisungen definieren. Die unterschiedlichen Einstellungsmöglichkeiten im Dialogfeld Optionen werden in diesem Buch dann detailliert vorgestellt, wenn sie für eine bestimmte Programmieraufgabe relevant sind. 
<Projekt>Eigenschaften  Zeigt das Dialogfeld Projekteigenschaften an, mit dem sie unterschiedliche Eigenschaften Ihres VBA-Projekts, wie Name, Beschreibung und die Hilfedatei, festlegen können. In dem Dialogfeld Projekteigenschaften können Sie auch ein Schlüsselwort eingeben und somit Ihr Projekt vor fremden Zugriff schützen. 
Weitere Menüs
Der VB-Editor verfügt über zwei weitere Menüs: das Menü Fenster und das Menü Hilfe. Die Befehle dieser Menüs sind identisch mit denen des Menüs Fenster und des Menüs Hilfe anderer Microsoft-Windows-Anwendungen. Mit Hilfe der Befehle im Menü Fenster können Sie das aktive Fenster öffnen, das Fenster teilen, die Unterfenster des VB-Editors vertikal, horizontal oder kaskadenförmig anordnen und die Schaltflächen von minimierten Unterfenstern in einer Reihe darstellen lassen. Die Befehle des Menüs Fenster werden nicht weiter erläutert, da Sie diese bereits aus Word und Excel sowie allen anderen Windows-Anwendungen von Microsoft kennen.

Die Befehle im Menü Hilfe sind ebenfalls identisch mit den Hilfe-Befehlen, die Sie bereits aus Word, Excel und anderen Windows-Anwendungen von Microsoft kennen. Im Menü Hilfe finden Sie den Office-Assistenten, der Sie bei kontextorientierten Fragen unterstützt. Außerdem können Sie sich die VBA-Online-Hilfedateien der Host-Anwendung ansehen, aus der der VB-Editor gestartet wurde. Wenn Sie ein Modem oder einen Internet-Anschluß haben und den Befehl Microsoft im Web im Menü Hilfe anklicken, rufen Sie eine Reihe von Webseiten auf, in denen Sie Informationen über Microsoft-Produkte und VBA erhalten.

Der letzte Befehl des Menüs Hilfe ist Microsoft Visual Basic Info. Mit diesem Befehl öffnen Sie ein Dialogfeld, das Informationen über das Copyright von Microsoft Visual Basic enthält. In diesem Menü finden Sie auch die Schaltfläche Systeminfo, die Ihnen Informationen über Ihren Computer anzeigt, zum Beispiel welche Grafik- und Soundkarte oder welcher Druckertreiber installiert wurde. Ferner finden Sie technische Informationen wie Informationen darüber, welche Programme sich im Arbeitsspeicher befinden und welche Programme in der Windows-Systemregistrierung registriert wurden. An Tag 19, »Zusammenarbeit mit anderen Anwendungen: OLE- und Automatisierung«, wird Ihnen gezeigt, wie Sie das Dialogfeld Microsoft Visual Basic Info einsetzen müssen, um Informationen über OLE und Automatisierungsobjekte zu finden.

Einführung in die Symbolleisten des VB-Editors

Für viele Benutzer ist es einfacher, per Mausklick auf eine Schaltfläche einen Befehl aufzurufen, als einen Menübefehl zu aktivieren. Daher stehen beim VB-Editor die wichtigsten Befehle als Schaltflächen auf einer Symbolleiste zur Verfügung. Wenn Sie oft und lange mit dem VB-Editor arbeiten, werden Sie feststellen, daß Befehlsschaltflächen Ihre Arbeitszeit verkürzen.

Normalerweise wird beim VB-Editor nur die Standardsymbolleiste angezeigt, wie in Abbildung 2.5 dargestellt. Zusätzlich zur Standardsymbolleiste verfügt der VB-Editor noch über drei weitere Symbolleisten: Bearbeiten, Testen und UserForm. Der Gebrauch der Symbolleiste Testen wird an Tag 14 und der der Symbolleiste UserForm an Tag 15 vorgestellt.

Die Symbolleiste Bearbeiten des VB-Editors enthält mehrere Befehle, die Sie bei der Bearbeitung des Textes im Code-Fenster benötigen. Die Symbolleiste Bearbeiten enthält darüber hinaus sogar einige Befehle, die Sie nicht auf der Standardsymbolleiste finden. Die Symbolleiste Bearbeiten und die Standardsymbolleiste werden weiter unten in diesem Abschnitt beschrieben.

Wie bei Word und Excel legen Sie die Anzeige der Symbolleiste fest, indem Sie im Menü Ansicht den Befehl Symbolleisten wählen. Da der VB-Editor die Symbolleiste Bearbeiten nicht standardmäßig einblendet, müssen Sie die Anzeige dieser Symbolleiste in einem Extraschritt aktivieren. Haben Sie oder ein anderer Benutzer die Standardsymbolleiste ausgeblendet, müssen Sie auch die Anzeige dieser Symbolleiste mit dem Befehl Symbolleisten aus dem Menü Ansicht neu aktivieren. Um die Symbolleisten des VB-Editors ein- oder auszublenden, gehen Sie wie folgt vor: 

1. Klicken Sie auf Ansicht und wählen Sie den Befehl Symbolleisten. Ein Untermenü wird geöffnet, in dem alle Symbolleisten des VB-Editors aufgelistet werden. 

2. Klicken Sie mit der Maus auf die Symbolleiste, die angezeigt werden soll. Um die Symbolleiste Bearbeiten anzuzeigen, müssen Sie in der Liste auf Bearbeiten klicken. Der VB-Editor zeigt dann die ausgewählte Symbolleiste an. 


 

Wenn Sie mit dem Mauszeiger auf eine eingeblendete Symbolleiste gehen und dann die rechte Maustaste drücken, öffnet sich ebenfalls das Untermenü mit den zur Verfügung stehenden Symbolleisten. Dieses Pop-up-Menü können Sie also auch verwenden, wenn Sie Symbolleisten einblenden wollen. 


Normalerweise zeigt der VB-Editor die Standardsymbolleiste in der verankerten Positionen, das heißt am oberen Fensterrand des VB-Editors. In Abbildung 2.1 sehen Sie eine Bildschirmdarstellung mit der Standardsymbolleiste in ihrer verankerten Position. Die Symbolleisten können sich auch in einem verschiebbaren Fenster befinden. Dann spricht man von unverankerten Symbolleisten. Wurde die Verankerung von Symbolleisten gelöst, erscheinen sie in Fenstern mit Rändern und Titelleisten. In Abbildung 2.6 sehen Sie die Symbolleiste Bearbeiten, deren Verankerung gelöst wurde. Das Verankern und Lösen erfolgt im VB-Editor nach dem gleichen Prinzip wie bei Word und Excel: Erfassen Sie mit dem Mauszeiger den Leistenrand. Ziehen Sie die Symbolleiste an die gewünschte Position. Halten Sie dabei die linke Maustaste gedrückt. (Nutzen Sie die Online-Hilfe des VB-Editors, um mehr Informationen zum Anzeigen, Verschieben, Verankern und Lösen von Symbolleisten zu bekommen).

In den nächsten Absätzen werden zunächst die Befehle der Standardsymbolleiste und dann die Befehle auf der Symbolleiste Bearbeiten vorgestellt.

Die Standardsymbolleiste

Auf der Standardsymbolleiste befinden sich 18 Schaltflächen. Jede Schaltfläche ist ein Symbol für einen Menübefehl. In Tabelle 2.9 finden Sie eine Beschreibung der Aktionen, die durch das Anklicken der jeweiligen Schaltfläche auf der Symbolleiste ausgelöst werden. In Abbildung 2.5 sehen Sie die Symbole der Befehlsschaltflächen für die Befehle, die in Tabelle 2.9 beschrieben werden. 

siehe Abbildung 

Abbildung 2.5: 
Die Standardsymbolleiste des VB-Editors enthält Schaltflächen für die wichtigsten und am häufigsten benutzten Befehle. 


 

Alle Symbolleisten des VB-Editors können angepaßt werden. Die Anpassung der Symbolleisten erfolgt bei VBA genauso wie bei Word 97 und Excel 97. Die Tabellen 2.9 und 2.10 in Kombination mit den Abbildungen 2.5 und 2.6 stellen die Standardeinstellung der Standardsymbolleiste und der Symbolleiste Bearbeiten des VB-Editors dar. Wurden diese Symbolleisten von Ihnen oder einem anderen Benutzer verändert, werden sich auf Ihrer Symbolleiste Schaltflächen befinden, die hier nicht beschrieben werden. Weitere Informationen finden Sie auch in der Online-Hilfe des VB-Editors. 


Tabelle 2.9: Die Befehle der Standardsymbolleiste 

Schaltfläche  Aktion 
Ansicht <Host-Anwendung>  Bringt Sie in die VBA-Host-Anwendung zurück, aus der Sie den VB-Editor gestartet haben. Das Aussehen dieser Schaltfläche hängt von der Host-Anwendung ab, aus der Sie die Arbeit mit dem VB-Editor aufgenommen haben. In Abbildung 2.5 wurde der VB-Editor aus Word gestartet. 
Objekt einfügen  Durch Anklicken des nach unten zeigenden Pfeils in der rechten Schaltflächenhälfte wird eine Liste mit Objekten geöffnet, die Sie in Ihr Projekt einfügen können: UserForm, Modul, Klassenmodul oder Prozedur. Die gleichen Befehle finden Sie auch im Menü Einfügen. 
Speichern  Speichert alle geöffneten Projekte. Speichern können Sie auch durch Anklicken des Befehls Speichern im Menü Datei. 
Ausschneiden  Schneidet markierte Textteile oder Objekte aus und speichert diese in der Zwischenablage. Ausschneiden können Sie ebenfalls mit dem Befehl Ausschneiden im Menü Bearbeiten. 
Kopieren  Kopiert markierte Textteile oder Objekte in die Zwischenablage. Durch Anklicken von Kopieren im Menü Bearbeiten erreichen Sie das gleiche Ziel. 
Einfügen  Fügt Texte oder Objekte aus der Zwischenablage in das Code-Fenster oder das Benutzerformular ein, wobei die Position des Cursors der Einfügestelle entspricht. Einfügen können Sie auch durch Anklicken von Einfügen im Menü Bearbeiten. 
Suchen  Öffnet das Dialogfeld Suchen, damit ein bestimmtes Wort oder ein Ausdruck in einem Modul gesucht werden kann. Die Suchfunktion können Sie auch über Suchen im Menü Bearbeiten aktivieren. 
Rückgängig  Macht den letzten Befehl rückgängig, wenn möglich. Nicht alle Befehle können rückgängig gemacht werden. Das gleiche Ergebnis erzielen Sie durch Anklicken von Rückgängig im Menü Bearbeiten. 
Wiederholen  Wiederholt den zuvor rückgängig gemachten Befehl. Dies können 
Sie auch durch Anklicken von Wiederholen im Menü Bearbeiten erreichen. 
Makro ausführen  Führt die aktuelle Prozedur oder das Formular aus. Durch Anklicken des Befehls Sub-/UserForm ausführen bzw Makro ausführen im Menü Ausführen aktivieren Sie den gleichen Befehl. 
Unterbrechen  Unterbricht die Ausführung Ihres VBA-Quelltextes, genauso wie der Befehl Unterbrechen des Menüs Ausführen 
Beenden  Bringt Ihren VBA-Quelltext wieder in die Ausgangsposition, genauso wie der Befehl Beenden im Menü Ausführen. 
Entwurfsmodus  Öffnet den Entwurfsmodus in Ihrem VB-Editor, genauso wie der Befehl Entwurfsmodus im Menü Ausführen. 
Projekt-Explorer  Öffnet das Fenster des Projekt-Explorer, genauso wie der Befehl Projekt-Explorer im Menü Ansicht. 
Eigenschaften-Fenster  Öffnet das Eigenschaften-Fenster, genauso wie der Befehl Eigenschaften-Fenster im Menü Ansicht. 
Objektkatalog  Öffnet das Dialogfeld Objektkatalog, genauso wie der Befehl Objektkatalog im Menü Ansicht. 
Werkzeugsammlung  Blendet die Symbolleiste Werkzeugsammlung ein, genauso wie der Befehl Werkzeugsammlung im Menü Ansicht. 
Office-Assistent  Blendet den Office Assistenten ein, der eingreifen kann, wenn während der Arbeit Probleme auftreten. Direkthilfe erhalten Sie auch, wenn Sie den Befehl Microsoft-Visual-Basic-Hilfe in dem Menü Hilfe anklicken. 
Cursorposition  Hier handelt es sich nicht um eine Schaltfläche im eigentlichen Sinne. Diese Anzeige erscheint nur, wenn der Cursor sich im Code-Fenster befindet. Sie können ihr entnehmen, in welcher Zeile und welcher Spalte des Moduls sich die Einfügemarke befindet. In Abbildung 2.5 befindet sich die Einfügemarke in Zeile 1 der Spalte 5. 


 

Wie schon bei den Menübefehlen sollten Sie sich hier nicht verunsichern lassen, wenn Sie die Bedeutung der einzelnen Schaltflächen auf der Symbolleiste des VB-Editors jetzt noch nicht vollständig verstehen. Die detaillierte Beschreibung der Schaltflächen erfolgt später, wenn Sie für bestimmte Aufgaben relevant sind. Die Funktion dieses Abschnitts besteht ausschließlich darin, die Schaltflächen auf den Symbolleisten des VB-Editors vorzustellen. 


Die Symbolleiste Bearbeiten
Da Sie zunehmend Ihre eigenen VBA-Quelltexte im Code-Fenster erstellen, werden Sie es wahrscheinlich als große Erleichterung empfinden, daß die Symbolleiste Bearbeiten Symbole für die wichtigsten Aktionen zur Verfügung stellt. Der VB-Editor blendet die Symbolleiste Bearbeiten nicht automatisch ein. Das Einblenden der Symbolleiste muß zuvor mindestens einmal manuell geschehen. Gehen Sie dabei wie am Anfang dieses Abschnitts beschrieben vor. In Tabelle 2.1 finden Sie die Befehle für die Standardschaltflächen der Symbolleiste Bearbeiten und deren Aktionen. Welcher Befehl sich hinter welchem Symbol verbirgt, können Sie Abbildung 2.6 entnehmen. 

siehe Abbildung 

Abbildung 2.6: 
Die Symbolleiste Bearbeiten bietet Ihnen verschiedene Shortcuts für die am häufigsten bei der Bearbeitung benutzten Befehle. 


 

Sie können die Symbolleiste Bearbeiten genauso wie jede andere Symbolleiste verankern, indem Sie sie an den oberen oder unteren Rand sowie in die rechte oder linke Ecke des VB-Editor-Fensters ziehen. 


Tabelle 2.10: Die Befehle der Symbolleiste Bearbeiten 

Schaltfläche  Aktion 
Eigenschaften/Methoden anzeigen  Öffnet eine Drop-down-Liste mit den Eigenschaften und Methoden, die zu einem gerade eingegebenen Objekt gehören. Diese Liste können Sie auch mit dem Befehl Eigenschaften/Methoden anzeigen aus dem Menü Bearbeiten öffnen. 
Konstanten anzeigen  Öffnet eine Drop-down-Liste mit bereits definierten Konstanten, genauso wie der Befehl Konstanten anzeigen aus dem Menü Bearbeiten. 
Quickinfo  Öffnet ein Fenster, das die richtige Syntax für eine Objektmethode anzeigt, genauso wie der Befehl Quickinfo im Menü Bearbeiten. 
Parameterinfo  Öffnet ein Fenster, das die Parameter (auch Argumente genannt) anzeigt. Parameterinfo aus dem Menü Bearbeiten öffnet ebenfalls dieses Fenster. 
Wort vervollständigen  Vervollständigt das VBA-Schlüsselwort. Sobald genügend Buchstaben eingegeben wurden, ist VBA in der Lage, das Wort zu identifizieren und zu vervollständigen. Dieser Befehl kann auch durch das Anklicken von Wort vervollständigen aus dem Menü Bearbeiten aktiviert werden. 
Einzug vergrössern  Rückt einen oder mehrere Absätze um eine Ebene ein, genauso wie Einzug vergrössern aus dem Menü Bearbeiten. 
Einzug verkleinern  Entfernt eine Einzugsebene für einen oder mehrere Absätze, genauso wie Einzug verkleinern aus dem Menü Bearbeiten. 
Haltepunkt ein/aus  Fügt einen Haltepunkt in Ihren VBA-Quelltext ein oder entfernt diesen, genauso wie Haltepunkt ein/aus aus dem Menü Testen. 
Block auskommentieren  Durch Einfügen eines Kommentarzeichens vor jeder ausgewählten Zeile wird ein Textabschnitt im Code-Fenster zu einem Kommentar. Für diese Schaltfläche gibt es keine äquivalenten Menübefehle. Kommentare und Kommentarzeichen werden weiter unten vorgestellt. 
Auskommentierung des Blocks aufheben  Entfernt die Kommentarzeichen aus einem markierten Textteil im Code-Fenster. Für diese Schaltfläche gibt es keine äquivalenten Menübefehle. 
Lesezeichen setzen/zurücksetzen  Fügt ein Lesezeichen in Ihren VBA-Quelltext ein oder entfernt es. Lesezeichen setzen oder zurücksetzen können Sie ebenfalls durch Anklicken von Lesezeichen setzen/zurücksetzen im Untermenü Lesezeichen, das Sie im Menü Bearbeiten finden. 
Nächstes Lesezeichen  Dieser Befehl verschiebt die Einfügemarke auf das nächste Lesezeichen im Code-Fenster, genauso wie Nächstes Lesezeichen unter Lesezeichen im Menü Bearbeiten. 
Vorheriges Lesezeichen  Dieser Befehl verschiebt die Einfügemarke auf das vorherige Lesezeichen im Code-Fenster, genauso wie Vorheriges Lesezeichen unter Lesezeichen im Menü Bearbeiten. 
Alle Lesezeichen löschen  Löscht alle Lesezeichen in einem Modul, genauso wie Alle Lesezeichen Löschen unter Lesezeichen im Menü Bearbeiten. 


 

Es gibt VBA-Host-Anwendungen, wie zum Beispiel Access 97, die nicht über den hier vorgestellten VB-Editor verfügen. Access 97 verfügt zum Beispiel über eine Arbeitsumgebung für VBA, die jedoch ähnliche Merkmale aufweist wie der VB-Editor. In VBA-Host-Anwendungen, die nicht mit dem VB-Editor arbeiten, finden Sie normalerweise eine VBA-Symbolleisten und ähnliche Menüs wie die in diesem Kapitel beschriebenen, wobei sich jedoch einige Schaltflächen und Befehle unterscheiden. Allgemein gilt jedoch: Die Arbeitsumgebung für die VBA-Programmierung in anderen Anwendungen als Word 97 oder Excel 97 sind dem hier vorgestellten VB-Editor sehr ähnlich – und das ist bei Verwendung von VBA in erster Linie das wichtigste. 


Makros bearbeiten

Bevor Sie ein Makro bearbeiten können, müssen Sie sich das Modul, in dem sich das Makro befindet, anzeigen lassen. Dann müssen Sie das Makro aus dem Modul auswählen. Wenn sie zum Beispiel den Quelltext des Makros EmphasizeWord, das Sie am Tag 1 in Word 97 aufgezeichnet haben, bearbeiten wollen, müssen Sie zunächst dasjenige Modul aus NORMAL.DOT, wo Sie das aufgezeichnete Makro gespeichert haben, anzeigen lassen, das den zugehörigen Quelltext enthält. An Tag 1 haben Sie außerdem das Makro FormatArialBold12 aufgezeichnet. Wollen Sie den Quelltext dieses Makros bearbeiten, müssen Sie zuerst das entsprechende Modul aus der Arbeitsmappe PERSONAL.XLS, wo Sie es an Tag 1 gespeichert haben, aktivieren.

Im nächsten Kapitel lernen Sie ein VBA-Modul anzuzeigen sowie unterschiedliche Methoden, um spezielle Makros zu finden. Im Anschluß daran werden die verschiedenen Elemente eines aufgezeichneten Makros vorgestellt und danach wird beschrieben, wie das Makro bearbeitet werden kann.

Ein Modul anzeigen

Bevor Sie ein bestimmtes Makro anzeigen und bearbeiten können, müssen Sie das Modul anzeigen lassen, in dem sich das Makro befindet. Um ein Modul anzuzeigen, gehen Sie wie folgt vor: 

1. Drücken Sie (Alt)+(F11), um den VB-Editor zu aktivieren, falls dieses noch nicht geschehen ist. 

2. Klicken Sie auf Projekt-Explorer im Menü Ansicht, um das Projekt-Explorer-Fenster zu öffnen, wenn es noch nicht geöffnet wurde. 

3. Navigieren Sie durch die Baumstruktur des Projekt-Explorer, um das gewünschte Modul zu finden. Befindet sich der Projekt-Explorer im Modus Ordneransicht, werden alle Module eines Projekts im Ordner Module angezeigt. (In Abbildungen 2.1 und 2.7 sehen Sie die Baumstruktur des Projekt-Explorer). 

4. Doppelklicken Sie auf das Modul, das Sie anzeigen wollen. Der VB-Editor zeigt das Modul im Code-Fenster an.

Nachdem Sie das Modul geöffnet haben, können Sie mit Hilfe des Listenfelds Prozedur des Code-Fensters ein spezielles Makro dieses Moduls aktivieren. Sie können ein Makro auch anzeigen, ohne zuvor das Modul zu öffnen. Gehen Sie dabei nach der im folgenden Abschnitt beschriebenen Technik vor.

Aufgezeichnete Makros suchen

Am Anfang dieser Lektion haben Sie gelernt, daß Word neu erstellte Makros, die Sie in einer DOC.- oder DOT.-Datei gespeichert haben, in einem Modul mit dem Namen NewMacros ablegt. Sie wissen auch, daß Excel 97, wenn nötig, neue Module erstellt, um neue Makros abzulegen.

Da Word immer das Modul NewMacros aus der Dokumentdatei oder der Dokumentvorlage auswählt, um neue Makros abzulegen, ist es recht einfach, einen Makro-Quelltext in Word zu finden. Einen Makro-Quelltext in Excel zu finden, ist jedoch eine etwas komplexere Aufgabe. Aufgrund der Art und Weise, wie Excel 97 neue Module in eine Arbeitsmappe einfügt und benennt, ist es möglich, daß Sie in einer Arbeitsmappe viele unterschiedliche Module mit nahezu identischen Namen finden. Das kann dazu führen, daß Sie nicht wissen, welches Modul Sie öffnen müssen, um ein bestimmtes Makro zu finden. Zum Beispiel haben Sie das Makro FormatArialBold12, das Sie an Tag 1 in Excel erstellt haben, in der Arbeitsmappe PERSONAL.XLS gespeichert. Ist dieses das erste Makro gewesen, das Sie aufgezeichnet und in der Arbeitsmappe PERSONAL.XLS abgelegt haben, hat Excel das Makro FormatArialBold12 in einem Modul mit dem Namen Module1 gespeichert. Wenn Sie jetzt in der gleichen Arbeitssitzung das Makro NewWorkbook aus Übung 1.4 aufgezeichnet haben, hat Excel dieses ebenfalls in dem Modul Modul1 gespeichert. Haben Sie Excel jedoch nach dem Aufzeichnen des Makros FormatArialBold12 verlassen und das Makro NewWorkbook in einer neuen Sitzung erstellt, wird Excel NewWorkbook in einem neuen Modul, höchstwahrscheinlich mit Namen Modul2, gespeichert. Dieses Beispiel macht deutlich, daß Sie nicht sofort erkennen können, in welchem Modul der Arbeitsmappe PERSONAL.XLS sich das Makro NewWorkbook befindet. Wenn Sie den Quelltext dieses Makros bearbeiten wollen, müssen Sie eigentlich alle Module der Arbeitsmappe öffnen, um das gewünschte Makro zu finden.

Die Suchfunktion des Objektkatalogs

Anstatt die Texte aller Module nach dem gewünschten Makro zu durchforsten, können Sie sowohl in Word als auch in Excel den Objektkatalog verwenden, um das Makro, das Sie öffnen und bearbeiten wollen, zu finden.

Um Makros mit Hilfe des Objektkatalogs zu suchen und anzuzeigen, gehen Sie wie folgt vor:


 

Das hier beschriebene Verfahren zeigt Ihnen sowohl, wie Sie generell Makro-Quelltexte in Word und Excel suchen und anzeigen können, als auch, wie Sie die Suche für das Beispielmakro FormatArialBold12, das Sie an Tag 1 in Excel erstellt haben, durchführen. Wollen Sie dieses Beispiel selbst am Computer nachvollziehen, starten Sie Excel und beginnen Sie dann mit Schritt 1. 


1. Drücken Sie (Alt)+(F11), um den VB-Editor zu starten, falls dieses noch nicht geschehen ist. 

2. Wählen Sie Projekt-Explorer aus dem Menü Ansicht, um das Fenster des Projekt-Explorer zu öffnen, falls es noch nicht geöffnet wurde (siehe Abbildung 2.7). 

siehe Abbildung 

Abbildung 2.7: 
Wählen Sie im Projekt-Explorer ein Projekt aus, bevor Sie im Objektkatalog ein Makro suchen. 

3. Wählen Sie im Projekt-Explorer ein VBA-Projekt, in dem Sie nach dem Makro suchen wollen. Abbildung 2.7 zeigt zum Beispiel, daß die Arbeitsmappe PERSONAL.XLS im Projekt-Explorer ausgewählt wurde. 


 

Sie müssen das VBA-Projekt, in dem Sie das Makro suchen wollen, aus dem Projekt-Explorer auswählen, bevor Sie den Suchvorgang mit dem Objektkatalog starten können. Die Makros Ihres Projekts werden nur im Objektkatalog angezeigt, wenn das Projekt im Projekt-Explorer markiert wurde. 


4. Wählen Sie Objektkatalog aus dem Menü Ansicht. Der VB-Editor öffnet das Dialogfeld Objektkatalog, das in Abbildung 2.8 dargestellt ist.


 

Sie können den Objektkatalog auch starten, indem Sie die Schaltfläche Objektkatalog auf der Symbolleiste des VB-Editors anklicken. 


5. Vergewissern Sie sich, daß im Textfeld der Drop-down-Liste Projekt/Bibliothek <Alle Bibliotheken> steht (siehe Abbildung 2.8) Der Objektkatalog zeigt alle zur Verfügung stehenden Module und Objekte in der Liste Klassen an. 

6. Schreiben Sie den Namen des gesuchten Makros in das Feld Suchtext. Um zum Beispiel den Quelltext des Beispielmakros FormatArialBold12 zu suchen, schreiben Sie FormatArialBold12 in das Feld Suchentext. 

siehe Abbildung 

Abbildung 2.8: 
Benutzen Sie das Dialogfeld des Objektkatalogs, um nach Makros und den Modulen zu suchen, in denen sie gespeichert sind. 

7. Klicken Sie auf die Schaltfläche Suchen im Objektkatalog (siehe Abb. 2.8). Der Objektkatalog durchsucht sowohl Ihr VBA-Projekt als auch andere geöffnete Objekt-Bibliotheken nach dem Suchbegriff, den Sie in das Feld Suchentext eingegeben haben. 

Nach dem Suchvorgang ändert sich auf dem Bildschirm das Fenster des Objektkatalogs. Dieser zeigt jetzt eine Liste mit den Suchergebnissen an, wie in Abbildung 2.9 dargestellt. Wenn der Objektkatalog Makros findet, deren Namen mit dem Suchtext übereinstimmen, werden diese in der Liste Suchergebnisse angezeigt. Findet er keine identischen Benennungen, steht in dieser Liste die Meldung: Keine Elemente gefunden. 

8. Markieren Sie das Makro in der Liste Suchergebnisse und klikken Sie dann im Objektkatalog auf die Schaltfläche Definition anzeigen (siehe Abb. 2.8). Der Objektkatalog öffnet jetzt das Code-Fenster mit dem Modul, in dem sich das gewünschten Makro befindet, und zeigt den Quelltext dieses Makros an. 

siehe Abbildung 

Abbildung 2.9: 
Der Objektkatalog nach Beendigung der Suche nach dem Makro FormatArialBold12 im VBA-Projekt Personal.xls. 

Wenn Sie die Schaltfläche Definition anzeigen anklicken, öffnet der VB-Editor das Code-Fenster und zeigt das Modul mit dem gesuchten Makro an, wobei die Einfügemarke an den Anfang des Makro-Quelltextes springt.

Projektmodule mit dem Objektkatalog auflisten

Befinden sich in Ihrem Projekt nur wenige Module, werden Sie folgende Alternative zum Suchen eines Makros möglicherweise bevorzugen. 

1. Drücken Sie (Alt)+(F11), um den VB-Editor zu öffnen. 

2. Wählen Sie Projekt-Explorer aus dem Menü Ansicht, um das Fenster des Projekt-Explorer zu öffnen, falls dies noch nicht geschehen ist. 

3. Klicken Sie im Fenster des Projekt-Explorer auf das VBA-Projekt, in dem Sie das Makro vermuten. 

4. Klicken Sie im Menü Ansicht auf Objektkatalog. Der VB-Editor öffnet das Dialogfeld Objektkatalog. 

5. Wählen Sie aus der Drop-down-Liste Projekt/Bibliothek im Objektkatalog den Namen Ihres Projekts. Wenn Sie keine Veränderungen vorgenommen haben, hat Ihr Projekt in Excel den Namen VBAProject und in Word Project. Wie Sie den Projektnamen verändern können, wird Ihnen in einem späteren Kapitel gezeigt.


 

In Word 97 ist Normal der Standardname für ein VBA-Projekt, das in der Vorlage NORMAL.DOT gespeichert wurde. 


6. Wählen Sie ein Modul aus der Liste Klassen. Der Objektkatalog zeigt nun alle Makros des ausgewählten Moduls in der Liste Elemente von <Objekt>. (Die exakte Benennung dieser Liste ändert sich entsprechend des Objekts, das in der Liste Klassen ausgewählt wurde). 

7. Markieren Sie in der Liste Elemente von <Objekt> das Makro, dessen Quelltext angezeigt werden soll. 

8. Klicken Sie im Objektkatalog auf die Schaltfläche Definition anzeigen. Der VB-Editor öffnet das Code-Fenster mit dem Modul, in dem sich das Makro befindet, und zeigt den Quelltext an.

Haben Sie nur ein einziges Projekt in der Drop-down-Liste Projekt/Bibliothek markiert, werden in der Liste Klassen nur die Objekte angezeigt, die Teil Ihres Projekts sind. Diese setzen sich dann gewöhnlich aus einem oder mehreren Modulen, dem Word-Dokument oder der Excel-Arbeitsmappe zusammen, die dann wiederum aus einem oder mehreren Tabellenblättern bestehen kann.

In Abbildung 2.10 sehen Sie zum Beispiel das Fenster des Objektkatalogs mit der Liste Projekt/Bibliothek, aus der für die Vorlage PERSONAL.XLS das VBA-Projekt ausgewählt wurde. In Abbildung 2.10 können Sie außerdem sehen, daß in der Liste Klassen ThisWorkbook (ein Hinweis auf PERSONAL.XLS) zwei Module und ein Tabellenblatt angezeigt werden. 

siehe Abbildung 

Abbildung 2.10: 
Sie können den Objektkatalog auch benutzen, um sich den Inhalt der verschiedenen Objekte in Ihrem Projekt anzusehen. 

Nachdem mit einer der zuvor beschriebenen Methoden ein Makro in das Code-Fenster geladen wurde, können Sie sich den Quelltext ansehen oder ihn bearbeiten. In Abbildung 2.11 sehen Sie im Code-Fenster den Quelltext des Beispielmakros NewWorkbook, das Sie an Tag 1 in Übung 1.4 erstellt haben. In Abbildung 2.11 wurden der Projekt-Explorer und das Eigenschaften-Fenster geschlossen, so daß das Code-Fenster seine maximale Größe einnehmen kann. 

siehe Abbildung 

Abbildung 2.11: 
Sie können den Objektkatalog auch benutzen, um sich den Inhalt der verschiedenen Objekte in Ihrem Projekt anzusehen. 

Wenn Sie das Makro, das Sie bearbeiten wollen, geöffnet haben, können Sie mit Hilfe der horizontalen und vertikalen Bildlaufleisten die Position des Makros festlegen. Das Suchen nach einem Makronamen durch Auswahl des Befehls Suchen im Menü Bearbeiten ist identisch mit der Textsuche in einem Excel-Tabellenblatt oder einem Word-Dokument. (Verwenden Sie die Online-Hilfe des VB-Editors, wenn Sie nähere Informationen zu diesem Befehl wünschen).


 

Denken Sie daran, daß Sie im Fenster des Projekt-Explorer durch Doppelklicken jedes Modul öffnen können. 

Denken Sie daran, daß Sie Makros im Code-Fenster auch suchen können, indem Sie in der Liste Prozedur das Makro, das Sie anzeigen oder bearbeiten wollen, auswählen. 

Vergessen Sie nicht, daß im Projekt-Explorer nur Projekte aus geöffneten Dokumenten oder Arbeitsmappen aufgelistet werden. Finden Sie die gewünschte Projektdatei (.DOC, .DOT, .XLS, or .XLA) nicht im Projekt-Explorer, kehren Sie zurück in die Host-Anwendung, aus der Sie den VB-Editor gestartet haben, und öffnen Sie die benötigte Datei. 

Vergessen Sie nicht, daß der Objektkatalog nur Objekte anzeigt, die sich in dem Projekt befinden, das Sie im Projekt-Explorer ausgewählt haben oder auf das verwiesen wird. 


Teile eines aufgezeichneten Makros

Wenn Sie mehrere aufgezeichnete Makros miteinander vergleichen, werden Sie feststellen, daß sie alle bestimmte Eigenschaften gemeinsam haben. Listing 2.1 zeigt den Quelltext des Excel-Makros FormatArialBold12, das Sie an Tag 1 erstellt haben. Listing 2.2 zeigt den Quelltext des Word-Makros EmphasizeWord, das Sie ebenfalls an Tag 1 aufgezeichnet haben.


 

Auf Ihrem Bildschirm wird der Makro-Quelltext im Modul ohne Numerierung angezeigt. In diesem Buch werden jedoch die einzelnen Zeilen der Listings durchnumeriert, damit Sie diese schneller wiederfinden, wenn auf eine bestimmte Zeile Bezug genommen wird. 


Listing 2.1: Das Excel-Makro FormatArialBold12.

 1:   Sub FormatArialBold12()
 2:   '
 3:   'FormatArialBold12 Macro
 4:   'Macro recorded 12/5/96 by Matthew Harris.
 5:   Formatiert Zelleninhalt mit Arial, 12 Punkt, Fett.
 6:   '
 7:   '
 8:   With Selection.Font
 9:      .Name = "Arial"
10:      Size = 12
11:      .Bold = True
12:      .Strikethrough = False
13:      .Superscript = False
14:      .Subscript = False
15:      .OutlineFont = False
16:      .Shadow = False
17:      .Underline = xlUnderlineStyleNone
18:      .ColorIndex = xlAutomatic
19:   End With
20:   End Sub
Listing 2.2: Das Makro EmphasizeWord
 1:   Sub Emphasize Word ()
 2:   '
 3:   EmphasizeWord Macro
 4:   Macro recorded 12/4/96 by Matthew Harris.
 5:   Weist ausgewähltem Textelement die Schrift 12 PunktFett, Arial zu
 6:   '
 7:      Selection.Font.Name = "Arial"
 8:      Selection.Font.Size = 12
 9:      Selection.Font.Bold = wdToggle
10:   End Sub

 

Sowohl in Listing 2.1 als auch in Listing 2.2 beginnt das aufgezeichnete Makro mit Zeile 1. Jedes VBA-Makro beginnt mit dem Schlüsselwort Sub, gefolgt von dem Makronamen. Die Zeile mit dem Schlüsselwort Sub und dem Makronamen wird als Deklarationszeile des Makros bezeichnet, da VBA das Makro mit Hilfe dieser Zeile als Makro identifiziert. Dem Makronamen folgen immer zwei leere Klammern. Der Zweck und Gebrauch dieser Klammern wird an den Tagen 6 und 11 erklärt. Im Moment ist es vollkommen ausreichend, wenn Sie wissen, daß diese Klammern immer direkt auf den Namen des aufgezeichneten Makros folgen. 



 

Ein Schlüsselwort ist ein Wort, das ein Element der Programmiersprache VBA ist. Im Gegensatz dazu gibt es Wörter wie den Makronamen, die der Benutzer festlegt. VBA-Schlüsselwörter werden, wenn sie im Fließtext auftreten, in der Schriftart Monospace im Fettdruck dargestellt. Im Listing werden sie nicht gesondert hervorgehoben. 


Die Zeilen 2 bis 7 in Listing 2.1 und die Zeilen 2 bis 6 in Listing 2.2 sind Kommentare. Ein Kommentar ist eine Zeile im VBA-Makro, die keine Befehle enthält, sondern die Aufgabe hat, Informationen über das Makro im Quelltext anzuzeigen. Beachten Sie, daß jede Kommentarzeile mit einem Apostroph (') beginnt. Jeder Text, der einem Apostroph folgt, wird von VBA bis zum Zeilenende als Kommentar interpretiert.

Der Quelltext eines Makros beginnt immer mit den Kommentarzeilen, die den Namen und die Beschreibung enthalten, die Sie in das Textfeld Beschreibung des Dialogfelds Makro aufzeichnen vor dem Starten des Makrorecorders eingegeben haben. Die Anzahl und der Inhalt der Kommentarzeilen eines aufgezeichneten Makros hängen vom Umfang Ihrer Beschreibung ab.

Direkt nach der Deklaration des Makros folgt der Rumpf des Makros (in dem Kommentarzeilen enthalten sein können oder auch nicht). Bei Listing 2.1 bilden die Zeilen 2 – 19 den Rumpf des Makros FormatArialBold12; und bei Listing 2.2 erstreckt sich der Rumpf des Makros EmphasizeWord von Zeile 2 bis Zeile 9. Jede Zeile des Makrorumpfes besteht aus einer oder mehreren VBA-Anweisungen. Eine VBA-Anweisung ist eine Reihe von Schlüsselwörtern und anderen Symbolen, die zusammen einen einzigen vollständigen Befehl in VBA ergeben. Dieses ist vergleichbar mit einem einzigen Satz in einer bestimmten Sprache. Da nun ein Absatz sich aus mehreren einzelnen Sätzen zusammensetzt, besteht auch ein VBA-Makro aus einer Reihe von einzelnen Anweisungen.

Die VBA-Anweisungen in einem aufgezeichneten Makro enthalten Befehle, die die Funktion haben, die gleichen Aktionen auszuführen, die Sie während der Aufzeichnung vorgenommen haben. Zum Beispiel werden in Zeile 9 des Listing 2.1 die Schriftart Arial und in Zeile 10 des gleichen Listing der Schriftgrad festlegt. In Listing 2.2 werden in Zeile 7 die Schriftart und in Zeile 8 der Schriftgrad definiert. Zeile 9 enthält den Befehl für die Umschaltung zum Fettdruck. Jede dieser Anweisungen ist mit den Aktionen identisch, die Sie während der Aufzeichnung des Makros vorgenommen haben.

Nach dem Rumpf folgt die Zeile mit den Schlüsselwörtern End Sub, die VBA mitteilen, daß das Ende des Makros erreicht wurde. Das Makro aus Listing 2.1 endet mit Zeile 20 und das Makro aus Listing 2.2 mit Zeile 10.

Wenn Sie ein Makro ausführen, startet VBA mit der ersten Zeile des Makrorumpfs, also der ersten Zeile nach der Deklaration, und führt die Befehle dieser Zeile nacheinander von links nach rechts aus. VBA geht dann zur nächsten Zeile über und führt deren Befehle aus. Die Anweisung End Sub signalisiert VBA, daß das Ende des Makros erreicht wurde. Bei der Ausführung ignoriert VBA Kommentarzeilen, die ebenfalls Bestandteil des Rumpfs sein können.

Wie Sie sehen können, werden die Zeilen der beiden aufgezeichneten Makros unterschiedlich weit vom linken Rand eingerückt. Durch die Weite des Einzugs wird sichtbar, welche Zeilen des Makros eine Einheit bilden. Der gesamte Rumpf des Makros befindet sich als Einrückung zwischen den Schlüsselwörtern Sub...End Sub. Dadurch hebt sich der Makrorumpf ab und Sie können ihn schnell und einfach erkennen. Manche Zeilen des Rumpfs, wie die Zeilen 9 bis 18 des Listing 2.1, sind sogar noch um eine weitere Ebene eingerückt. Diese zweite Einzugebene soll die Anweisungen zwischen den Schlüsselwörtern With...End With hervorheben. (Die Bedeutung der Anweisungen wird an den Tagen 7 und 11 erklärt):

Der Makrorecorder nimmt das Einrücken des Quelltextes bei der Erstellung des Makros automatisch vor und trägt somit zur übersichtlichen Gestaltung des Quelltextes bei. Wenn Sie Ihre Makros selber schreiben, sollten Sie den Quelltext ebenfalls einrücken, um die einzelnen Abschnitte des Textes voneinander zu trennen. Für die korrekte Ausführung des Makros ist das Einrücken der Zeilen jedoch nicht erforderlich. Die Makros der Listings 2.1 und 2.2 könnten ebenso problemlos ausgeführt werden, wenn jede Zeile am äußeren linken Rand des Moduls beginnen würde. Das Einrücken der Zeilen ist ein gestalterisches Element, das Programmierer sich zu eigen machen, um das Programm leichter verständlich zu machen und so die Pflege des Programms zu vereinfachen.

Wenn Sie einen farbigen Bildschirm verwenden, um sich ein Makro anzusehen, werden Sie feststellen, daß die unterschiedlichen Teile des Makros in unterschiedlichen Farben dargestellt werden. Kommentare werden in grüner Schrift und Schlüsselwörter wie Sub und End Sub in blauer Schrift auf dem Bildschirm angezeigt. Der restliche Text des Makros wird mit schwarzer Schrift dargestellt. Er enthält Daten und Programmanweisungen, die vom Benutzer erstellt wurden. VBA übernimmt selbständig die Farbzuweisung, so daß es für Sie einfach ist, zwischen den unterschiedlichen Teilen des Makros und den verschiedenen Anweisungen zu differenzieren.

Den Makrotext bearbeiten

Wenn Sie bereits mit Windows, Word oder Excel gearbeitet haben, sind Ihnen die Befehle und Methoden zur Bearbeitung eines Makro-Quelltextes in einem Modul vielleicht schon bekannt. Die Bearbeitung eines Moduls im Code-Fenster ähnelt der Bearbeitung von Text in einem Windows- oder einem Word-Editor. Um einem Modul Text hinzuzufügen oder um Text zu löschen, zu markieren, auszuschneiden und zu kopieren, verwenden Sie die gleichen Tastatur- oder Mausbefehle wie bei dem Windows- oder Word-Editor und wie in Word 97. (Siehe Tabellen 2.2 und 2.10, in denen die Befehle des Menüs Bearbeiten und der Symbolleisten, die im VB-Editor zur Verfügung stehen, aufgelistet werden.)


 

Mit dem Befehl Suchen im Menü Bearbeiten, können Sie bestimmte Begriffe oder Ausdrücke in einem Modul suchen. Mit dem Befehl Ersetzen im Menü Bearbeiten können Sie diese Begriffe oder Ausdrücke ersetzen. 


Veränderungen, die Sie in einem Modul vorgenommen haben, speichern Sie mit dem Befehl Speichern im Menü Datei des VB-Editors oder durch Anklicken der Schaltfläche Speichern auf der Symbolleiste. Änderungen werden gleichzeitig mit dem Dokument oder der Arbeitsmappe des jeweiligen Moduls gespeichert. (Bei Word werden beim Verlassen des Dokuments alle Änderungen automatisch in der Vorlage NORMAL.DOT gespeichert. Wenn Sie eine Excel-Arbeitsmappe verlassen, werden Sie gefragt, ob Sie die an PERSONAL.XLS vorgenommenen Änderungen speichern möchten).

Um die Bearbeitung eines Makros an einem Beispiel zu erläutern, werden dem in Übung 1.4 an Tag 1 aufgezeichneten Makros einige Kommentare hinzugefügt. In Listing 2.3 sehen Sie, wie das Makro NewWorkbook aus Übung 1.4 aussehen könnte. Der Makro-Quelltext des Listings 2.3 wurde noch einmal formatiert, so daß die Anweisungen problemlos auf einer Buchseite Platz finden. Das Format Ihres Makro-Quelltextes sieht etwas anders aus. Das gilt vor allem für die Zeilen 10 – 15 des Listing 2.3, die in dem aufgezeichneten Makro weniger Platz in Anspruch nehmen (siehe Abbildung 2.11).

Listing 2.3: Das Makro NewWorkbook

 1:   Sub NewWorkbook ()
 2:   '
 3:   ' NewWorkbook Makro
 4:   ' Makro am 14.12.96 von Matthew Harris aufgezeichnet.
 5:   ' Erzeugt und speichert eine neue Arbeitsmappe.
 6:   '
 7:
 8:   '
 9:      Workbooks.Add
10:      ActiveWorkbook.SaveAs    FileName:="C:\ Eigene Dateien\NewBook.xls", _
11:         FileFormat:= xlNormal, _
12:         Password:=" ", _
13:         WriteResPassword:=" ", _
14:         ReadOnlyRecommended:=False, _
15:         CreateBackup:=False, _
16:      ActiveWindow.Close
17:   End Sub

 

Das Zeilenfortsetzungszeichen von VBA 

Wenn Sie sich die Zeilen 10 bis 14 im Listing 2.3 noch einmal näher ansehen, finden Sie am Ende dieser Zeilen das Zeichen für Unterstreichung (_). Das Unterstreichungszeichen wird von dem ihm vorausgehenden Zeichen durch einen Leerschritt getrennt. Ein Leerzeichen in Kombination mit einer Unterstreichung am Zeilenende wird Zeilenfortsetzungszeichen genannt und signalisiert VBA, daß das Ende der Anweisung noch nicht erreicht wurde und die Anweisung in der nächsten Zeile fortgeführt wird. 

Die Zeilen 10 bis 15 des Listing 2.3 gehören daher zusammen und bilden eine einzige Anweisung. In diesem Listing ist es die Anweisung, die Arbeitsmappe zu speichern, wobei mehrere Optionen für die Speicherung zur Verfügung stehen. Um die Lesbarkeit des Makros zu steigern, hat der Makrorecorder eine logische Zeile mit Hilfe des Zeilenfortsetzungszeichen in mehrere physikalische Zeilen unterteilt. (Der Makro-Quelltext wurde dann noch weiter bearbeitet, wobei noch weitere Unterstreichungen eingefügt wurden). 

Wäre die eine logische Zeile nicht mit Hilfe des Zeilenfortsetzungszeichen in mehrere physikalische Zeilen aufgeteilt worden, würde die Länge dieser Anweisung die Breite eines Modulfensters übersteigen, auch wenn dieses auf seine volle Größe eingestellt worden wäre. Sie müßten dann den horizontalen Bildlauf benutzen, um sich die gesamte Zeile ansehen zu können. Das Zeilenfortsetzungszeichen können Sie später auch bei der Erstellung Ihrer eigenen Makros einsetzen, um die Lesbarkeit Ihrer Quelltexte zu steigern. 

Anweisungen, die sich durch den Gebrauch des Zeilenfortsetzungszeichens auf mehrere Zeilen erstrekken, werden um eine weitere Ebene eingerückt, so daß Sie schnell erkennen können, welche Zeilen zu einer Anweisung gehören. 


Um dem Makro NewWorkbook Kommentare hinzuzufügen, gehen Sie wie folgt vor: 

1. Bringen Sie die Einfügemarke an das Ende von Zeile 8 (siehe Listing 2.3). 

2. Drücken Sie auf die Eingabetaste, um eine Leerzeile einzufügen. 

3. Schreiben Sie einen Apostroph ('). Alle Kommentare beginnen mit einem Apostroph. 

4. Schreiben Sie jetzt Ihren Kommentar, in diesem Fall ist es der Satz: Die nächste Zeile erzeugt eine neue Arbeitsmappe. 

5. Wiederholen Sie die Schritte 1 und 2 und fügen Sie vor Zeile 10 eine Leerzeile ein (siehe Abbildung 2.3). 

6. Schreiben Sie einen Apostroph, um zu signalisieren, daß der folgende Text einen Kommentar darstellt; schreiben Sie dann: In der nächsten Zeile wird die Arbeitsmappe gespeichert.

Listing 2.4 enthält das geänderte Makro NewWorkbook. Die Zeilen 9 bis 11 sind die hinzugefügten Kommentarzeilen. Ihr bearbeitetes Makro sieht jetzt aus wie das Makro, das in Abbildung 2.12 dargestellt wird, vorausgesetzt, daß Sie Ihr Makro nicht zuvor neu formatiert haben, um es Listing 2.3 anzupassen.

Listing 2.4: Das Makro NewWorkbook mit den hinzugefügten Kommentaren.

 1:   Sub NewWork ()
 2:   '
 3:   ' NewWorkbook Makro
 4:   ' Makro am 14.12.96 von Matthew Harris aufgezeichnet.
 5:   ' Erzeugt und speichert eine neue Arbeitsmappe.
 6:   '
 7:
 8:   '
 9:   'Die nächste Zeile erzeugt eine neue Arbeitsmappe.
10:      Workbooks.Add
11:   'In der nächsten Zeile wird die Arbeitsmappe gespeichert.
12:      ActiveWorkbook.SaveAs    FileName:="C:\Eigene Dateien\NewBook.xls", _
13:         FileFormat:= xlNormal, _
14:         Password:=" ", _
15:         WriteResPassword:=" ", _
16:         ReadOnlyRecommended:=False, _
17:         CreateBackup:=False
18:   'In der nächsten Zeile wird die Arbeitsmappe geschlossen.
19:      ActiveWindow.Close
20:   End Sub

siehe Abbildung 

Abbildung 2.12: 
Das bearbeitete Makro NewWorkbook im Code-Fenster. 

Wenn Sie Ihrem Makro NewWorkbook die Kommentare hinzufügen, werden Sie feststellen, daß die Schrift in der neu eingefügten Zeile zunächst schwarz auf Ihrem Bildschirm erscheint. Wenn Sie die Einfügemarke durch Drücken der Eingabetaste, mit Hilfe des Bildlaufs oder mit der Maus an einer anderen Stelle positionieren, wird dem Kommentar die Farbe Grün zugewiesen. Die Farbänderung erfolgt nachträglich, da VBA die neue oder geänderte Zeile erst dann liest, wenn die Einfügemarke sie verlassen hat.

VBA überprüft jede neue oder geänderte Zeile des Makros auf ihre syntaktische Richtigkeit. (Syntax ist die Bezeichnung für das richtige Aufeinanderfolgen von Wörtern und Zeichen in einer Sprache und eben auch in einer Programmiersprache). Ist die Syntax der neuen oder geänderten Zeile korrekt, weist VBA der Zeile nach dem zuvor beschriebenen Schema die entsprechende Farbe zu. Wenn VBA in der Zeile einen Syntaxfehler entdeckt, wird diese Zeile in Rot dargestellt und auf dem Bildschirm erscheint eine der verschiedenen Meldungen über einen Syntaxfehler. Meldungen werden weiter unten in dieser Lektion beschrieben.


 

Sie sollten Ihren Makrorumpf möglichst schnell nach der Aufzeichnung mit den notwendigen Kommentaren versehen. Dies gilt besonders für lange Makros, da Sie sich später vielleicht nicht mehr an die einzelnen Aktionen erinnern werden, die Sie bei der Erstellung durchgeführt haben. Durch das Hinzufügen von Kommentaren ist es für Sie später im Bedarfsfall einfacher, Änderungen an Ihrem Makro vorzunehmen. 

Wenn Sie ein aufgezeichnetes Makro verändern, sollten Sie Kommentare hinzufügen, die den Zweck der Änderung erklären. Die Aufgabe des Kommentars ist hier, kenntlich zu machen, welche Teile Sie geändert haben und warum diese Änderung notwendig war. 


Ein Makro von einem Modul in ein anderes verschieben oder kopieren

Bevor Sie Ihr Makro bearbeiten, sollten Sie eine Sicherungskopie von dem Quelltext des Makros machen. Dies ist vor allem dann wichtig, wenn Sie umfangreiche Veränderungen vornehmen wollen oder wenn Ihr Makro sehr lang ist und sehr komplexe Aufgaben übernimmt. Der Vorteil einer Sicherungskopie des Makro-Quelltextes ist, daß Sie auf die Ausgangsversion des Makros zurückgreifen können, wenn das veränderte Makro nicht so funktioniert, wie Sie es sich vorgestellt haben.

Um ein Makro zu kopieren, benutzen Sie die Windows-Zwischenablage und führen folgende Schritte aus: 

1. Öffnen Sie das Makro, das kopiert werden soll. 

2. Markieren Sie den gesamten Quelltext des Makros. Vergewissern Sie sich, daß Sie den gesamten Text des Makros einschließlich der Zeilen mit den Schlüsselwörtern Sub und End Sub erfaßt haben. 

3. Kopieren Sie den Makro-Quelltext mit dem Befehl Kopieren aus dem Menü Bearbeiten in die Windows-Zwischenablage. 

4. Öffnen Sie jetzt das Modul, in das Sie das kopierte Makro einfügen wollen. 

5. Fügen Sie den Quelltext mit dem Befehl Einfügen im Menü Bearbeiten in das Modul ein.

Mit dieser Methode können Sie ein Makro in das bereits geöffnete Modul, in ein anderes Modul des gleichen Projekts oder auch in das Modul eines anderen Projekts kopieren. Sie können den Quelltext des Makros sogar in eine andere Windows-Anwendung, wie den Windows-Editor, kopieren.


 

Erstellen Sie immer dann eine Sicherungskopie Ihres Makros, wenn sie nicht genau wissen, welche Wirkung die vorgenommenen Veränderungen haben werden oder wenn das Makro sehr umfangreich ist. 

Kopieren Sie die Sicherungskopie nicht in das Modul, in dem bereits die Originalversion des Makros abgelegt wurde. Wenn sich in einem Modul zwei oder mehr Makros mit dem gleichen Namen befinden, weiß VBA nicht, welches Makro ausgeführt werden soll, und reagiert mit der Fehlermeldung, daß in diesem Modul ein mehrdeutiger Name enthalten ist. 


Module als Textdateien speichern und importieren

Wenn Sie von einem ganzen Modul eine Sicherungskopie erstellen wollen, können Sie diese als Textdatei speichern. Das Speichern eines kompletten Moduls kann dann sinnvoll sein, wenn Sie dessen Daten in ein anderes VBA-Projekt importieren, wenn Sie Arbeitskopien für Archivierungszwecke erstellen oder wenn Sie Ihre VBA-Module in Visual Basic 5 übertragen wollen. Die Speicherung eines Moduls als Textdatei wird als Exportieren des Moduls bezeichnet. Nachdem Sie das Modul exportiert haben, können Sie das Modul in VBA oder in ein Visual-Basic-Projekt importieren.

Exportieren von Modulen

Um ein Modul als Textdatei zu exportieren, führen Sie die folgenden Schritte aus: 

1. Wählen Sie aus dem Projekt-Explorer das Modul aus, das Sie exportieren wollen. 

2. Wählen Sie aus dem Menü Datei den Befehl Datei exportieren. Der VB-Editor öffnet das Dialogfeld Datei exportieren, wie in Abbildung 2.13 dargestellt. Das Dialogfeld Datei exportieren weist im wesentlichen die gleichen Merkmale auf wie jedes andere Windows-Dialogfeld zur Speicherung von Dateien. 

siehe Abbildung 

Abbildung 2.13: 
Verwenden Sie das Dialogfeld Datei exportieren, um ein vollständiges Modul als Textdatei zu speichern. 

3. Vergewissern Sie sich, daß in der Liste Dateityp Basic-Dateien (*.bas) steht. Die Namenserweiterung .BAS signalisiert, daß es sich hier um eine Datei handelt, deren Quelltext in VBA oder Visual Basic erstellt wurde. In dieser Datei werden Textinformationen gespeichert. 

4. Wählen Sie das Laufwerk und den Ordner, in dem Sie das exportierte Modul speichern wollen, aus der Liste Speichern in. 

5. Geben Sie den gewünschten Namen für Ihre exportierte Datei in das Textfeld Dateiname ein. Wenn Sie keinen Namen eingeben, wählt der VB-Editor automatisch einen Namen für das Modul. 

6. Klicken Sie auf Speichern, um die Datei zu exportieren. Der VB-Editor exportiert das ausgewählte Modul und schließt das Dialogfeld Datei exportieren.

Beim Exportieren des Moduls erstellt der VB-Editor eine Textdatei, in der sich alle Makros des Moduls befinden. Wenn nötig, können Sie Dateien mit der Namenserweiterung .BAS, die mit dem VB-Editor erstellt wurden, auch mit dem Windows-Editor betrachten oder bearbeiten. In Abbildung 2.14 wird das Modul mit dem Makro NewWorkbook aus Listing 2.4 im Windows-Editor dargestellt, nachdem es in eine Textdatei mit Namenserweiterung .BAS exportiert wurde. Wie Sie im Editor-Fenster der Abbildung 2.14 sehen können, befinden sich im Text der .BAS-Dateien mehrere zusätzliche Zeilen, die mit dem Wort Attribut beginnen. Im Code-Fenster der Abbildung 2.12 sind derartige Attributzeilen jedoch nicht zu sehen. Der VB-Editor erweitert die exportierte .BAS-Datei um diese zusätzlichen Zeilen, da sie Informationen enthalten, die VBA oder Visual Basic benötigen, um diese Datei später in ein anderes Projekt zu importieren. 

siehe Abbildung 

Abbildung 2.14: 
Anzeige eines exportierten Moduls im Editor von Windows. 

Module importieren

Jedes Modul, das als .BAS-Datei exportiert wurde, können Sie Ihrem VBA-Projekt hinzufügen. Das Hinzufügen eines Moduls zu einem Projekt erfolgt, indem Sie die .BAS-Textdatei importieren. Um eine .BAS-Datei zu importieren, sind folgende Schritte notwendig: 

1. Wählen Sie aus dem Projekt-Explorer das Projekt, in das Sie die .BAS-Datei importieren wollen. 

2. Wählen Sie Datei importieren aus dem Menü Datei. Der VB-Editor öffnet das Dialogfeld Datei importieren. Das Dialogfeld Datei importieren weist im wesentlichen die gleichen Merkmale auf wie das Dialogfeld Datei öffnen in anderen Windows-Anwendungen. 

3. Verwenden Sie die Liste Suchen in, um das richtige Laufwerk anzusprechen und den Ordner zu finden, in dem sich die Datei befindet, die Sie in Ihr Projekt importieren wollen. Es ist nur möglich, Dateien zu importieren, die zuvor vom VB-Editor als Modul exportiert wurden. 

4. Vergewissern Sie sich, daß in der Liste Dateityp VB-Datei (*.frm, *.bas, *.cls) ausgewählt wurde. 

5. Doppelklicken Sie auf die zu importierende Datei. Der VB-Editor liest die Datei und fügt das Modul Ihrem Projekt hinzu. Enthält das Projekt bereits ein Modul mit dem selben Namen wie das von Ihnen importierte Modul, erweitert der VB-Editor den Modulnamen am Ende um eine Zahl (1, 2, 3, usw.). So wird vermieden, daß ein Projekt mehrere Module mit identischen Namen enthält.


 

An Tag 15, wenn Formulare behandelt werden, sollten Sie daran denken, daß Sie Textbeschreibungen in von Ihnen erstellten Formularen genauso exportieren und importieren können wie Module. Textbeschreibungen in Formularen werden in Dateien mit der Namenserweiterung .FRM gespeichert. Wenn VBA eine .FRM-Datei importiert, werden dabei die Textbeschreibungen in der Datei benutzt, um das Formular wiederherzustellen. 

Denken Sie daran, daß CLS. die Namenserweiterung für Dateien mit Klassenmodulen ist, mit denen Sie Ihre eigenen benutzerdefinierten Objekte in VBA erstellen können. Klassenmodule werden an Tag 10, »Datentypen und Variablen: Weiterführende Themen«, vorgestellt. 


Module aus einem Projekt löschen

Es kann auch vorkommen, daß Sie bestimmte Makros in einem Modul nicht mehr benötigen. Vielleicht wollen Sie auch ein Modul aus einem Projekt entfernen, da seine Makros durch die Einführung neuer Versionen überflüssig geworden sind, oder Sie brauchen dieses Modul nicht länger, da die enthaltenen Makros nur zu Testzwecken aufgezeichnet worden waren. Was auch immer Ihre Gründe sein mögen, Sie können ein Modul aus einem VBA-Projekt entfernen, indem Sie folgende Schritte ausführen: 

1. Wählen Sie im Fenster des Projekt-Explorer das Modul, das Sie aus Ihrem Projekt entfernen wollen. 

2. Wählen Sie im Menü Datei den Befehl Entfernen von <Objekt>. Der VB-Editor öffnet ein Dialogfeld und fragt Sie, ob Sie das Modul exportieren wollen, bevor Sie es entfernen.


 

Sie können ein Modul auch entfernen, indem Sie im Projekt-Explorer den Mauszeiger auf das zu löschende Modul bewegen und dann die rechte Maustaste drücken. Es öffnet sich ein Pop-up-Menü, in dem Sie dann den Befehl Entfernen anklicken. 


3. Klicken Sie auf Ja, wenn Sie das Modul exportieren möchten, bevor Sie es entfernen. (Wir empfehlen, das Modul unbedingt als .BAS-Datei zu exportieren, sofern Sie nicht absolut sicher sind, daß Sie die Makros in diesem Modul nie wieder benötigen werden). Wollen Sie das Modul entfernen, ohne es zuvor zu exportieren, klicken Sie auf Nein. 

4. Wenn Sie das Modul exportieren möchten, bevor Sie es entfernen, öffnet der VB-Editor das oben beschriebene Dialogfeld Datei exportieren. Geben Sie, wie bereits beschrieben, die notwendigen Informationen in das Dialogfeld Datei exportieren ein und klicken Sie dann auf Speichern.

Unabhängig davon, ob Sie das Modul zuvor exportiert haben oder nicht, wird es jetzt vom VB-Editor aus Ihrem Projekt entfernt.


 

Achten Sie darauf, daß Sie nur das Modul markieren, das Sie entfernen wollen. Das Entfernen eines Moduls kann nicht rückgängig gemacht werden. 

Denken Sie daran, daß Sie andere Objekte, wie z.B. Formulare, genauso aus Ihrem Projekt entfernen wie Module. 

Exportieren Sie alle Objekte, bevor Sie sie entfernen, sofern Sie sich nicht absolut sicher sind, daß Sie das Objekt oder dessen Inhalt nie wieder benötigen werden. 


Neue Makros und Prozeduren schreiben

Makros, die Sie selbst erstellen, ohne dafür den Makrorecorder zu verwenden, können Sie entweder direkt in ein bereits existierendes Modul schreiben, oder Sie fügen zuerst ein Modul ein, in das Sie dann Ihr Makro schreiben.


 

Die Begriffe Makro und Prozedur 

Bis jetzt wurde der Begriff Makro sowohl für aufgezeichnete als auch für selbstgeschriebene Makros verwendet. An dieser Stelle soll ein weiterer Begriff eingeführt werden, mit dem zwischen aufgezeichneten Makros und selbst geschriebenen Makros unterschieden werden kann. Genaugenommen bezieht sich der Begriff Makro nur auf Anweisungen, die mit dem Makrorecorder aufgenommen oder die mit dem Makrobuilder von Access zusammengestellt wurden. Die exakte Bezeichnung für Makros, deren Quelltext Sie selbst geschrieben haben, ist Unterprozedur oder auch nur Prozedur. Im weiteren Verlauf dieses Buchs wird der Begriff Makro verwendet, wenn die Rede von Aktionen ist, die mit dem Makrorecorder aufgezeichnet wurden, und der Begriff Prozedur, wenn Sie den VBA-Quelltext selbst geschrieben haben. 


Ein Modul einfügen und umbenennen

Wenn die Dokumente, Vorlagen und Arbeitsmappen, in denen Sie Ihre Prozedur speichern wollen, noch keine Module enthalten, müssen Sie ein Modul einfügen, bevor Sie Ihre VBA-Prozedur in das gewünschte Projekt schreiben können. Ein Modul einzufügen, kann auch dann notwendig sein, wenn die Speicherkapazität des existierenden Moduls nahezu erschöpft ist (ein Modul kann maximal 4000 Zeilen umfassen) oder wenn Sie für Ihre neue VBA-Prozedur ein eigenes Modul benötigen.

Wenn Sie Ihre VBA-Prozedur in einem neuen Modul schreiben müssen oder wollen, gehen Sie wie folgt vor: 

1. Stellen Sie in der VBA-Host-Anwendung (Word oder Excel) sicher, daß das Dokument, die Vorlage oder die Arbeitsmappe, wo Sie die Prozedur speichern möchten, bereits geöffnet ist. 

2. Drücken Sie (Alt)+(F11), um den VB-Editor zu aktivieren. 

3. Wählen Sie im Projekt-Explorer das Projekt, dem Sie Ihr Modul hinzufügen wollen. 

4. Klicken Sie im Menü Einfügen auf den Befehl Modul oder benutzen Sie die Drop-down-Liste Einfügen auf der Symbolleiste. Der VB-Editor fügt Ihrem Projekt ein neues Modul hinzu und öffnet ein Code-Fenster für das neue Modul.

Wenn der VB-Editor ein neues Moduls einfügt, erhält dieses Modul nach den in diesem Kapitel bereits erläuterten Richtlinien einen Standardnamen. Der Standardname des neuen Moduls ist Modul gefolgt von einer Nummer. Sie sollten das neu eingefügte Modul jedoch umbenennen, so daß der Modulname gleichzeitig beschreibende Funktion hat. Um ein Modul umzubenennen, führen Sie folgende Schritte aus: 

5. Wählen Sie aus dem VB-Editor das Modul, das Sie umbenennen wollen. 

6. Wenn das Eigenschaften-Fenster noch nicht geöffnet wurde, klicken Sie auf Eigenschaften-Fenster im Menü Ansicht oder klicken Sie auf der Symbolleiste auf die Schaltfläche Eigenschaften-Fenster. In Abbildung 2.15 sehen Sie das Eigenschaften-Fenster eines Moduls. Die einzige Eigenschaft eines Moduls ist der Modulname. 

7. Schreiben Sie im Eigenschaften-Fenster in das Textfeld Name den neuen Namen Ihres Moduls. Sobald Sie die Einfügemarke aus dem Textfeld Name entfernen, benennt der VB-Editor das Modul um.


 

Sie sollten dem neuen Modul sofort, nachdem Sie es eingefügt haben, einen beschreibenden Namen geben. Der Modulname sollte mit der Aufgabe des Moduls in Zusammenhang stehen und einen Hinweis auf die Prozeduren geben. Die Standardnamen des VB-Editors wie Modul1 sagen nicht besonders viel über die Prozeduren im Modul aus. 


Ein vorhandenes Modul auswählen

Um eine neue Prozedur in ein bereits existierendes Modul zu schreiben, müssen Sie zuerst das Code-Fenster des Moduls öffnen, in dem Sie Ihre Prozedur schreiben wollen. Es gibt zwei Wege, um das Code-Fenster eines Moduls zu öffnen. Sie öffnen das Fenster entweder durch einen Doppelklick auf das gewünschte Modul im Projekt-Explorer oder Sie markieren das Modul im Projekt-Explorer und wählen dann Code im Menü Ansicht.

Prozedurtext schreiben

Sie können mit dem Schreiben des Prozedur-Quelltextes beginnen, nachdem Sie die Einfügemarke an der Stelle im Code-Fenster positioniert haben, an der die neue Prozedur beginnen soll. Dabei ist es unwichtig, ob Sie die Prozedur in ein neues oder ein bereits existierendes Modul schreiben.

Der VBA- Quelltext für die Prozedur kann an jeder beliebigen Stelle im Modul eingefügt werden. Sie müssen jedoch darauf achten, daß der Anfang der neuen Prozedur nach der End-Sub-Anweisung beginnt, die das Ende der vorherigen Prozedur signalisiert und vor der Sub-Anweisung endet, die signalisiert, daß die nächste Prozedur des Moduls anfängt. Für die meisten Benutzer ist es am einfachsten, die neue Prozedur am Ende des Moduls einzufügen.

Der erste Schritt beim Schreiben einer Prozedur besteht darin, den Prozedurnamen festzulegen. Den Anfang der Prozedur kennzeichnen Sie mit Sub und das Ende mit End Sub. Wenn Sie eines dieser drei Elemente vergessen, ist Ihre Syntax fehlerhaft und VBA reagiert bei dem Versuch, das Programm auszuführen, mit einer Fehlermeldung.

Jeder, der eine Programmiersprache erlernt, schreibt als erste Übung ein Programm, daß auf dem Bildschirm die Nachricht Hello, World anzeigt. In Listing 2.5 sehen Sie ein derartiges VBA-Programm mit nur einer Prozedur.

Um dieses VBA-Programm einzugeben, führen Sie folgende Schritte aus: 

1. Öffnen Sie ein Word-Dokument oder eine Excel-Arbeitsmappe, oder erstellen Sie ein neues Dokument oder eine neue Arbeitsmappe. 

2. Drücken Sie (Alt)+(F11), um den VB-Editor zu aktivieren. 

3. Wählen Sie aus dem Projekt-Explorer ein Dokument oder eine Arbeitsmappe. Speichern Sie Ihre erste Prozedur in dem ausgewählten Dokument oder der ausgewählten Arbeitsmappe. 

4. Klicken Sie im Menü Einfügen auf Modul, um Ihrem Projekt ein neues Modul hinzuzufügen. Der VB-Editor fügt dem Projekt das neue Modul hinzu und öffnet dessen Code-Fenster. 

5. Geben Sie Ihrem Modul einen Namen, wobei der neue Name in diesem Beispiel FirstProgram sein soll. 

6. Vergewissern Sie sich, daß sich die Einfügemarke am Anfang einer leeren Zeile im Code-Fenster befindet, und geben Sie den Text aus Listing 2.5 ein. Drücken Sie am Ende jeder Zeile die Eingabetaste, um eine neue Zeile einzufügen.

Schreiben Sie den Quelltext des Listings 2.5 genauso in Ihr Modul, wie er im Listing dargestellt wird. Lassen Sie jedoch die Numerierung weg. (Die Numerierungen sind nicht Bestandteil der Prozeduren und der Makro-Listings. Sie haben nur Hinweisfunktion und sollen Ihnen das Suchen bestimmter Zeilen erleichtern, die gerade diskutiert werden.

Der VB-Editor verfügt über einige Funktionen, die Ihnen das Schreiben von Prozeduren erleichtern. Wenn Sie das Schlüsselwort Sub und den Prozedurnamen eingegeben und anschließend die Eingabetaste gedrückt haben, fügt der VB-Editor automatisch das Schlüsselwort End Sub ein. Auf diese Weise wird vermieden, daß Sie dieses wichtige Element Ihrer Prozedur aus Versehen vergessen.

Außerdem wurde in dem VB-Editor eine QuickInfo-Funktion integriert. Wenn Sie MsgBox eingeben und dann auf die Leertaste drükken, (Zeile 2 des Listing 2.5), erscheint ein Pop-up-Menü, das eine Liste mit allen Argumenten für die gerade geschriebene VBA-Prozedur oder -Funktion anzeigt, in diesem Fall also MsgBox. In Abbildung 2.16 sehen Sie ein Pop-up-Fenster mit Informationen über die Argumente der systemdefinierten VBA-Prozedur MsgBox. Im QuickInfo-Fenster sehen Sie das jeweilige Argument im Fettdruck, von dem der VB-Editor vermutet, daß Sie gerade den Wert dieses Arguments eingeben. (Ein Argument ist eine Information, die die Prozedur für die Erfüllung ihrer Aufgaben benötigt. Weiter unten in diesem Abschnitt und an Tag 5 werden Argumente näher erläutert). Haben Sie die Eingabetaste gedrückt, um im Code-Fenster eine neue Zeile zu beginnen, oder mit den Pfeiltasten oder der Maus die Einfügemarke in einer anderen Zeile positioniert, schließt sich das QuickInfo-Pop-up-Fenster. (Das QuickInfo-Fenster können Sie auch durch Betätigen der Esc-Taste schließen).

Wenn Sie das Quickinfo als störend empfinden, können Sie diese Funktion mit dem Befehl Optionen im Menü Extras des VB-Editors ein- und ausschalten. Weitere Informationen über das Dialogfeld Optionen finden Sie in der Online-Hilfe des VB-Editors.

Listing 2.5: Die Prozedur HelloWorld 

1:   Sub HelloWorld ()
2:      MsgBox "Hello, World!"
3:   End Sub

siehe Abbildung 

Abbildung 2.15: 
Das QuickInfo-Pop-up-Fenster für MsgBox. 

 

Die erste Zeile des Listing 2.5 ist die Deklaration der Prozedur. Die Prozedurdeklaration (auch Makrodeklaration genannt) ist die Anweisung, die VBA diese Prozedur bekannt macht und den Anfang des Prozedur-Quelltextes kennzeichnet.

Jede Deklaration einer Prozedur beginnt mit dem Schlüsselwort Sub, gefolgt von einem Leerschritt und dem Prozedurnamen. Der Prozedurname des Listing 2.5 ist HelloWorld. Zwei leere Klammern bilden den Abschluß der Prozedurdeklaration. Diese Klammern dürfen nicht weggelassen werden (die genaue Funktion dieser Klammern wird an den Tagen 6 und 11 beschrieben). Wenn Sie die Klammern am Ende der Deklaration vergessen, fügt VBA sie selbständig ein, nachdem Sie die Zeile verlassen haben.

Damit die Deklaration syntaktisch korrekt wird, muß das Schlüsselwort Sub das erste Wort in der Zeile sein. Außerdem darf diese Zeile nur aus einer VBA-Anweisung bestehen, nämlich der Deklaration. Nach der Deklaration kann jedoch ein Kommentar folgen.


 

Sie können am Ende einer Zeile mit einer VBA-Anweisung einen Kommentar einfügen, indem Sie zuerst einen Leerschritt, dann einen Apostroph (') und zuletzt die Kommentartext selbst eingeben. Derartige Kommentare werden als nachfolgende Kommentare bezeichnet. In der folgenden Zeile eines VBA-Quelltextes sehen Sie einen nachfolgenden Kommentar: 

ChDir "E:\" 'ändert das aktuelle Verzeichnis in E:\ 


Die zweite Zeile des Listing 2.5 stellt den Rumpf der Prozedur dar und ist die einzige Anweisung der Prozedur, die eine Aktion ausführt. Der Rumpf einer Prozedur kann aus keiner, mehreren oder vielen Anweisungen bestehen. Durch die MsgBox-Anweisung erscheint auf dem Bildschirm eine Meldung in einem Dialogfeld. Weiter unten in diesem Abschnitt wird die MsgBox-Anweisung näher beschrieben.

Die dritte und letzte Zeile der Prozedur HelloWorld mit dem Schlüsselwort End Sub signalisiert VBA, daß das Ende dieser Prozedur erreicht wurde. VBA beendet die Ausführung der Prozedur, wenn diese Zeile erreicht wird. Ähnlich wie bei der Deklaration, muß die letzte Zeile mit den Schlüsselwörtern End Sub beginnen. Die letzte Zeile einer Prozedur darf nur diese Anweisung enthalten, wobei ihr jedoch ein nachfolgender Kommentar hinzugefügt werden kann. Wie oben beschrieben, fügt der VB-Editor die letzte Zeile automatisch ein, nachdem Sie die Deklaration der Prozedur geschrieben haben. 


 

Wenn Sie die Projektdatei speichern, die die Prozedur enthält, werden gleichzeitig alle Sub-Prozeduren gespeichert. 


Nachdem Sie den Quelltext für die Prozedur HelloWorld geschrieben haben, können Sie die Prozedur, wie an Tag 1 beschrieben, ausführen. 

1. Wählen Sie den Befehl Makros aus dem Menü Extras, um das Dialogfeld Makros zu öffnen. 

2. Klicken Sie in der Liste Makroname auf die Prozedur HelloWorld. 

3. Klicken Sie auf die Schaltfläche Ausführen.

Bei Ausführung der Prozedur HelloWorld des Listing 2.5 erscheint auf dem Bildschirm das in Abbildung 2.17 dargestellte Dialogfeld. Die Titelzeile des Dialogfelds hängt von der jeweiligen Host-Anwendung ab, in der Sie Ihre Prozedur erstellt haben. Klicken Sie auf die Schaltfläche (OK), um die Anzeige des Dialogfelds und die Prozedur zu beenden. 

siehe Abbildung 

Abbildung 2.16: 
Die Prozedur HelloWorld aus Listing 2.6 gibt ihre Meldung in diesem Dialogfeld aus. 


 

Achten Sie darauf, daß Sie die End Sub-Anweisung nicht versehentlich löschen, da dadurch gravierende Probleme auftreten können. 


Sogar bei dieser kurzen Prozedur wird der Prozedurrumpf eingerückt, um ihn optisch von der Deklaration und dem Ende der Prozedur zu trennen. Um die Lesbarkeit von Quelltexten zu steigern, sollten Sie eigentlich nie auf das Einrücken der einzelnen Teile verzichten. Bei dem Vergleich von Listing 2.5 mit dem folgenden Listing wird deutlich, daß schon bei kurzen Prozeduren das Einrücken von Anweisungen das Lesen von Quelltexten erleichtert.

1:   Sub HelloMacro ()
2:   MsgBox "Hello, World!"
3:   End Sub


 

Das Merkmal Automatischer Einzug 

Der VBA-Editor enthält ein spezielles Merkmal namens Automatischer Einzug, das bei der Erstellung des Quelltextes den Einzug für einzelne Textteile automatisch vornimmt. Wenn der automatische Einzug eingeschaltet ist, beginnt jede neue Zeile in der gleichen Einzugsebene wie die vorherige Zeile. (Drücken Sie die Rücksetztaste(Cursor rechts), um eine Einzugsebene zu entfernen). 

Sie können den automatischen Einzug ein- und ausschalten, indem Sie das Dialogfeld Optionen öffnen und das Kontrollkästchen Automatisch Einzug vergrössern auf der Registrierkarte Editor aktivieren oder deaktivieren. Das Dialogfeld Optionen finden Sie im Menü Extras unter Optionen. Standardmäßig ist bei VBA der automatische Einzug aktiviert. 


Ausführen einer Prozedur während der Bearbeitung

Unabhängig davon, ob Sie eine neue Prozedur schreiben oder ein aufgezeichnetes Makro bearbeiten wollen, muß das geänderte Makro zu irgendeinem Zeitpunkt zu Testzwecken ausgeführt werden. Sie wissen bereits, wie Sie Makros und Prozeduren mit Hilfe des Dialogfelds Makro ausführen können. Es ist auch möglich, die Ausführung eines Makros oder einer Prozedur direkt aus dem Modul noch während der Bearbeitung zu starten.

Um eine Prozedur während der Bearbeitung auszuführen, sind folgende Schritte notwendig: 

1. Vergewissern Sie sich, daß sich die Einfügemarke innerhalb des Quelltextes der auszuführenden Prozedur befindet. Dies kann der Rumpf, die Deklarationszeile oder auch die End-Sub-Anweisung der Prozedur sein. 

2. Klicken Sie auf den Befehl Sub-/UserForm ausführen im Menü Ausführen. VBA führt die gesamte Prozedur von Anfang bis Ende aus.


 

Es ist möglich, eine Prozedur während der Bearbeitung auszuführen. Positionieren Sie die Einfügemarke innerhalb des Prozedur-Quelltextes. Klicken Sie dann auf die Schaltfläche Sub-/UserForm ausführen auf der Symbolleiste, oder drücken Sie (F5). 


Um zum Beispiel die Prozedur HelloWorld auszuführen, gehen Sie mit der Einfügemarke auf irgendeine Stelle im Quelltext, und wählen Sie den Befehl Sub-/UserForm ausführen im Menü Ausführen.

Befindet sich die Einfügemarke nicht im Quelltext der Prozedur, wenn Sie den Befehl Sub-/UserForm ausführen im Menü Ausführen wählen oder auf die entsprechende Schaltfläche auf der Symbolleiste klicken, weiß VBA nicht, welche Prozedur ausgeführt werden soll, und zeigt deshalb das Dialogfeld Makros an. 

Anzeigen von Nachrichten an Benutzer einer Prozedur

Listing 2.5 enthält die VBA-Anweisung MsgBox, mit der die Prozedur den Befehl erhält, auf dem Bildschirm eine Nachricht anzuzeigen. Nachrichten oder andere Informationen, die die Prozedur anzeigt, an einen Drucker weitergibt oder in einer Datei ablegt, werden als Ausgabe bezeichnet. Die Anweisung MsgBox ist die einfachste Form der Bildschirm-Ausgabe, die Sie in eine VBA-Prozedur einfügen können.

Die MsgBox-Anweisung ist bereits als eine Art Prozedur in VBA intergriert. Die Zeile in der Prozedur HelloWorld, die die MsgBox-Anweisung enthält, signalisiert VBA diese integrierte Prozedur auszuführen oder aufzurufen. Die MsgBox-Anweisung aus Listing 2.5 wird nachfolgend noch einmal dargestellt:

MsgBox "Hello, World!"
Der Text in den Anführungszeichen, der auf den Prozedurnamen MsgBox folgt, wird von MsgBox als Nachricht auf dem Bildschirm dargestellt. VBA gibt diese zusätzliche Information an die Prozedur MsgBox weiter, damit diese die Information verarbeitet. Zusätzliche Informationen, die an im Quelltext aufgerufene Prozeduren zur Verarbeitung weitergegeben werden, bezeichnet man als Argument. Der Text »Hello, World!« ist das Argument der Prozedur MsgBox. (An den Tagen 6 und 11 wird erläutert, wie Sie selbst Prozeduren mit Argumenten erstellen können). Die Anführungsstriche (») am Anfang und am Ende des Arguments »Hello, World!«, signalisieren, daß der Text zwischen den Anführungsstrichen Daten für die Prozedur enthält und keine Befehle, die von VBA ausgeführt werden müssen.

Sehen Sie sich noch einmal die Abbildung 2.17 an. Sie werden feststellen, daß durch die MsgBox-Anweisung ein Dialogfeld mit dem Titel Microsoft Word angezeigt wurde. Wird durch die MsgBox-Anweisung ein Dialogfeld geöffnet, erscheint in der Titelleiste standardmäßig der Name der Host-Anwendung, in der die VBA-Prozedur ausgeführt wird. In diesem Fall ist es Word.

Sie können den Titel eines von MsgBox angezeigten Dialogfelds ändern. In Abbildung 2.18 sehen Sie die Prozedur HelloWorld aus Listing 2.6, nachdem die MsgBox-Anweisung aus Listing 2.5 verändert wurde.

Wenn Sie die Abbildung 2.18 mit der Abbildung 2.17 vergleichen, werden Sie feststellen, daß der neue Titel jetzt Greeting Box lautet.

Listing 2.6: Anzeige eines benutzerdefinierten Dialogfelds mit Hilfe von MsgBox

Sub HelloWorld ()
   MsgBox "Hello, World!", ,"Greeting Box"
End Sub

siehe Abbildung 

Abbildung 2.17: 
Dialogfeld, das von der MsgBox-Anweisung aus Listing 2.6 geöffnet wird. Beachten Sie, daß sich der Titel des eldes bbildung 2.17 unterscheidet. 

 

Die MsgBox-Anweisung (Zeile 2 im Listing 2.6) der Prozedur unterscheidet sich von der ursprünglichen Version, obwohl Sie innerhalb der Prozedur ihre Funktion beibehalten hat, nämlich eine Meldung auf dem Bildschirm auszugeben. In Listing 2.6 folgen jetzt auf den Prozedurnamen MsgBox drei Argumente, die durch Kommas voneinander getrennt werden.

Das erste Argument der MsgBox-Anweisung ist der Text, der durch die MsgBox angezeigt werden soll. Somit ist dieses Argument identisch mit dem in Listing 2.5. (Dieses wird im QuickInfo-Fenster als Argument Prompt ausgegeben.) Da die neue MsgBox-Anweisung mehr als nur ein Argument enthält, werden die einzelnen Argumente durch Kommas voneinander getrennt. Argumentlisten in VBA-Prozeduren werden genauso durch Kommas getrennt, wie Aufzählungen in einem geschriebenen Satz.

Wenn Sie das erste Komma setzen, um das erste Argument vom zweiten Argument zu trennen, werden Sie feststellen, daß sich das QuickInfo-Fenster verändert. Das Argument Buttons wird jetzt im Fettdruck dargestellt, dagegen das Argument Prompt wieder in der Standardschrift. Gleichzeitig erscheint im Modul ein Drop-down-Listenfeld. Dieses Drop-down-Listenfeld enthält alle zulässigen Werte für das Argument Buttons. Der VB-Editor öffnet diese Liste, da er über das Merkmal automatische Daten-Tips verfügt. Automatitische Daten-Tips funktionieren ähnlich wie die automatische QuickInfo, nur daß die zulässigen Werte für die Argumente einer Prozedur und andere Elemente Ihres VBA-Quelltextes auflisten.

Das zweite Argument einer MsgBox-Anweisung ist optional. Bei diesem Beispiel entfällt das optionale zweite Argument. Ein Leerzeichen in der Argumentliste übernimmt die Funktion des Platzhalters für das fehlende Argument. Das Leerzeichen informiert VBA, daß das optionale Argument in der Liste fehlt. (Wenn Sie vergessen, die beiden Kommas durch das Leerzeichen zu trennen, fügt VBA dieses Leerzeichen ein. Die Kommas müssen Sie jedoch selbst eingeben).

Das optionale zweite Argument der MsgBox-Anweisung ist das Argument Buttons. Das Argument Buttons wird im QuickInfo-Fenster zwischen zwei eckigen Klammern dargestellt, die signalisieren, daß es sich hier um ein optionales Argument handelt. Mit dem Argument Buttons können Sie festlegen, wieviel und welche Art von Schaltflächen in Ihrem durch MsgBox angezeigten Dialogfeld erscheinen sollen. Wenn Sie, wie in diesem Beispiel, das zweite Argument auslassen, besitzt dieses Dialogfeld nur eine Schaltfläche, nämlich die Schaltfläche OK. (An den Tagen 5 und 8 lernen Sie mehr über das optionale Argument Buttons).

Mit dem dritten und letzten Argument der MsgBox-Anweisung legen Sie den Titel des Dialogfelds fest (siehe Abbildung 2.18). Sobald Sie das zweite Argument durch ein Komma vom dritten getrennt haben, erscheint in der Argumentliste der MsgBox-Anweisung das QuickInfo-Fenster mit dem Hinweis, das der Wert des Arguments, das Sie als nächstes schreiben werden, das Argument Titel ist.

Wie schon beim ersten Argument wird auch der Text für die Titelleiste des Dialogfelds zwischen zwei Anführungszeichen (") geschrieben. VBA interpretiert Text in Anführungsstrichen immer als Daten und nicht als auszuführenden Befehl. Wenn Sie vergessen haben sollten, den Nachrichtentext von MsgBox oder den Text für die Titelleiste in Anführungszeichen zu setzen, reagiert VBA mit einer Fehlermeldung. Da das dritte Argument gleichzeitig das letzte ist, folgt auf dieses Argument kein Komma. 

Fehlermeldungen, die beim Schreiben, Bearbeiten oder Ausführen einer Prozedur auftreten können

Sowohl beim Schreiben und Bearbeiten von Prozeduren als auch beim Erstellen und Verändern von Anweisungen können sich die unterschiedlichsten Fehler einschleichen. Viele Fehler kann VBA schon während des Schreibens oder der Bearbeitung des Quelltextes erkennen. Weitere Fehlerquellen findet VBA während der Ausführung des Programms.

Syntaxfehler

Syntax ist die Bezeichnung für die korrekte Abfolge von Wörtern und Symbolen, die zusammen eine zulässige VBA-Anweisung bilden. Die häufigsten Fehler, die beim Schreiben oder Bearbeiten einer VBA-Prozedur gemacht werden, sind Syntaxfehler. VBA reagiert auf Syntaxfehler in einer VBA-Anweisung mit Fehlermeldungen, die Sie darüber informieren, daß Sie Kommas, Anführungszeichen, Argumente etc. vergessen haben.

Wenn Sie eine neue Befehlszeile geschrieben oder eine Zeile geändert haben, analysiert VBA diese Zeile, sobald Sie die Einfügemarke an einer anderen Stelle positionieren. (Dieser Analyseprozeß wird auch als Parsing bezeichnet und bedeutet, daß die gesamte VBA-Anweisung in Ihre Einzelteile unterteilt wird, wobei VBA zwischen Schlüsselwörtern, Variablen und Daten unterscheidet. Diese Vorgehensweise ist mit der Bestimmung einzelner Satzteile eines geschriebenen Satzes wie Nomen, Verben, Adjektive usw. zu vergleichen). Nachdem VBA eine Befehlszeile erfolgreich analysiert hat, wird diese Zeile kompiliert. (Kompilieren bedeutet im Zusammenhang mit VBA, daß der Quelltext in einer Form aufbereitet wird, die eine direkte Ausführung durch VBA erlaubt, ohne daß eine erneute Analyse des Quelltextes notwendig wird.

Wenn VBA eine Quelltextzeile einer Prozedur erfolgreich analysiert und kompiliert hat und bei diesen Prozessen keine Fehler aufgetreten sind, werden den unterschiedlichen Elementen der Zeile verschiedene Farben zugewiesen. VBA-Schlüsselwörter werden blau, Kommentare grün und Daten und andere Anweisungen schwarz dargestellt. Wenn VBA jedoch während des Parsing und des Kompilierens einen Syntaxfehler in der Zeile entdeckt, wird die gesamte Zeile in Rot dargestellt und es erscheint ein Dialogfeld mit einer Fehlermeldung.

Sehen Sie sich folgende Befehlszeile mit der nicht korrekten MsgBox-Anweisung einen Moment etwas genauer an.

MsgBox "Hello, World!", , Greeting Box
In diesem Beispiel wurden die Anführungszeichen für den Titel des Dialogfelds versehentlich vergessen. Daher identifiziert VBA die Wörter des letzten Arguments nicht als Daten, sondern vermutet, daß es sich bei Greeting um den Namen einer Variablen handelt. (Eine Variable ist die Bezeichnung für einen Speicherplatz zur Ablage von Daten. Variablen werden im nächsten Abschnitt erläutert).

Da VBA das dritte Argument in diesem Beispiel als Variable mit dem Namen Greeting identifiziert, wird als nächstes ein Komma oder das Ende der Argumentliste der MsgBox-Prozedur erwartet. Statt dessen folgen ein Leerzeichen und ein Wort, von dem VBA vermutet, daß es sich hier um eine weitere Variable handelt. VBA kann die Zeile nicht lesen und stellt die gesamte Zeile in Rot dar, wobei das Wort oder die Stelle, an der VBA den Fehler entdeckt, markiert wird. Dann erfolgt die Anzeige einer Fehlermeldung, die in Abbildung 2.19 zu sehen ist. In dieser Abbildung sehen Sie außerdem, daß im Quelltext das Wort Box markiert wurde, da VBA den Fehler an dieser Stelle festgestellt hat. 

siehe Abbildung 

Abbildung 2.18: 
VBA gibt bei Eingabe oder Änderung einer Zeile Fehlermeldungen zu Syntaxfehlern aus. 

Wenn Sie eine derartige Meldung über einen Übersetzungs- oder Sytaxfehler erhalten, klicken Sie auf die Schaltfläche Hilfe, um die Online-Hilfe von VBA zu aktivieren, in der Sie zusätzliche Informationen über diesen speziellen Syntaxfehler finden. Schließen Sie das Dialogfeld mit der Fehlermeldung, indem Sie auf die Schaltfläche OK klicken.

Nach dem Schließen des Dialogfelds mit der Fehlermeldung sollten Sie versuchen, den Fehler zu beheben. Auch wenn Sie nach dem Schließen des Dialogfelds mit der Einfügemarke auf eine andere Zeile springen, wird die Zeile, in der sich der Fehler befindet, weiterhin in Rot dargestellt. VBA analysiert und kompiliert die Zeile mit dem Syntaxfehler erst dann wieder, wenn Sie die Prozedur ausgeführen oder die Zeile erneut bearbeiten. VBA analysiert die Zeilen einer Prozedur nur dann, wenn Sie die Zeile, unmittelbar nachdem Sie die Änderung vorgenommen haben, verlassen oder wenn Sie die Prozedur ausführen.


 

Sie können den Modus für die Überprüfung der Syntax ein- und ausschalten. Obwohl es sehr empfehlenswert ist, eine Syntaxüberprüfung vornehmen zu lassen, da es viel Zeit kostet und viel Ärger verursacht, Fehler in einer nicht korrekten Prozedur zu suchen, können Sie die Überprüfung auch deaktivieren, indem Sie den Befehl Optionen aus dem Menü Extras wählen. Es öffnet sich das Dialogfeld Optionen. Um die Syntaxüberprüfung zu deaktivieren, klicken Sie auf die Registrierkarte Editor, um die Optionen des Editors anzuzeigen und deaktivieren das Kontrollkästchen Automatische Syntaxüberprüfung. Klicken Sie auf OK, wenn Sie die Einstellungen im Dialogfeld Editor beendet haben. 


Stößt VBA während der Ausführung einer Prozedur auf eine Zeile mit einem Syntaxfehler, unterbricht VBA die Ausführung, zeigt das Modul mit der fehlerhaften Prozedur, markiert die Zeile, in der der Fehler gefunden wurde und zeigt auf dem Bildschirm eine Meldung über einen Fehler beim Kompilieren an.

Der Informationsgehalt von Fehlermeldungen, die VBA erstellt, wenn der Syntaxfehler während der Ausführung einer Prozedur gefunden wird, ist wesentlich geringer als der von Fehlermeldungen, die VBA anzeigt, wenn Fehler direkt nach dem Schreiben oder Ändern einer Anweisung entdeckt werden. Aus diesem Grund und um zu vermeiden, daß die Ausführung einer Prozedur unerwartet unterbrochen wird, sollten Sie versuchen, Syntaxfehler sofort zu korrigieren, nachdem Sie von VBA eine Fehlermeldung erhalten haben.

VBA kann die unterschiedlichsten Syntaxfehler identifizieren und teilt Ihnen die Fehlerquelle wie fehlende Kommas oder Anführungszeichen in der Fehlermeldung mit. Jedoch nicht jede Fehlermeldung ist so präzise. Manchmal ist VBA nicht in der Lage, festzustellen, an welcher Stelle in einer Anweisung ein Syntaxfehler gemacht wurde. VBA registriert dann nur, daß ein Fehler in der Anweisung enthalten sein muß.


 

Wenn Sie beim Auflösen eines Syntaxfehlers mit einem bestimmten VBA-Schlüsselwort oder einer integrierten Prozedur, wie MsgBox, Probleme haben, können Sie die Online-Hilfe aufrufen, indem Sie die Einfügemarke auf dem gewünschten Schlüsselwort oder Prozedurnamen positionieren und dann (F1) drücken. Sind in der Online-Hilfe Informationen zu diesem Schlüsselwort oder Prozedurnamen enthalten, werden Sie von VBA angezeigt. 


Laufzeitfehler

Es ist auch möglich, daß Sie eine syntaktisch fehlerfreie VBA-Anweisung geschrieben haben, deren einwandfreie Ausführung jedoch nicht möglich ist. Fehler, die nur dann auftreten, wenn Sie eine Prozedur ausführen wollen, werden als Laufzeitfehler bezeichnet. Es gibt viele verschiedene Arten von Laufzeitfehlern. Laufzeitfehler werden meistens durch fehlende Prozedurargumente, Argumente des falschen Datentyps, fehlende Schlüsselwörter, den Versuch eines Zugriffs auf nicht vorhandene Laufwerke oder Ordner oder durch Logikfehler verursacht.

Sehen Sie sich folgende VBA-Anweisung genauer an, die ebenfalls eine fehlerhafte MsgBox-Anweisung darstellt:

MsgBox "Hello, World!", "Greeting Box"
In diesem Beispiel interpretiert VBA die MsgBox-Anweisung als korrekt. Der Datentext befindet sich zwischen Anführungszeichen und die einzelnen Argumente werden durch Kommas getrennt. (Da alle Argumente mit Ausnahme des ersten Arguments von MsgBox-Anweisung optional sind, findet VBA in der MsgBox zwei Argumente und interpretiert dies als korrekte Syntax). Bei dem Versuch diese Anweisung auszuführen, wird jedoch ein Fehler festgestellt und die in Abbildung 2.20 dargestellte Fehlermeldung angezeigt. 

siehe Abbildung 

Abbildung 2.19: 
VBA findet einige Fehler erst bei Ausführung der Prozedur und zeigt als Folge ein Dialogfeld zu dem Laufzeitfehler an. 

In dem Dialogfeld finden Sie die Meldung, daß während der Ausführung der Prozedur ein Fehler bemerkt wurde. Außerdem zeigt das Dialogfeld die Art des Fehlers an. In diesem Beispiel handelt es sich um den Fehler Typen unverträglich. Wenn Sie sich die oben dargestellte MsgBox-Anweisung noch einmal ansehen, werden Sie feststellten, daß das zweite Komma fehlt, das die Aufgabe des Platzhalters für das zweite optionale Argument Buttons in der MsgBox-Anweisung übernimmt (siehe Zeile 2 des Listing 2.6).

Beim Analysieren dieser Anweisung kompiliert VBA den in Anführungszeichen geschriebenen Text »Greeting Box« als zweites Argument von MsgBox. VBA kann nicht erkennen, daß es sich hier um das dritte Argument handelt, da der Platzhalter fehlt. Da VBA bei dem zweiten Argument, also dem Argument für die Befehlsschaltfläche eine Zahl erwartet und keinen Text, meldet VBA, daß der Typ der Daten, die der MsgBox-Prozedur übergegeben wurden, nicht mit den Datentypen übereinstimmen, die für dieses Argument erwartet wurden. (Datentypen werden in der nächsten Lektion detaillierter vorgestellt.)

Das Dialogfeld für Laufzeitfehler enthält mehrere Befehlsschaltflächen. In der folgenden Liste werden diese Schaltflächen vorgestellt.

Sollten Sie nicht verstehen, warum der Gebrauch eines bestimmten VBA-Schlüsselworts oder einer VBA-Prozedur einen Laufzeitfehler verursacht, positionieren Sie die Einfügemarke auf dem Schlüsselwort oder der Prozedur, und drücken Sie (F1). Wenn es in der Online-Hilfe Informationen zu dem gesuchten Thema gibt, werden diese von VBA angezeigt. 

Quelltext ausdrucken

Manchmal kann es notwendig sein, sich bestimmte Quelltexte ausdrucken zu lassen. Ein Grund kann sein, daß Sie den Ausdruck der Prozedur für Archivierungs- und Dokumentationszwecke benötigen. Vielleicht wollen Sie die Prozedur auch einem Kollegen zeigen oder Sie benötigen Sie für Lernzwecke. (Tatsächlich ist das Lesen und Analysieren von Makros, die mit dem Makrorecorder aufgezeichnet wurden, eine gute Möglichkeit VBA zu erlernen).

Sie können entweder die Quelltexte aller VBA-Module Ihres Projekts auf einmal oder auch nur das aktuelle Modul ausdrucken. Einzelne Prozeduren auszudrucken, ist jedoch nicht möglich.

Um den Quelltext auszudrucken, gehen Sie wie folgt vor: 

1. Wählen Sie aus dem Projekt-Explorer das Modul oder Projekt, das Sie ausdrucken wollen. Wenn Sie nur einen bestimmten Quelltext eines Moduls ausdrucken wollen, öffnen Sie das Modul und markieren Sie den entsprechenden Text. 

2. Wählen Sie den Befehl Drucken aus dem Menü Datei. Der VB-Editor öffnet das Dialogfeld Drucken (siehe Abbildung 2.21). 

siehe Abbildung 

Abbildung 2.20: 
Sie können im Dialogfeld Drucken eine Vielzahl von Optionen für das Drucken festlegen. 

3. Legen Sie im Druckbereich fest, ob Sie die aktuelle Auswahl, das Aktuelle Modul oder das Aktuelle Projekt ausdrucken wollen. 

4. Überprüfen Sie, ob das Kontrollkästchen Code in der Befehlsgruppe Drucken von für das Drucken eines Quelltextes aktiviert wurde. Enthält Ihr Projekt Formulare, aktivieren Sie das Kontrollkästchen Formulardarstellung, damit Darstellungen auf Ihrem Formular gedruckt werden können. 

5. Wählen Sie alle anderen Druckoptionen ähnlich wie in Word oder Excel. 

6. Klicken Sie auf OK, um Ihren Quelltext auszudrucken.

Beim Ausdrucken eines Projekts oder Moduls ist es nicht möglich, sich dieses vorher anzusehen. Außerdem werden die ausgedruckten Quelltexte immer in der gleichen Art und Weise formatiert (davon ausgenommen ist das Seitenzahlenformat, das Sie mit Hilfe der Schaltfläche Einrichten im Dialogfeld Drucken kontrollieren können). 

Zusammenfassung

In dieser Lektion wurden zunächst die Schaltflächen und Menübefehle des VB-Editors vorgestellt. Danach wurde gezeigt, wie Sie ein Makro finden, anzeigen und bearbeiten können. Es wurde ebenfalls erläutert, wie Kopien von einzelnen Makros erstellt und wie ganze Module als Textdateien exportiert werden können.

Im nächsten Schritt wurden die Grundlagen vorgestellt, die für das Schreiben einer einfachen Prozedur notwendig sind, wenn diese nicht mit dem Makrorecorder aufgezeichnet werden soll. Danach haben Sie gelernt, wie eine Prozedur aufgebaut sein muß, damit sie Nachrichten auf dem Bildschirm anzeigen kann. In diesem Zusammenhang wurden mögliche Syntaxfehler und Laufzeitfehler beschrieben, auf die Sie während des Schreibens, der Bearbeitung und der Ausführung einer Prozedur treffen können. Zum Schluß haben Sie erfahren, wie man Module ausdrucken kann.

Fragen und Antworten

F Mir gefallen die Farben nicht, die der VB-Editor den unterschiedlichen Teilen des VBA-Quelltextes zuweist. Ist es möglich, die Farbzuweisung zu ändern?

A Ja, die Farben, die der VB-Editor den verschieden Teilen eines Quelltextes zuweist, können geändert werden. Öffnen Sie das Dialogfeld Optionen, indem Sie den Befehl Optionen aus dem Menü Extras wählen. Wählen Sie dann die Registrierkarte Editorformat, um die Optionen für die Formatierung anzuzeigen. Klicken Sie in der Liste Code-Farben auf das Element, dessen Farbe Sie ändern wollen. Wählen Sie dann die Farbe für den Text aus den Drop-down-Listenfeldern Vordergrund und Hintergrund. Sie sollten jedoch nur die Farbe für den Vordergrund verändern und für den Hintergrund Automatisch wählen. Bestätigen Sie Ihre Farbwahl mit OK.

F Mir gefallen die Schriftart und Schriftgröße nicht, mit der die Quelltexte meines Moduls auf dem Bildschirm angezeigt werden. Ist es möglich die Schriftart und Schriftgröße des Quelltextes zu ändern?

A Ja, Sie können die Schriftart und Schriftgröße des Quelltextes verändern. Wie die Farboptionen finden Sie auch die Optionen für die Schriftart und Schriftgröße auf der Registrierkarte Editorformat im Dialogfeld Optionen. Wählen Sie die Schrift aus dem Drop-down-Listenfeld Schriftart und die Schriftgröße aus dem Dropdown-Listenfeld Grösse. Unten rechts in der Registrierkarte Editorformat erscheint daraufhin ein Musterbeispiel des neu formatierten Textes.

F Ist es notwendig, daß ich die Anweisungen im Quelltext genauso einrücke wie der Makrorecorder?

A Nein, Sie müssen den Quelltext nicht genauso einrücken wie der Makrorecorder; im Grunde brauchen Sie die Anweisungen überhaupt nicht einzurücken.

Für VBA ist das Einrücken der Anweisungen von keinerlei Bedeutung. Das Einrücken von Anweisungen dient hauptsächlich der Formatierung und soll dem Benutzer das Lesen des Quelltextes erleichtern. Wenn Sie ein anderes als das hier vorgestellte Schema für das Einrücken bevorzugen, können Sie es problemlos verwenden. Wichtig ist jedoch, daß Sie bestimmte Anweisungen – nach welchem Schema auch immer -- einrücken, damit es leichter ist, diese zu verstehen.

F Wann ist es notwendig, ein neues Modul für eine Prozedur einzufügen?

A Ein neues Modul für eine Prozedur sollen Sie immer dann eingefügen, wenn Sie eine neue Kategorie von Prozeduren erstellen, oder wenn die Speicherkapazität Ihres Moduls nahezu erschöpft ist. Ein Modul kann ungefähr 4000 Zeilen beinhalten.

F Wie kann die bei der Erstellung des Moduls verwendete Schrift für den Ausdruck geändert werden?

A Sie können zwar mit Hilfe des Dialogfelds Drucker einrichten, das Sie über die Schaltfläche Einrichten im Dialogfeld Drucken öffnen, das Druckformat festlegen (Hochformat oder Querformat), es ist jedoch nicht möglich, die bei der Erstellung des Moduls verwendete Schrift und Formatierung für das Drucken zu verändern. Module werden immer in der Schrift gedruckt, die Sie auch beim Schreiben verwendet haben. Das gleiche gilt für Formatierungen, wie z.B. eingerückte Zeilen und Leerzeilen. Wenn Sie aus irgendeinem Grund die Schrift oder die Formatierung einer Prozedur oder eines Moduls für den Ausdruck verändern müssen, wählen Sie den Befehl Kopieren im Menü Bearbeiten, um den Modultext in die Zwischenablage zu kopieren. Kopieren Sie den Text dann in ein Textverarbeitungsprogramm (wie z.B. Microsoft Word Pad oder Microsoft Word) und ändern Sie die Schriftmerkmale und die Formatierungen in dem Modul mit Hilfe dieses Programms. 

Workshop

Die Testfragen im Workshop dienen zur Festigung des gelernten Stoffes, und mit Hilfe der anschließenden Übungen können Sie das theoretisch erworbene Wissen in die Praxis umsetzen. Die Antworten finden Sie im Anhang A.

Test

1. Was ist ein VBA-Modul? 2. Warum werden einem aufgezeichneten Makro Kommentare hinzugefügt? Sollten Kommentare auch Bestandteil von Prozeduren sein, die Sie selber schreiben? 3. Was ist ein VBA-Schlüsselwort? 4. Aus welchen Teilen setzt sich eine Prozedur zusammen? 5. Was ist eine Prozedurdeklaration? 6. Was ist der Rumpf einer Prozedur, und wo befindet er sich? 7. Welches wichtige Hilfsmittel des VB-Editors können Sie einsetzen, um bestimmte Makros zu finden? 8. Warum rückt VBA die einzelnen Elemente des Quelltextes eines Makros bei der Aufzeichnung unterschiedlich weit ein? 9. Welche Funktion hat die MsgBox-Prozedur? 10. Was ist ein Argument? Was ist eine Argumentliste? 11. Welches ist das Zeilenfortsetzungszeichen, und wofür wird es benutzt? 12. Welche Aktion führt VBA aus, wenn Sie mit der Einfügemarke nach dem Schreiben oder Bearbeiten eines Quelltextes in eine andere Zeile springen? 13. Was ist ein Syntaxfehler? 14. Was ist ein Laufzeitfehler? 

Übungen

1. Starten Sie Excel 97, aktivieren Sie den VB-Editor und fügen Sie ein neues Modul in die Arbeitsmappe PERSONAL.XLS ein. Geben Sie dem Modul den Namen ProgramHelp. Schreiben Sie jetzt das folgende Listing. Lassen Sie dabei jedoch die Numerierung weg.
1:   Sub ExcelVBAHelp()
2:   '   Diese Prozedur öffnet die Excel-VBA-Hilfe
3:   '   beim Hilfethema Microsoft Excel-Objekte
4:   '
5:         Application.Help "VBAXL8.HLP"
6:   End Sub
2. Starten Sie Word 97, aktivieren Sie den VB-Editor und fügen Sie in das Projekt Normal.dot ein neues Modul ein. Geben Sie dem Modul den Namen WordHelp. Geben Sie jetzt das folgende Listing ohne Numerierung ein.
1:   Sub WordHelpIndex()
2:   'Diese Prozedur öffnet die Word-Hilfe
3:   'beim Inhaltsverzeichnis
4:   '
5      Application.Help wdHelpIndex
6   End Sub
3. Schreiben Sie in einem Word- oder Excel-Modul eine Prozedur, die die Nachricht Ich bin eine Visual-Basic-Nachricht in einem Dialogfeld anzeigt, das eine Schaltfläche und den Titel VBA-Nachricht hat. 4. Fehlerteufel: Suchen Sie den Fehler in folgender Prozedur. Geben Sie dafür die Prozedur in ein Modul ein, und versuchen, Sie die Prozedur auszuführen.
1:   Sub Broken ()
2:      MsgBox Und noch eine Nachricht
3:   End Sub

©1997 SAMS

Ein Imprint des Markt&Technik Buch- und Software-Verlag GmbH
Elektronische Fassung des Titels: VBA 5 in 21 Tagen, ISBN: 3-8272-2008-4
Previous Page  Page Top  TOC  Index  Next Page  See Page