Mehr als Aufzeichnen: Verzweigungen, Schleifen und Variablen in Skripten
Makros, die Bedienvorgänge aufzeichnen und wiedergeben, sind die einfachste Möglichkeit, wiederkehrende Aufgaben zu automatisieren. Aufgezeichnete Makros besitzen jedoch eine grundlegende Eigenschaft: Sie tun jedes Mal exakt dasselbe. Im Arbeitsalltag müssen Handlungen häufig situationsabhängig angepasst werden, etwa: „Wenn der Bestand null ist, eine Bestellung aufgeben“ oder „Wenn die Gesamtsumme das Budget überschreitet, eine Warnung ausgeben“. Solche Entscheidungen lassen sich nicht allein durch Aufzeichnen abbilden.
Hier kommen Skripte ins Spiel. Mit ihnen lassen sich grundlegende Programmelemente wie Verzweigungen („Wenn …, dann …“), Schleifen (Wiederholungen) und Variablen (Behälter zum Speichern von Werten) in Ihre Automatisierung integrieren. Der Begriff „Programmierung“ mag zunächst abschreckend wirken, doch diese Elemente bilden lediglich alltägliche Entscheidungen ab und sind konzeptionell keineswegs schwierig. Dieser Artikel erklärt verständlich die drei Säulen von Skripten als nächsten Schritt nach dem Aufzeichnen.
Verzweigungen (IF/ELSE): Entscheidungen treffen lassen
Eine Verzweigung ist ein Mechanismus, bei dem eine bestimmte Verarbeitung nur ausgeführt wird, wenn eine Bedingung erfüllt ist. Der IF-Block führt seinen Inhalt nur aus, wenn die Bedingung wahr ist; ELSE behandelt alle anderen Fälle. So lässt sich etwa formulieren: „Wenn auf dem Bildschirm das Wort ‚Fehler‘ erscheint, die zuständige Person benachrichtigen. Andernfalls direkt mit dem nächsten Schritt fortfahren.“
Als Bedingungen können auf dem Bildschirm angezeigte Werte, die Farbe eines bestimmten Pixels oder in Variablen gespeicherte Zahlen dienen. Menschen führen die Abfolge „Bildschirm betrachten, Situation beurteilen und nächste Handlung festlegen“ unbewusst aus. Verzweigungen übertragen genau diese Entscheidungsfindung auf die Automatisierung. Einmal geschrieben, trifft der Computer die Entscheidung künftig jedes Mal korrekt für Sie.
Schleifen (LOOP): Vorgänge wiederholen lassen
Eine Schleife ist ein Mechanismus, der denselben Vorgang mehrfach wiederholt. Das ähnelt der Angabe einer „Wiedergabeanzahl“ für ein Makro, doch Schleifen in Skripten sind deutlich flexibler. Neben einer festen Anzahl wie „zehnmal wiederholen“ sind situationsabhängige Wiederholungen möglich, etwa „wiederholen, bis die Liste keine Zeilen mehr enthält“ oder „wiederholen, bis eine bestimmte Bedingung erfüllt ist“.
Der wahre Wert von Schleifen zeigt sich beim Verarbeiten großer Datenmengen. Wenn Sie den Vorgang „einen Datensatz verarbeiten“ in eine Schleife einschließen, wird daraus „alle Einträge der Liste verarbeiten“. Ob 100 oder 1.000 Einträge: Sie müssen den Vorgang nur für einen Eintrag schreiben, den Rest durchläuft die Schleife automatisch. Ein Vorgang, der manuell mehrere Stunden dauern würde, muss mit einer Schleife nur einmal geschrieben werden; danach heißt es lediglich warten. An diesem Punkt spart Automatisierung nicht mehr nur Minuten, sondern Stunden.
Variablen: Werte speichern
Variablen sind „Behälter“, in denen Werte während eines Ablaufs vorübergehend gespeichert werden. Dazu gehören Zählerstände, Dateinamen, vom Bildschirm ausgelesene Zahlen oder Zwischenergebnisse einer Berechnung. Werden solche Werte in Variablen abgelegt, lassen sie sich in späteren Schritten wiederverwenden. Ein Ablauf wie „Den Wert einer Zelle in eine Variable einlesen und ihn in ein anderes Tabellenblatt übertragen, wenn er 10.000 überschreitet“ wird beispielsweise durch die Kombination von Variablen und bedingten Verzweigungen umgesetzt.
Wenn Variablen, bedingte Verzweigungen und Schleifen zusammenkommen, erweitern sich die Möglichkeiten der Automatisierung erheblich. „Daten einlesen (Variablen), die Verarbeitung abhängig vom Inhalt ändern (bedingte Verzweigungen) und auf alle Datensätze anwenden (Schleifen)“ – allein mit dieser Kombination lässt sich ein beträchtlicher Teil der praktischen Arbeit abdecken. Hier beginnt die „intelligente Automatisierung“, die mit einfacher Aufzeichnung und Wiedergabe nicht erreichbar war.
Mit Fehlerbehandlung zu einer „unterbrechungsfreien Automatisierung“
Wenn Sie mit bedingten Verzweigungen, Schleifen und Variablen vertraut sind, sollten Sie als Nächstes die „Fehlerbehandlung“ kennenlernen. Beim langfristigen Betrieb einer Automatisierung treten unweigerlich unerwartete Situationen auf: Die Netzwerkverbindung bricht kurz ab, eine Datei, die geöffnet werden sollte, wird nicht gefunden oder die Bildschirmanzeige sieht anders aus als gewöhnlich. Ein Skript, das auf solche Fälle nicht vorbereitet ist, bleibt sofort vollständig stehen. Bei einer unbeaufsichtigten Ausführung in der Nacht kann die Arbeit dadurch bis zum nächsten Morgen unterbrochen bleiben.
Hier kommt der Fehlerbehandlungsmechanismus TRY/CATCH ins Spiel. Damit lässt sich ein Ablauf erstellen, bei dem ein Fehler im TRY-Block nicht das gesamte Verfahren stoppt, sondern zu den im CATCH-Block festgelegten Aktionen wechselt – etwa den Fehler protokollieren, eine Benachrichtigung senden oder nur den betroffenen Datensatz überspringen und mit dem nächsten fortfahren. So entsteht eine robuste Automatisierung, die auch dann alle übrigen Datensätze bis zum Ende verarbeitet, wenn einer fehlschlägt. Dem Skript wird damit die für Menschen selbstverständliche Reaktion beigebracht: „Einen Fehler zunächst protokollieren und dann weitermachen.“
Häufig verwendete SCR-Befehle kennen
Die SCR-Skripte von makuroku bieten zahlreiche Befehle, die in der Praxis häufig benötigt werden. Sie müssen nicht alle auf einmal lernen. Wenn Sie jedoch wissen, was möglich ist, kommen Sie leichter auf Ideen wie „Das könnte sich ebenfalls automatisieren lassen“. Sehen wir uns einige typische Befehle an.
- • FIND_IMAGE / WAIT_IMAGE: Elemente auf dem Bildschirm anhand eines Bildes suchen bzw. auf sie warten
- • IF / ELSE / LOOP: bedingte Verzweigungen und Wiederholungen
- • SET / ADD / SUB: Variablen Werte zuweisen und Berechnungen ausführen
- • READ_FILE / WRITE_FILE: Dateien lesen und schreiben
- • HTTP_GET / POST: Kommunikation mit externen Diensten
- • NOTIFY / PROMPT: Benachrichtigungen anzeigen und Benutzereingaben anfordern
Durch die Kombination dieser Funktionen lassen sich anspruchsvolle Automatisierungen realisieren, die mit einer einfachen Aufzeichnung bei Weitem nicht möglich wären – etwa Daten aus einer Datei einzulesen, die Verarbeitung abhängig von Bedingungen zu ändern, das Ergebnis an einen externen Dienst zu senden und anschließend den Abschluss zu melden. Da jede einzelne Anweisung eine einfache Aufgabe hat, ist das Erlernen nicht schwierig. Erweitern Sie Ihr Repertoire einfach nach und nach, beginnend mit den Anweisungen, die Sie gerade benötigen.
Beispiele für Automatisierungen mit Skripten
Durch die Kombination von Verzweigungen, Schleifen, Variablen und Fehlerbehandlung werden Automatisierungen möglich, die eine einfache Aufzeichnung bei Weitem übersteigen. Sehen wir uns einige konkrete Beispiele an. Eine Aufgabe könnte etwa darin bestehen, „alle Dateien in einem Ordner nacheinander zu öffnen, ihren Inhalt zu prüfen und nur diejenigen, die bestimmte Bedingungen erfüllen, in einen anderen Ordner zu verschieben“. Das lässt sich umsetzen, indem eine Schleife alle Dateien durchläuft und Verzweigungen sie entsprechend einordnen. Eine Sortieraufgabe, die manuell eine Stunde dauert, ist mit einem einmal erstellten Skript in wenigen Minuten erledigt.
Ein weiteres Beispiel ist die Überwachung: „regelmäßig Daten von einer Website abrufen, sie mit dem vorherigen Wert vergleichen und bei einer Änderung eine Benachrichtigung ausgeben“. Auch dafür eignen sich Skripte besonders gut. Die Daten werden per HTTP-Kommunikation abgerufen, mit dem in einer Variablen gespeicherten vorherigen Wert verglichen und über eine Verzweigung wird bei einer Änderung eine Benachrichtigung ausgelöst. In Kombination mit einer zeitgesteuerten Ausführung entsteht so ein Überwachungssystem, das keine Änderung verpasst, ohne dass Sie selbst etwas tun müssen.
Solche Automatisierungen wirken auf den ersten Blick schwierig, doch jedes einzelne Element – Schleifen, Verzweigungen, Variablen, Kommunikation und Benachrichtigungen – ist für sich genommen einfach. Schwierig ist, „alles auf einmal zu verstehen“, nicht aber, „die Elemente einzeln miteinander zu kombinieren“. Beginnen Sie beispielsweise nur mit Verzweigungen und befassen Sie sich anschließend nur mit Schleifen. Wenn Sie Ihr Wissen von den gerade benötigten Elementen aus schrittweise erweitern, werden Sie bald selbst recht anspruchsvolle Automatisierungen erstellen können.
Wichtig ist, nicht sofort ein perfektes Skript anzustreben. Erstellen Sie zunächst eine möglichst kleine, lauffähige Version, führen Sie sie aus und korrigieren Sie anschließend Schritt für Schritt die Stellen, die nicht wie gewünscht funktionieren. makuroku verfügt über eine Debugging-Funktion, die die gerade ausgeführte Zeile in Echtzeit hervorhebt. So können Sie visuell überprüfen, „wo und was gerade passiert“, und das Skript gezielt verbessern. Ausprobieren, korrigieren und erneut ausprobieren – diese Wiederholung ist der schnellste Weg, den Umgang mit Skripten zu meistern.
Tipps für gut lesbare Skripte
Ein Skript ist nach dem ersten Schreiben selten endgültig, sondern wird später häufig erneut geprüft und geändert. Wenn Sie daher bereits beim Schreiben auf „Lesbarkeit“ achten, erleichtern Sie sich die spätere Arbeit erheblich. Dafür gibt es einige Tipps. Geben Sie Variablen zunächst aussagekräftige Namen. Verwenden Sie statt „x“ oder „a“ Namen wie „Gesamtbetrag“ oder „Zieldateiname“, die den Inhalt erkennen lassen. So ist die Absicht der Verarbeitung auch später sofort verständlich.
Fügen Sie außerdem für jeden zusammengehörigen Verarbeitungsschritt Kommentare hinzu. Schon kurze Hinweise wie „Ab hier Daten abrufen“ oder „Hier Betrag prüfen“ machen den Ablauf des gesamten Skripts leichter nachvollziehbar. Komplexe Verarbeitungsschritte in mehrere kleine Skripte aufzuteilen, ist ebenfalls wirkungsvoll. Eine Sammlung kurzer, nach Aufgaben getrennter Skripte lässt sich leichter ändern und wiederverwenden als ein einziges riesiges Skript. Das Geheimnis langlebiger Skripte besteht darin, sie nach dem Maßstab zu schreiben: „Wird mein zukünftiges Ich das verstehen?“
Vorgehensweise beim Debuggen von Skripten
Beim Schreiben von Skripten kommt es zwangsläufig vor, dass etwas nicht wie erwartet funktioniert. Die systematische Suche nach der Ursache, ohne in Panik zu geraten, nennt man „Debugging“. Grundlage des Debuggings ist es festzustellen, „bis zu welchem Punkt alles korrekt funktioniert und ab wo das Verhalten von den Erwartungen abweicht“. makuroku bietet eine Funktion, die die gerade ausgeführte Zeile in Echtzeit hervorhebt, sowie eine PRINT-Ausgabe, die Zwischenwerte auf dem Bildschirm anzeigt. So können Sie visuell prüfen, „wo und was gerade passiert“, während Sie nach der Ursache suchen.
Für ein effektives Debugging sollte man den Ablauf zunächst in kleine Abschnitte unterteilen und deren Funktion nacheinander prüfen. Wer versucht, alles auf einmal fertigzustellen, kann nur schwer erkennen, wo ein Problem auftritt. Schreiben Sie Stück für Stück, führen Sie das Skript regelmäßig aus und machen Sie erst weiter, wenn alles korrekt funktioniert. Diese beharrliche Wiederholung führt letztlich am schnellsten und zuverlässigsten zu einem funktionierenden Skript. Auch Fehlermeldungen sind nicht beängstigend, wenn man sie als Hinweise darauf versteht, was korrigiert werden muss.
Empfohlene Reihenfolge zum Erlernen von Skripten
Hier finden Sie eine Orientierung dazu, in welcher Reihenfolge Sie die einzelnen Skriptelemente erlernen sollten. Beginnen Sie am besten mit bedingten Verzweigungen (IF/ELSE). Entscheidungen nach dem Muster „Wenn …, dann …“ bilden die Grundlage jeder Automatisierung. Danach folgen Schleifen (LOOP). Wiederholte Abläufe sind besonders wirkungsvoll, wenn große Datenmengen verarbeitet werden. Schon mit diesen beiden Elementen lassen sich viele Aufgaben automatisieren, die mit einer einfachen Aufzeichnung nicht zu bewältigen wären.
Als Nächstes kommen Variablen. Ein Mechanismus zum Speichern von Werten ermöglicht in Kombination mit bedingten Verzweigungen und Schleifen wesentlich flexiblere Abläufe. Sobald Sie so weit sind, lernen Sie die Fehlerbehandlung (TRY/CATCH). Für einen langfristigen unbeaufsichtigten Betrieb ist ein Mechanismus unverzichtbar, der den Ablauf auch nach einem zwischenzeitlichen Fehler fortsetzt. Zum Schluss können Sie je nach Einsatzzweck spezielle Befehle für Dateioperationen, HTTP-Kommunikation oder OCR erlernen – jeweils dann, wenn Sie sie benötigen.
Wichtig ist, nicht alles auf einmal lernen zu wollen. Wenn Sie bei Ihrer tatsächlichen Arbeit denken: „Es wäre praktisch, wenn ich das könnte“, suchen Sie nach der entsprechenden Funktion und probieren Sie sie aus. Dieses Lernen aus einem konkreten Bedarf heraus bleibt letztlich am besten hängen. Statt ein Lehrbuch von Anfang bis Ende durchzuarbeiten, entwickeln Sie mehr praktische Fähigkeiten, wenn Sie Ihre aktuellen Aufgaben automatisieren und dabei jeweils die gerade benötigten Elemente erlernen.
Skripte mögen auf den ersten Blick schwierig erscheinen, doch ihre einzelnen Elemente sind einfach und lassen sich mit einem schrittweisen Lernansatz sicher beherrschen. Sobald Sie sie erlernt haben, erweitert sich der Umfang der automatisierbaren Aufgaben erheblich. Beginnen Sie mit einer Aufzeichnung und wagen Sie den ersten Schritt in die Welt der Skripte, indem Sie ihr zunächst eine einzige bedingte Verzweigung hinzufügen.
Reibungsloser Übergang von der Aufzeichnung zum Skript
Gerade wer denkt, dass Skripte schwierig seien, sollte wissen, dass man nicht mit einem leeren Blatt beginnen muss. In makuroku können Sie Bedienvorgänge zunächst über die GUI aufzeichnen und das Makro anschließend in ein bearbeitbares SCR-Skript umwandeln. Damit steht Ihnen von Anfang an ein funktionsfähiges Grundgerüst zur Verfügung. Danach müssen Sie nur noch die benötigten Stellen anpassen, indem Sie beispielsweise einen zu wiederholenden Abschnitt mit LOOP umschließen oder an einer Entscheidungsstelle IF hinzufügen.
Darüber hinaus prüft makuroku die Syntax bereits während der Eingabe und weist Sie sofort auf Schreibfehler hin. Eine Debugging-Funktion hebt außerdem die gerade ausgeführte Zeile in Echtzeit hervor, sodass Sie auf einen Blick erkennen, welcher Abschnitt aktuell verarbeitet wird. Dank dieser Hilfen gelingt der Übergang von der Aufzeichnung zum Skript fließend. Erstellen Sie zunächst per Aufzeichnung das Grundgerüst und ergänzen Sie nach und nach Bedingungen und Schleifen. Mit diesem Vorgehen können selbst Menschen ohne Programmiererfahrung eigenständig praktische Automatisierungen erstellen. In makuroku können Sie all diese Funktionen kostenlos ausprobieren.
Kostenlos testen
Automatisieren Sie es mit makuroku
makuroku nimmt Maus und Tastatur auf und spielt sie automatisch ab. Fügen Sie SCR-Skripte und KI-(MCP-)Integration hinzu, wenn Sie mehr brauchen. Alle Funktionen unter Windows kostenlos.
Weitere Artikel