3.6 Aufzeichnen, Ausführen und Bearbeiten von VBA-Makros

3.6.1 Ausführen von Makros

Neben den in Reflection erstellten VBA-Makros können Sie auch die meisten Makros ausführen, die mit älteren Versionen von Reflection- und EXTRA!- Produkten erstellt wurden. Auch die meisten Makros, die mit Micro Focus Rumba-, IBM Personal Communications-, OpenText HostExplorer- und Brandon Systems\Jolly Giant QWS3270-Produkten erstellt wurden, können ausgeführt werden. Beachten Sie jedoch, dass nur in vertrauenswürdigen Verzeichnissen gespeicherte Makros ausgeführt werden können.

Im Dialogfeld Aktion auswählen stehen mehrere makrobezogene Aktionen zur Auswahl, z. B. zum Ausführen eines Reflection-Arbeitsbereich-Makros.

Sie können Makros auch ausführen, indem Sie die entsprechende Aktion einem Steuerelement zuordnen. Weitere Informationen finden Sie unter Hinzufügen einer Schaltfläche zum Ausführen eines Makros.

So führen Sie ein Makro aus

  1. Wählen Sie im Dialogfeld Makro ausführen den Makrotyp und danach das Makro aus, das Sie ausführen möchten.

    HINWEIS:Optionen zum Ausführen von Legacymakros sind nur verfügbar, wenn die entsprechenden Kompatibilitätsfunktionen installiert wurden. Wenn Sie in älteren Versionen von Reflection und EXTRA! erstellte Makros aus externen Dateien ausführen möchten, müssen Sie im Dialogfeld API- und Makrosicherheit einrichten angeben, welcher Typ von Legacymakros ausgeführt werden soll.

    Reflection-Arbeitsbereich-Makro

    Zeigt Makros im aktiven Sitzungsdokument an. Wählen Sie diese Option, wenn Sie Makros ausführen möchten, die in Reflection- oder 2007 (SP1)-Dokumenten erstellt wurden.

    Wenn Sie ein Makro im allgemeinen Projekt und anderen Dokumenten ausführen möchten, wählen Sie im Menü Makros in die Option <Alle Standardprojekte> aus:

    Reflection-Legacymakros

    Wählen Sie diese Option, um Legacymakros im aktiven Dokument auszuführen. Zu diesen Makros gehören Legacyeinstellungsdateien (.rsf, .r2w oder .r4w) und in Reflection Sitzungsdokumente (.rd3x, .rd5x, .rdox), die aus Einstellungsdateien konvertiert wurden.

    Reflection-Legacymakro in anderer Datei

    Wählen Sie diese Option, um ein Makro in einer SharedMacro-Datei (.rma) oder in einer Einstellungsdatei (.rsf, .r2w oder .r4w) auszuführen.

    RB-Legacymakro

    Wählen Sie diese Option, um ein Reflection Basic-Makro (.rbs) auszuführen.

    RCL-Legacyskript

    Wählen Sie diese Option, um ein RCL-Legacyskript auszuführen. Diese Option ist nur in VT-Sitzungsdokumenten verfügbar.

    Legacy-EXTRA! Makro

    Wählen Sie diese Option, um eine EXTRA!-Makrodatei (.ebm) auszuführen.

    Rumba-Makro

    Wählen Sie diese Option, um eine Micro Focus Rumba-Makrodatei (.rmc) auszuführen.

    QWS-Makro

    Wählen Sie diese Option, um eine Brandon Systems\Jolly Giant QWS3270-Makrodatei (.jgs) auszuführen.

    IBM Personal Communications-Makro

    Wählen Sie diese Option, um eine IBM Personal Communications-Makrodatei (.mac) auszuführen.

  2. Wenn Sie kein Arbeitsbereich-Makro finden, wählen Sie im Fenster "Einstellungen" die Option VBA-Verweise einrichten aus, um das Dialogfeld "VBA-Verweis hinzufügen" zu öffnen. Überprüfen Sie dann die Liste auf fehlende Verweise (angegeben durch die Schaltfläche ). Nachdem Sie das Problem behoben haben (normalerweise eine fehlende Datei oder ein getrenntes Netzlaufwerk), schließen und öffnen Sie dann die Sitzung erneut.

3.6.2 Erstellen eines Makros im Visual Basic-Editor

Erstellen Sie Makros nach Möglichkeit in Modulen. Dies unterstützt die Integrität und Stabilität Ihres Programms. Eine Ausnahme bilden lediglich Ereignisprozeduren, die Reflection-Objekten direkt hinzugefügt werden.

So erstellen Sie ein Makro im Visual Basic-Editor

  1. Öffnen Sie in Reflection ein Sitzungsdokument.

  2. Das Sitzungsdokument wird im Projekt-Explorer als Projekt angezeigt, zum Beispiel als "Project (Meine Sitzung.rd3x).".

  3. Wählen Sie im Projekt-Explorer das Projekt aus, in dem Sie das Makro speichern möchten, und wählen Sie dann Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Doppelklicken Sie auf das erstellte Modul.

    Das Fenster Code wird geöffnet.

  5. Wählen Sie Einfügen > Prozedur, geben Sie im Feld Name einen Namen ein, und klicken Sie dann auf OK.

    Der Name muss den Visual Basic-Benennungskonventionen für Makros entsprechen. Weitere Informationen hierzu finden Sie in Benennen von Makros.

  6. Geben Sie den Code für Ihr Makro zwischen den Anweisungen Sub (oder Public Sub) und End Sub ein.

    Zu den Visual Basic-Befehlen steht Ihnen eine kontextsensitive Hilfe zur Verfügung. Positionieren Sie die Einfügemarke in einem Befehl, und drücken Sie F1.

3.6.3 Aufzeichnen von VBA-Makros

Mithilfe von VBA-Makros können Sie in der Interaktion mit Hostanwendungen beispielsweise folgende Schritte automatisieren:

  • Senden von Daten an oder Eingeben von Text in eine Hostanwendung

  • Ausschneiden bzw. Kopieren und Einfügen von Text oder Daten aus einer Hostanwendung in eine andere

  • Wechseln zwischen den Registerkarten für verschiedene Hostanwendungen

  • Auswählen von Text mit der Maus oder Klicken der Maustaste zum Bewegen des Cursors (Mausklicks werden als Cursorpositionen aufgezeichnet.)

Folgende Vorgänge können nicht aufgezeichnet werden:

  • Interaktionen zwischen Reflection-Einstellungen und Produktivitätsfunktionen (wie "Rechtschreibprüfung", "Automatisches Erweitern" und "Automatisches Vervollständigen")

  • Aufbauen oder Trennen einer Hostverbindung

  • Interaktion mit Webanwendungen

  • Ausschneiden oder Einfügen von Text oder Daten zwischen einem Host und einer externen Anwendung (z. B. Windows Editor)

So zeichnen Sie ein Makro auf

  1. Führen Sie die Aufgabe(n) aus, die Sie automatisieren möchten.

  2. (Optional) Wenn Sie die Aufzeichnung unterbrechen möchten, um eine andere Aufgabe auszuführen, klicken Sie auf Aufzeichnung anhalten. Klicken Sie erneut auf Aufzeichnung anhalten, wenn Sie die Aufzeichnung fortsetzen möchten.

  3. Klicken Sie nach Abschluss der Makroaufzeichnung auf Aufzeichnung beenden.

    Das Dialogfeld Aufzeichnung abgeschlossen wird angezeigt.

  4. Geben Sie einen Namen für das Makro ein, legen Sie einen Speicherort fest, und klicken Sie dann auf OK.

    HINWEIS:Aufgezeichnete Makros können im Visual Basic-Editor bearbeitet werden. Weitere Informationen hierzu finden Sie unter Bearbeiten eines Makros.

3.6.4 Bearbeiten eines Makros

Reflection-Makros können mit dem Visual Basic-Editor bearbeitet werden.

So bearbeiten Sie ein Makro

  1. Das Dialogfeld Makros wird angezeigt.

  2. Wählen Sie im Feld Makroname den Namen des zu bearbeitenden Makros aus, und klicken Sie auf Bearbeiten.

  3. Geben Sie die Makrobefehle im Visual Basic-Editor ein, und nehmen Sie die gewünschten Änderungen vor.

  4. Wählen Sie im Menü Datei den Befehl Speichern aus.

3.6.5 Ausführen eines Startmakros

Sie können ein VBA-Makro (Visual Basic for Applications) einrichten, das beim Starten des Reflection-Arbeitsbereichs und nicht beim Öffnen einer Sitzung und der Verbindungsherstellung zum Host ausgeführt wird.

Dies ermöglicht Ihnen, Informationen über die Verbindungsart der Benutzer zu sammeln, die Sie anschließend zum Konfigurieren der Sitzungseinstellungen verwenden können.

Sie können z. B. ein Startmakro erstellen, mit dem folgende Aufgaben ausgeführt werden:

  • Anzeigen eines VBA-UserForm-Dialogfelds, um Informationen vom Benutzer zu sammeln, bevor die Verbindung zum Host hergestellt wird

  • Lesen einer .ini-Datei

  • Prüfen der Host- oder Routerverfügbarkeit

  • Konfigurieren der Reflection-Einstellungen

    VORSICHT:Sie können nur Makros im allgemeinen Projekt konfigurieren, die beim Starten des Arbeitsbereichs ausgeführt werden. Konfigurieren Sie nicht die Aktion "Reflection-Arbeitsbereich-Makro ausführen", um ein Makro in einem Sitzungsdokument auszuführen (rd0x, rd3x, rd5x). Andernfalls kann Reflection nicht ordnungsgemäß gestartet werden.

So richten Sie ein Startmakro ein

  1. Klicken Sie unter Arbeitsbereicheinstellungen auf Arbeitsbereicheinstellungen konfigurieren.

  2. Wählen Sie unter Arbeitsbereich und Dokumente in der Liste Beim Starten des Arbeitsbereichs die Option Startaktion ausführen aus.

  3. Klicken Sie auf Aktion auswählen.

  4. Wählen Sie unter Aktion die Option Reflection-Arbeitsbereich-Makro ausführen aus.

  5. Wählen Sie unter Aktionsparameter die Option Makro auswählen aus.

  6. Wählen Sie im Feld Makro auswählen das Makro aus, das beim Starten von Reflection ausgeführt werden soll.

3.6.6 Einrichten von Makros, die vor oder nach Herstellen einer Hostverbindung ausgeführt werden

Wenn Sie ein Makro für Ihre Sitzung bzw. Ihren Arbeitsbereich erstellt haben, können Sie die Sitzung zum Ausführen eines Verbindungsmakros einrichten.

So richten Sie ein Verbindungsmakro ein

  1. Führen Sie im Dialogfeld Einstellungen eine der folgenden Aktionen aus:

    • (VT) Klicken Sie auf Verbindungseinstellungen konfigurieren.

    • (3270 oder 5250) Klicken Sie auf Erweiterte Verbindungseinstellungen konfigurieren.

  2. Wählen Sie unter Verbindungsaktion aus, ob das Makro vor oder nach der Erstverbindung ausgeführt werden soll.

  3. Klicken Sie auf Aktion auswählen, und wählen Sie das auszuführende Makro aus.

3.6.7 Benennen von Makros

Beachten Sie folgende Regeln bei der Benennung von Visual Basic-Makros (einschließlich Prozeduren, Konstanten, Variablen und Argumente):

  • Das erste Zeichen muss ein Buchstabe sein. (Bei Namen muss die Groß-/Kleinschreibung nicht berücksichtigt werden, Großbuchstaben werden jedoch beibehalten.)

  • Verwenden Sie ausschließlich alphanumerische Zeichen und den Unterstrich ( _ ). Leerzeichen und andere Symbole sind nicht zulässig.

  • Verwenden Sie höchstens 255 Zeichen.

  • Vermeiden Sie Benennungen, die Visual Basic- oder Reflection-Befehlen entsprechen. Wenn Sie jedoch tatsächlich einen Makronamen verwenden möchten, der mit einem Befehl übereinstimmt, müssen Sie den Befehl bei Bedarf vollständig qualifiziert angeben. (Geben Sie dazu vor dem Befehlsnamen den Namen der zugehörigen Typbibliothek ein. Wenn ein Makro beispielsweise den Namen "Beep" trägt, kann die Visual Basic-Anweisung Beep nur durch Eingabe von "VBA.Beep" aktiviert werden.

  • Die Makronamen innerhalb eines Moduls müssen eindeutig sein. Innerhalb eines Codemoduls kann jeweils nur ein Makro denselben Namen tragen. Es können nur dann zwei Makros mit demselben Namen vorhanden sein, wenn diese sich in unterschiedlichen Codemodulen befinden. Beispiel: Obwohl zwei Makros mit dem Namen "StartUp" nicht im selben Codemodul zulässig sind, sind zwei Makros mit dem Namen "StartUp" zulässig, sofern sie in unterschiedlichen Codemodulen vorhanden sind. Um ein Makro mit einem doppelt verwendeten Namen in einem anderen Codemodul aufzurufen, muss der Makroname vollständig angegeben werden. (Mit "Modul1.StartUp" wird beispielsweise das Makro "StartUp" in "Modul1" aufgerufen.)