Ziffern, Zellen, Zahlenspiele: Kurs - Makros erleichtern den Umgang mit Tabellenkalkulationen

Willkommen zum letzten Teil unseres Kurses. Dieses Mal widmen wir uns einem der schwierigsten Gebiete der Tabellenkalkulationen: den Makros. Das sind kleine Programme, die immer wiederkehrende Abläufe automatisieren.

Da es bei der Handhabung und Verarbeitung von Makros sehr große Abweichungen unter den Programmen gibt, beziehen sich die folgenden Beispiele alle auf »LDW Power-Calc«.

Das Einfügen und Löschen von Zeilen ist ein sehr einfaches Beispiel für ein Makro, das man im Umgang mit Tabellen häufig benötigt. Wählen Sie unter dem Menütitel »Makro« den Punkt »Beginn«. Es erscheint eine schwarze Box, in der »MREC« steht. Diese Box signalisiert, daß LDW alle weiteren Aktionen aufzeichnet. Klicken Sie unter »Arbeitsblatt« auf »Einfügen«. LDW fragt jetzt, ob Sie eine Zeile oder eine Spalte einfügen wollen. Bestimmen Sie die Zeile und betätigen per Maus oder Return den »OK«-Knopf. LDW fügt nun eine Zeile an der Stelle des Zellzeigers ein. Beenden Sie mit »Makro» und »Ende« die Aufzeichnung. Das Programm fragt jetzt nach der Zelle, in der es das Makro ablegen soll. Wählen sie zunächst irgendeine Zelle, die nicht belegt ist. Die anschließende Frage nach dem Namen für das Makro beantworten Sie sinnvollerweise mit »Einfügen«. Mit der Tastenkombination Alt E starten Sie ab sofort das Makro und fügen damit automatisch eine Zeile an der Stelle des Zellzeigers ein.

Schauen Sie sich den Inhalt der Zelle an, in dem das Makro abgelegt ist. Dort sollte »/AEZ"« stehen. Dies entspricht genau den Tastendrücken, die nötig sind, um eine Zeile an der Stelle des Zellzeigers einzufügen. Ein aufgezeichnetes Makro ist also nichts anderes als eine Folge von Tastenkombinationen.

Das nächste Beispiel ist schon komplexer. Eine häufig benötigte Aktion bei der Arbeit mit Tabellen ist das Vertauschen zweier Zeilen. Der schnellste Weg zum Ziel besteht darin, eine Leerzeile einzufügen und die erste Zeile dorthin zu kopieren. Danach kopiert man die zweite Zeile in die erste und löscht die zweite Zeile. Wenn Sie das zehnmal gemacht haben, sind entweder Ihre Finger verknotet oder die Maus gibt den Geist auf.

Das Finger- und Maus-rettende Makro erzeugen Sie folgendermaßen: Zuerst den Zellzeiger auf die obere der zu tauschenden Zeilen in die erste Spalte bewegen und den Makro-Rekorder einschalten. Jetzt den Zellzeiger eine Zeile nach unten bewegen und anschließend eine Zeile wie oben beschrieben einfügen. Danach den Zellzeiger wieder eine Zeile nach oben bewegen. Wählen Sie nun im Menü »K-V« die Funktion »Kopie«. Mit der Tastenkombination Shift Cursor-rechts den Zellzeiger bis an die Spalte bewegen, die Sie als letztes kopieren wollen. Am einfachsten ist es, gleich die letzte Spalte, also »IV« zu nehmen.

Als nächstes mit Return die Bereichsangabe bestätigen, den Zellzeiger eine Zeile nach unten bewegen und wieder mit Return bestätigen. Damit ist die obere Zeile kopiert. Genauso verfahren Sie mit der unteren Zeile, die Sie zwei Zeilen nach oben kopieren. Dann noch die überflüssige letzte Zeile löschen und den Makro-Rekorder wieder ausschalten - fertig. Speichern Sie dieses Makro unter dem Namen »Tauschen« wieder an einer freien Stelle im Arbeitsblatt. Sehen wir uns dieses Makro an, dann erkennen wir, daß LDW die nicht darstellbaren Tasten in geschweiften Klammern ausgibt. Die Aktion Cursor-hoch erzeugt zum Beispiel den Eintrag »{Oben}« und Shift Cursor-rechts den Eintrag {Sprungrechts}. Eine Ausnahme bildet »OK« bzw. die Return-Taste. Dafür zeigt das Programm die Tilde (").

Eine Liste aller Einträge von LDW finden Sie in Tabelle 1. Neben dem Makro-Recorder können Sie auch via Tastatur dem Programm Ihre Makros mitteilen. Dazu ist die Befehlsfolge als Text, also mit voran gestellten Hochkomma (') einzugeben. Damit LDW diese Zeichenkette auch als Makro akzeptiert, muß die Zelle, die das Makro enthält, als Bereich benannt sein. Bewegen Sie den Zellzeiger auf die Zelle mit dem Makro und wählen in dem Menü »Bereich« die Funktion »Name-Erstellen«. Anschließend geben Sie den gewünschten Namen ein. Das erste Zeichen muß ein Backslash () sein. Ab sofort aktivieren Sie mit der Alternate-Taste und dem ersten Buchstaben Ihres Makronamens das Makro.

# Makro-Symbole
Befehl Symbol
Cursor hoch {Oben}
Cursor runter {Unten}
Cursor links {Links}
Cursor rechts {Rechts}
Shift-Cursor hoch {PgUp}
Shift-Cursor runter {Pgdn}
Shift-Cursor links {Sprunglinks}
Shift-Cursor rechts {Sprungrechts}
Home {Home}
Shift-Home {End}
Insert {Ins}
Delete {Del}
Backspace {Rt}
UNDO {Rol}
Escape {Esc}
Tab {Sprungrechts}
Shift-Tab {Sprunglinks}
Return H
[Ändern] (F2) {Edit}
[Name] (F3) {Name}
[Abs! (F4) {Abs}
[Gehezu] (F5) {Gehezu}
[Notiz] (F6) {Notiz}
[Abfrage] (F7) {Abfrage}
[Tabelle] (F8) {Tabelle}
[Kalk] (F9) {Kalk}
[Grafik] (F10) {Grafik}
Control-UNDO {Abbruch}
Benutzereingabe {?}
**Tabelle 1.** Liste der Makro-Symbole

Die manuelle Eingabe bietet einen wesentlichen Vorteil gegenüber dem Makro-Rekorder. Es stehen dabei zusätzliche Kommandos, die sogenannten /X-Kommandos, zur Verfügung, die sonst nicht erreichbar sind. Vielleicht ist Ihnen bei der Makro-Ausführung aufgefallen, daß der Kontroll-Balken und das Fenster alle Aktionen mit den entsprechenden Tätigkeiten begleiten. Beides läßt sich mit /X-Kommandos an- und abschalten. Die Kommandos /XPF und /XWF frieren Kontroll-Balken bzw. Fenster ein. Die Ausführungsgeschwindigkeit der Makros sollte nach diesen Kommandos wesentlich höher sein. Mit den Kommandos / XPN und /XWN schalten Sie die Kontroll-Balken und die Menüleiste wieder ein.

Der Aufruf von Unterprogrammen ist eine weitere Besonderheit der /X-Kommandos. Der Befehl /XC ruft Unterprogramme auf, die ein /XR wieder verläßt.

Immer wiederkehrende Befehlsfolgen schreiben Sie einfach in eine Zelle und rufen Sie als Unterprogramm beliebig oft auf.

Sehr wichtig zur Programmierung sind auch IF-Konstruktionen, mit denen man je nach Bedingung entscheidet, was weiter geschehen soll. So sollte vor einer Aktion, die einen Datenverlust bewirkt (z. B. löschen einer Zeile), eine Sicherheitsabfrage eingebaut sein. Der Befehl /XI testet eine einzugebende Bedingung. Ist die Bedingung »Wahr«, fährt das Makro mit der Abarbeitung in der aktuellen Zelle fort. Bei einer falschen Bedingung springt LDW in die nächste Zelle und führt die dort enthaltenen Kommandos aus.

Häufig ist es nötig, daß man während des laufenden Makros noch Eingaben macht. Die Befehle /XL und /XN erlauben dies. Der Aufbau beider Kommandos ist identisch. Der einzige Unterschied liegt darin, daß/XL nur Zeichenketten zuläßt, während /XN nur numerische Eingaben akzeptiert. Dazu ein Beispiel. Im zweiten Teil des Kurses hatten wir eine Tabelle mit den Kursverläufen einiger Aktien aufgebaut. Das Hinzufügen der Kurse eines Tages läßt sich einfach in einem Makro zusammenfassen:

/XLDatum: {unten/} 
XNSiemens: ""{unten/} 
XNAEG: ""

Nach dem Kommando /XL kommt zunächst eine Meldung, die dem Benutzer einen Hinweis auf die erwartete Eingabe gibt. Die erste Tilde schließt die Meldung. Vor der zweiten Tilde könnte eine Zelle angegeben sein, welche die Eingabe speichert. Da die Eingabe in die aktuelle Zeile soll, ist hier keine Angabe erforderlich. Als nächstes muß der Zellzeiger eine Zeile nach unten, dann folgt die Eingabeaufforderungen für die einzelnen Tageskurse. Da es sich um Zahlenmaterial handelt, steht hier ein /XN-Kommando. Bei Texteingaben wäre ein /XL nötig. Eine weitere simple Methode für Benutzereingaben bietet das Sonderzeichen {?}. Egal wo dieses Zeichen auftaucht, läßt es den Benutzer eine beliebige Eingabe machen. Das Makro @ SIN fügt zum Beispiel in die aktuelle Zelle den Sinus einer Benutzereingabe ein. Die Liste aller /X-Kommandos finden sie in Tabelle 2.

# /X-Kommandos
Kommando Aktion
/XWF Fenster »einfrieren«
/XWN Fenster wieder freigeben
/XPF Kontroll-Balken »einfrieren«
/X PN Kontroll-Balken wieder freigeben
/XI(Bedingung)" Wenn-Dann (IF)
/XG(Zelle)" Gehe zu Zelle
/XC(Zelle)" Rufe Unterprogramm in Zelle auf
/XR Kehre aus Unterprogramm zu Aufrufer zurück
/XQ Ausführung der Makros beenden
/XL(Meldung)"(Zelle)" Gibt (Meldung) im Kontrollbalken aus, erwartet eine Text-Eingabe und schreibt diese in (Zelle)
/XN(MeldungnZelle)" Gibt (Meldung) im Kontrollbalken aus, erwartet eine numerische Eingabe und schreibt diese in (Zelle)
/XM(Zelle)" Definieren eines eigenen Menüs.
Tabelle 2. Die /X-Kommandos stehen in LDW Power-Calc nur bei manueller Eingabe zur Verfügung

Außer dem Griff zum Resettaster gibt es vier Bedingungen zum Beenden eines Makros:

  1. Der Benutzer unterbricht mit der Tastenkombination Control Undo.
  2. Das Makro enthält einen Fehler.
  3. Das /X-Kommando /XQ kommt zur Ausführung.
  4. Es kommt eine leere Zelle zur Ausführung.

Eine kurzzeitige Unterbrechung erreichen Sie mit Alternate F1 oder Alternate F2. Ein nochmaliges Betätigen derselben Tastenkombination läßt das Makro an der unterbrochenen Stelle wieder fortfahren. Diese beiden Tastenkommandos bringen LDW in den Einzelschrittmodus.

Makros lassen sich separat speichern, so daß sie in unterschiedlichen Arbeitsblättern zur Verfügung stehen. Damit es nicht zum Konflikt mit den Datenbereichen kommt, suchen Sie sich einen Bereich weit weg von den Daten aus, in dem alle Makros untergebracht sind. Bei LDW bietet sich der Bereich ab der Zelle IA8000 an.

Haben Sie einmal einen festen Bereich bestimmt, dann finden Sie Ihre Makros immer wieder und dem Aufbau einer Makrobibliothek steht nichts mehr im Wege. (wk)

## Kursübersicht

Teil 1: Elementare Bedienung □ praktisches Beispiel

Teil 2: Komplexe Problemlösung □ grafische Auswertung

Teil 3: Verwendung und Programmierung von Makros


Michael Bernhards
Aus: TOS 10 / 1990, Seite 50

Links

Copyright-Bestimmungen: siehe Über diese Seite