PhraseExpress v12 - Makrofunktionen

Inhaltsverzeichnis

Einführung

Mit Hilfe von Makrofunktionen lassen sich Textbausteine mit dynamischen Inhalten erweitern, zum Beispiel Inhalte externer Dateien, manuelle Texteingaben oder Zeit- und Datumsstempel.

PhraseExpress kann mit Makrofunktionen Anwendungen starten, Dokumente öffnen, Eingabeformulare und Textbausteine automatisiert erstellen, Hinweisfenster oder Sprechblasen ausgeben, Berechnungen durchführen, häufig benötige Arbeitsschritte oder Tastendrücke automatisieren.

Mit Stringoperationen, Zwischenablagefunktionen, Verschachtelung von Textbausteinen, Textvergleichsfunktionen, Schleifenbefehle, Variablen lassen sich komplexe Programmierungen realisieren.

Die hier beschriebenen Makrofunktionen beziehen sich auf PhraseExpress für Windows. Die PhraseExpress Versionen für Mac, iPhone/iPad und Android unterstützen eine Auswahl davon, mit zum Teil eingeschränkten, bzw auf das jeweilige Betriebssystem angepasstem Funktionsumfang.

Funktionsprinzip

Makrofunktionen sind Platzhalter im Textbaustein, die beim Ausführen durch dynamische Inhalte ersetzt werden, bzw. Aktionen auslösen.

Beispiel:

Heute ist der {#DATE}. Es ist jetzt {#TIME} Uhr.

Beim Einfügen des Textbausteins ersetzt PhraseExpress die Makrofunktionen im statischen Textbaustein mit dem jeweils aktuellen Datum und Zeit:

Heute ist der 10.03.2017. Die aktuelle Uhrzeit ist 12:34.

Makro hinzufügen

Um eine Makrofunktion zu erstellen:
  1. Klicken Sie im Textbausteininhaltsfeld an die Stelle, an der die Makrofunktion eingefügt werden soll.
  2. Wählen Sie die gewünschte Makrofunktion aus dem Ribbon-Menü.
  3. Konfigurieren Sie im Makroeingabedialog die Parameter.

Makro bearbeiten

Um ein bestehendes Makro zu bearbeiten:
  1. Doppel-klicken Sie die Makrofunktion, die Sie bearbeiten möchten. Alternativ klicken Sie das Makro mit der rechten Maustaste und wählen Sie "Makro bearbeiten" aus dem Kontextmenü.
  2. Nehmen Sie die Änderungen vor.
  3. Bestätigen Sie die Änderungen mit OK.

Mit einem Doppelklick auf den Autotext einer {#INSERT …} Makrofunktion springt PhraseExpress direkt zum verknüpften Textbaustein.

Verschachtelung

Makrofunktionen lassen sich annähernd beliebig verschachteln.

Beispiel:

Das Ergebnis lautet {#CALC {#INPUT -HEAD Menge?}*{#RND 10}}.

WICHTIG: PhraseExpress verarbeitet verschachtelte Makros bis auf wenige Ausnahmen von innen nach außen.

Im Beispiel sind die Makrofunktionen {#INPUT} und {#RND} im Makro {#CALC} eingebettet und werden daher zuerst verarbeitet:

  1. Zuerst gibt PhraseExpress den statischen Text "Das Ergebnis lautet" aus.
  2. Das {#INPUT} Makro fragt den Anwender nach einer manuellen Eingabe.
  3. Nach Anwendereingabe generiert die Makrofunktion {#RND} eine Zufallszahl.
  4. Erst dann multipliziert die Makrofunktion {#CALC} die Anwendereingabe mit der Zufallszahl, und das Ergebnis wird ausgegeben.
  5. Zuletzt gibt PhraseExpress den Rest des statischen Texts aus.
Beispielausgabe:

Das Ergebnis lautet 25.

Verschachtelte Textbausteine eröffnen nahezu unbegrenzte Möglichkeiten der Text- und Rechnerautomatisierung.

Unser Tipps & Tricks Blog zeigt viele Schritt-für-Schritt Anleitungen zur Inspiration.

So erstellen Sie ein verschachteltes Makro:
  1. Öffnen Sie den Makroeingabedialog eines bereits existierenden Makros.
  2. Klicken Sie mit der rechten Maustaste in ein Parameter-Eingabefeld und wählen Sie aus dem Kontextmenü das gewünschte Makro.
  3. Konfigurieren Sie das verschachtelte Makro.

Makrofunktionen:

Zeit und Datum

Datum-/Zeitstempel

{#DATE} fügt das aktuelle Datum und {#TIME} die aktuelle Tageszeit ein.

Heute ist der {#DATE}. Die aktuelle Uhrzeit ist {#TIME}.

Beim Ausführen des Textbausteins wird der statische Text dem jeweils aktuellen Datum, bzw. aktueller Uhrzeit ausgegeben:

Heute ist der 10.04.2017. Die aktuelle Uhrzeit ist 12:34.

Das Datums-/Zeitformat entspricht dem aktuell in Windows eingestellten Regionalschema.

Datumsformatierung

Die Makrofunktion {#DATETIME -f Format -S Verschiebung} gibt das Datum, bzw. die Zeit in beliebiger Formatierung aus.

Beispiele:
  • Ausgabe des Tages, Monats, der Stunde, Kalenderwoche oder Tag des Jahres.
  • Verschieben des aktuellen Datums auf zukünftige oder vergangene Minuten, Stunden, Tage, Monate oder Jahre. Dies ist nützlich z.B. für Textbausteine, die ein zukünftiges Fälligkeitsdatum beinhalten.
  • Runden der Uhrzeit auf eine Viertelstunde, halbe oder ganze Stunde. Eine aktuelle Uhrzeit von z.B. 12:05 wird mit dieser Option auf 12:00 abgerundet, oder auf 12:15, 12:30 oder 13:00 aufgerundet ausgegeben.
Parameter für die Datum-/Zeitformatierung:
Parameter Bedeutung
d Tag als Zahl ohne führende Null (1-31)
dd Tag als Zahl mit führender Null (01-31)
ddd Wochentag abgekürzt (Son-Sam)
dddd Wochentag ausgeschrieben (Sonntag-Samstag)
ddddd Datum in der Standardeinstellung in Kurzform (17.01.2014)
dddddd Datum in der Standardeinstellung in Langform (Dienstag, 17.01.2014)
m Monat als Zahl ohne führende Null (1-12). Wenn der Bezeichner m unmittelbar hinter dem Bezeichner h oder hh steht, wird anstelle des Monats die Minute angezeigt.
mm Monat als Zahl mit führender Null (01-12). Wenn der Bezeichner mm unmittelbar hinter dem Bezeichner h oder hh steht, wird anstelle des Monats die Minute angezeigt.
mmm Monatsnamen abgekürzt (Jan-Dez)
mmmm Monatsname ausgeschriebenen (Januar-Dezember)
y oder yy Jahr als zweistellige Zahl (00-99)
yyyy Jahr als vierstellige Zahl (0000-9999)
h Stunde ohne führende Null (0-23)
hh Stunde mit führender Null (00-23)
n Minute ohne führende Null (0-59).
nn Minute mit führender Null (00-59)
s Sekunde ohne führende Null (0-59)
ss Sekunde mit führender Null (00-59)
t Uhrzeit im Kurzformat (16:47)
tt Uhrzeit im Langformat (16:47:23)
am/pm Verwendet die 12-Stunden-Zeitanzeige für den vorhergehenden Bezeichner h oder hh und zeigt alle Stunden vor Mittag mit dem String 'am' und alle Stunden nach Mittag mit dem String 'pm' Für den Bezeichner am/pm können Kleinbuchstaben, Großbuchstaben und jede Kombination davon angegeben werden.
a/p Verwendet die 12-Stunden-Zeitanzeige für den vorhergehenden Bezeichner h oder hh und zeigt alle Stunden vor Mittag mit dem Zeichen 'a' und alle Stunden nach Mittag mit dem Zeichen 'p' Für den Bezeichner a/p können Kleinbuchstaben, Großbuchstaben und jede Kombination davon angegeben werden.
Zeitverschiebung

Parameter -S Verschiebung verschiebt das Datum, bzw. die Zeit abweichend von der aktuellen Zeit vor- oder zurück:

Beispiel für Verschiebungen Textausgabe
{#DATETIME} 17.1.2017 10:47
{#DATETIME -S 1d} 18.1.2017 10:47
{#DATETIME -S -2h} 17.1.2017 08:47
{#DATETIME -F mm.yyyy -S 5y} 01.2022
Anzahl der Tage/Wochen des aktuellen Jahres

{#DATETIME -D} gibt die Anzahl der Tage des laufenden Jahres aus.

{#DATETIME -W} gibt die Anzahl der Wochen des laufenden Jahres aus.

Datumsbasierte Berechnungen

Mit Parameter -VALUE kann ein Datum im Format der Windows Regionaleinstellungen übermittelt werden, das die {#DATETIME …} Makrofunktion datums-/zeitverschoben und/oder umformatiert wieder ausgibt.

Dieses Beispiel verschiebt das angegebene Datum um +14 Werktage:

{#DATETIME -VALUE 20.03.2017 -S 14w}

Kalender

{#CALENDAR -HEAD Fenstertitel -F Datumsformat -S Verschiebung -DEF Vorgabewert -MANUAL} öffnet ein Kalenderfenster zur Datumsauswahl, das im definierten Format ausgegeben wird.

Parameter
  • -HEAD definiert den Fenstertitel.
  • -F definiert das Ausgabeformat analog zu {#DATETIME …}.
  • -MANUAL fügt ein Datumseingabefeld hinzu.
Beispiel

Kaufdatum: {#CALENDAR -HEAD Wählen Sie das Kaufdatum -F dd.mm. -MANUAL}

Dieses Beispiel öffnet das Datumsauswahlfenster und das vom Anwender ausgewählte Datum wird als Text in der gewünschten Formatierung eingefügt, zum Beispiel "12.10.".

Wenn dieselbe Datumsauswahl an mehreren Stellen innerhalb eines Textbausteins benötigt wird, verwenden Sie einen identischen Fenstertitel für die Kalender-Makros. Die Datumsauswahl wird dann nur einmal abgefragt und anschließend für alle Kalender-Makros mit gleichem Fenstertitel innerhalb des Textbausteins wiederverwendet.

Anwendereingaben

PhraseExpress kann vor, bzw. beim Einfügen eines Textbausteins den Anwender zu einer Dateneingabe auffordern, die entweder in den Textbaustein eingebettet oder von weiteren Makrofunktionen ausgewertet wird.

Texteingabe

{#INPUT} fordert zur manuellen Eingabe auf, die anschließend an die Stelle der Makrofunktion eingefügt wird.

Parameter:
  • -HEAD definiert den Titel des Eingabefensters.
  • -SINGLE reduziert das Eingabefeld auf eine Zeile. Die Texteingabe kann dann mittels ENTER abgeschlossen werden.
  • -DEF befüllt das Eingabefeld mit einem Vorgabetext.
  • -REQUIRED erzwingt eine Eingabe. Bei Angabe von email, text, letters, numbers, url, filepath oder folderpath prüft PhraseExpress die entsprechende Syntax der Anwendereingabe.
Beispiel:

Guten Tag, {#INPUT -HEAD Name -SINGLE -REQUIRED letters}.

Wir haben Ihre Bestellung erhalten.

PhraseExpress gibt zunächst den statischen Teil des Textbausteins "Guten Tag, " aus und fordert anschließend mit einem einzeiligen Eingabefeld zur Texteingabe auf:

Eingabefeld

Der eingegebene Text wird nach Syntaxprüfung (es dürfen nur Buchstaben enthalten sein) anstelle der Makrofunktion zusammen mit dem restlichen Textbaustein ausgegeben:

Guten Tag, Frank Harris.

Wir haben Ihre Bestellung erhalten.

Statt mit der OK-Schaltfläche kann die Eingabe auch mit der Tastenkombination STRG-ENTER abgeschlossen werden.

Wird eine Texteingabe an mehreren Stellen innerhalb eines Textbausteins benötigt, duplizieren Sie das {#INPUT …} Makro und verwenden Sie dabei den identischen Fenstertitel. Die Texteingabe ist dann nur einmal erforderlich und wird an allen Stellen eingesetzt, an denen sich das {#INPUT …} Makro mit dem gleichlautenden Fenstertitel befindet. Alternativ können Sie die Eingabe in eine temporäre Variable speichern.

Formulare

Formulare bündeln mehrere Anwendereingaben vor dem Ausführen eines Textbausteins.

PhraseExpress generiert auf Basis aller Formularmakros automatisch ein Eingabeformular.

Nach Ausfüllen des Formulars ersetzt PhraseExpress die Makro-Platzhalter mit den entsprechenden Eingaben und gibt den Textbaustein aus.

So erzeugen Sie ein Formular:
  1. Bereiten Sie einen Textbaustein mit dem statischen Text-Grundgerüst vor.
  2. Fügen Sie schrittweise Formular-Elemente mit dem Befehl Makro » Formular an die gewünschten Stellen im Textbaustein hinzu.
Beispiel:

Der Kunde heißt: {#FORMEDITBOX -TEXT Ihr Name? -DEF Klaus -SINGLE -REQUIRED}.

Der Kunde ist {#FORMCHECKBOX -TEXT Langzeitkunde? -VALS Langzeitkunde|Neukunde -DEF True}.

Der Kunde verwendet {#FORMCOMBOBOX -TEXT Verwendete Versionsnummer? -items Version 11|Version 12}.

Bei Aufruf dieses Textbausteins fordert ein Eingabeformular zur Dateneingabe auf:

Nach Quittierung mit OK bindet PhraseExpress die Eingaben in den Textbaustein ein und gibt das Ergebnis in die Zielanwendung aus:

Der Kunde heißt Michael.

Der Kunde ist Langezeitkunde.

Der Kunde verwendet Version 11.

Die maximale Länge der Beschriftung für Formular-Elemente beträgt 256 Zeichen. Falls Texte im Formularfenster abgeschnitten werden, vergrößern Sie bitte die Fensterbreite mittels {#FORM …} Makro.

Entgegen der normalen Makroverarbeitung (von innen nach außen), werden Formular-Makros vor anderen Makros und sequentiell verarbeitet.

Wenn Sie ein und dieselbe Eingabe an mehreren Stellen innerhalb eines Textbausteins benötigen, verwenden Sie einfach eine identische Beschriftung für das entsprechende Formularelement. Das Formularelement wird später im Formular nur einmal angezeigt. Die Anwendereingabe wird dann an allen Stellen eingesetzt, an denen sich das Makro mit der gleich lautenden Beschriftung befindet.

Standardparameter für Formularmakros
  • -TEXT beschriftet das Formularelement.
  • -DEF füllt das Formularelement mit einem Vorgabewert.
  • -HINT zeigt einen Hinweistext beim Überstreichen des Formularelements mit der Maus.
  • -REQUIRED erzwingt eine Eingabe.

Texteingabe

{#FORMEDITBOX} fügt ein Eingabefeld zu einem Formular hinzu.

Parameter
  • -SINGLE erzeugt ein einzeiliges Eingabefeld.
  • -REQUIRED erzwingt eine Eingabe. Die Eingabefeld-Beschriftung wird um den Text "(Eingabe erforderlich)" ergänzt. Optional kann PhraseExpress die Syntax der Eingabe durch einen angehängten Parameter email, text, letters, numbers, url, filepath oder folderpath prüfen.
  • -HIDDEN verdeckt Anwendereingaben mit **** Zeichen (zum Beispiel für eine Passworteingabe).
Beispiel

{#FORMEDITBOX -TEXT Geben Sie die URL ein -DEF http://www.google.de -SINGLE -REQUIRED URL}

Das Beispiel fordert in einem einzeiligen Eingabefeld zur Eingabe einer Internetseitenadresse auf. Das Eingabefeld ist bereits mit "http://www.google.de" ausgefüllt. Eine Eingabe ist zwingend erforderlich und wird auf korrekte Syntax geprüft.

Zahleneingabe

{#FORMNUM} fügt eine Zahleneingabe zum Formular hinzu.

Parameter:
  • -MIN definiert den Minimalwert.
  • -MAX begrenzt auf einen Maximalwert.

Checkbox

{#FORMCHECKBOX} fügt ein Ankreuzfeld zum Formular hinzu.

Parameters
  • -VALS definiert die Ausgabe, wenn die Checkbox angekreuzt oder nicht angekreuzt ist. Ohne Angabe wird "yes", bzw. "no" ausgegeben.
  • -DEF True kreuzt die Checkbox als Vorgabe an.
Beispiel

{#FORMCHECKBOX -TEXT Sind Sie männlich? -VALS Er ist männlich|Sie ist weiblich -DEF True}

Das Beispiel erzeugt eine vorangekreuzte Checkbox. In diesem Fall wird "Er ist männlich ausgegeben". Wenn die Checkbox nicht angekreuzt wird, gibt das Makro "Sie ist weiblich" aus.

Gruppieren Sie thematisch zusammenhängende Checkboxen.

Drop-Down

{#FORMCOMBOBOX -ITEMS 1|2|3 -VALS a|b|c} fügt ein DropDown-Menü mit den, unter -ITEMS Auswahlmöglichkeiten zum Formular hinzu, die die Ausgabe der unter -VALS definierten Werte erzeugen.

Textbaustein Drop-Down

{#FORMPHRASECOMBO -SOURCE OrdnerAutotext} fügt ein DropDown-Menü mit allen Textbausteinen eines Ordners, der über seinen Autotext definiert wird, zum Formular hinzu.

Parameter:
  • -SOURCE definiert den Textbausteinordner über seinen Autotext.

Mit diesem Makro können Sie auch den Zwischenablagespeicher in ein Formular einbinden, sofern Sie für diesen einen Autotext definiert haben.

Radiobutton

{#FORMRADIOGROUP -ITEMS AuswahlA|AuswahlB|AuswahlB -VALS AusgabeA|AusgabeB|AusgabeC} erzeugt eine Gruppe von Optionsfeldern ("Radiobuttons").

Parameter
  • -ITEMS beinhaltet die einzelnen, per Vertikalstrich getrennten Elemente.
  • -HORIZONTAL ordnet die Radio buttons horizontal an. Achten Sie dann unter -ITEMS auf kurze Texte.

Schieberegler

{#FORMSLIDER -TEXT Schieberegler -HINT Hinweistext -DEF 7 -MIN 1 -MAX 10} zeigt einen Schieberegler zur Zahleneingabe.

Erscheinungsbild

{#FORM -TEXT Fenstertitel -WIDTH 450} definiert den Formulartitel und die Formularbreite in Pixel (250-1280 Pixel). Ohne Vorgabe beträgt die Standardbreite 450 Pixel.

Dieses optionale Makro muss sich am Textbausteinanfang befinden.

Gruppierung

{#FORMGROUP -TEXT Beschreibung -ENUM Aufzählungszeichen -LASTENUM letztes Aufzählungszeichen -ITEMS Formularelemente} gruppiert mehrere Formularelemente und gibt die Ausgaben der einzelnen Elemente mit definierbaren Aufzählungszeichen aus.

Parameter:
  • -ITEMS beinhaltet die zusammenzufassenden Formularelemente.
  • -ENUM definiert das Aufzählungszeichen, meist ein Komma, sinnvollerweise gefolgt von einem Leerzeichen.
  • -LASTENUM definiert das abschließende Aufzählungswort, zum Beispiel " und " an (die Leerzeichen sind absichtlich).
Beispiel:

{#FORMGROUP -TEXT Organe -ENUM ,  -LASTENUM  und  -ITEMS {#FORMCHECKBOX -TEXT Ohr -VALS Ohr}{#FORMCHECKBOX -TEXT Nase -VALS Nase}{#FORMCHECKBOX -TEXT Mund -VALS Mund}}

Beachten Sie im Beispiel sorgfältig die zum Aufzählungszeichen zugehörigen Leerzeichen.

Das Beispiel ergibt eine Gruppe mit drei Ankreuzfeldern. Die angekreuzten Elemente werden kommagetrennt ausgegeben. Das letzte angekreuzte Element wird mit "und", statt einem Komma verbunden.

Ausgabebeispiele:

Ohr, Nase und Mund

Ohr und Nase

Hilfstext

{#FORMTEXT -TEXT Beschreibung -LINK http://www.internetseite.de -HINT Hinweistext}fügt einen beschreibenden Text zum Formular-Fenster hinzu.

Dieser Text wird nicht mit dem Textbaustein ausgegeben.

  • Wenn Sie mittels Parameter -LINK eine Internetseitenadresse angeben, wird diese beim Klick auf den Text im Formular geöffnet.

Trennlinie

{#FORMSEPARATOR} fügt eine horizontale Trennlinie zwecks optischer Gliederung zum Formular hinzu.

Dokumentengenerator

{#DOCGEN} ruft den Dokumentengenerator auf.

Weitere Informationen enthält das Handbuch zum Dokumentengenerator.

Datei Öffnen - Dialog

{#OPENDLG} zeigt den Windowsdateiauswahldialog und gibt den vom Anwender gewählten Pfad zurück.

Parameter:
  • -DEFEXT wählt eine Dateiendung vor.
  • -DEFFILENAME gibt einen Dateinamen vor.
  • -INITDIR zeigt den Dialog mit dem hier vordefinierten Pfad.
Beispiel:

{#EMBEDFILE {#OPENDLG -TITLE Wählen Sie die Textdatei -DEFEXT txt -DEFFILENAME MeineDatei -INITDIR d:\data}}

Das innere {#OPENDLG} Makro öffnet das Explorerfenster zur Auswahl einer Textdatei mit der Dateiendung .txt. Der ausgewählte Dateipfad wird an das einschließende Makro {#EMBEDFILE} gesendet, das den Inhalt der Datei in den Textbaustein einfügt.

Datei Speichern - Dialog

{#SAVEDLG} zeigt die Windows Dateiauswahl zum Speichern einer Datei und gibt den gewählten Pfad zurück.

Parameter:
  • -DEFEXT wählt eine Dateiendung vor.
  • -DEFFILENAME gibt einen Dateinamen vor.
  • -INITDIR zeigt den Dialog mit dem hier vordefinierten Pfad.
Beispiel:

{#OUTPUT -TARGET {#SAVEDLG -TITLE Wohin soll gespeichert werden -DEFEXT txt -DEFFILENAME MeineDatei -INITDIR d:\data} -CONTENT Irgendein Text}

Das verschachtelte {#SAVEDLG} Makro fordert den Anwender auf, im Dateiexplorer einen Dateispeicherort zu wählen. Das einschließenden Makro {#OUTPUT} speichert den definierten Text an den, vom Anwender definierten Speicherort.

Externe Daten

Outlook Add-In

Mit dem Add-In für Microsoft Outlook kann PhraseExpress Daten von der aktuellen markierten E-Mail im Eingangspostfach auslesen, wie zum Beispiel den Betreff, Nachrichteninhalt und Absender der E-Mail.

Das Outlook Add-In Handbuch enthält weitere Informationen.

Einfügen externer Dateiinhalte

{#EMBEDFILE Dateipfad} fügt den Inhalt der angegebene Datei im Moment des Ausführens des Textbausteins in den Textbaustein ein.

Unterstützte Dateitypen
Dateiart Dateiendung
Textdateien .TXT, .RTF, .HTM, .HTML, .DOC, .DOCX

Bilddateien

.BMP, .JPG, .PNG

Excel-Dateien

.XLS, .XLSX

Microsoft Word- & Excel-Dokumente werden nur in der Pro Edition unterstützt und erfordern ein installiertes Microsoft Office.

Zum Einfügen der Datei selbst - zum Beispiel als E-Mail-Dateianlage - dient die Makrofunktion {#PASTEFILE …}.

{#EMBEDFILE …} Makro ersetzt und erweitert die Makrofunktionen {#IMGFILE …} und {#TEXTFILE …} früherer PhraseExpress Versionen.

Externe Datei einfügen

{#INSERTFILE Dateipfad} kopiert den Inhalt der angegebenen Datei in die Windows Zwischenablage und fügt die Zwischenablage in die aktuelle Zielanwendung ein.

Microsoft Word- & Excel-Dokumente werden nur in der Professional Edition unterstützt und erfordern ein installiertes Microsoft Office.

CSV Werte

{#CSV -col Spalte -row VonZeile -endcol BisSpalte -endrow BisZeile -file Dateipfad -colseparator Trennzeichen -rowseparator Trennzeichen}

Fügt die Zelle(n) einer CSV-Datei ("comma separated values", englisch für "kommagetrennte Werte") dynamisch im Moment des Ausführens des Textbausteins ein.

Parameter:
  • -ROW (Zeile) und -COL (Spalte) definieren die Koordinate des auszulesenden Wertes (jeweils ab Zahl 1).
  • Bei optionaler Angabe von -ENDROW und/oder -ENDCOL werden die Werte bis zur jeweiligen Koordinate ausgegeben (jeweils ab Zahl 1). Wird sowohl -ENDCOL, als auch -ENDROW angegeben, werden die entsprechenden Zellen des Ausschnitts der CSV-Datei von "links oben bis rechts unten" ausgegeben.
  • -FILE definiert die auszulesende CSV-Datei.
  • Bei Ausgabe mehrerer Zellen einer Zeile werden diese optional mit dem, mit -COLSEPARATOR definierten Trenntext aneinandergereiht ausgegeben.
  • Bei Ausgabe mehrerer Zellen einer Spalte werden diese optional mit dem, mit -ROWSEPARATOR definierten Trenntext aneinandergereiht ausgegeben.
Beispiel:

{#CSV -col 2 -row 3 -endcol 5 -endrow 6 -file d:\data\datei.csv -rowseparator , -colseparator $$$}

Das Beispiel gibt kommagetrennt die Spalten 2 bis 5 der Zeilen 3 bis 6 der CSV-Datei "datei.csv" aus. Die einzelnen Zeilen sind mit der Zeichenfolge $$$ getrennt.

Zum Einfügen der vollständigen CSV-Datei verwenden Sie stattdessen die Makrofunktion {#INSERTFILE …}.

Die Makrofunktion ersetzt und erweitert ab PhraseExpress v12.0.105 die Makrofunktion {#EXTRACTCSV… }.

MS Excel Zellenwerte

Videoanleitung

{#XLS -col Spalte -row VonZeile -endcol BisSpalte -endrow BisZeile -file Dateipfad -sheet Tabellenblattnummer -colseparator Trennzeichen -rowseparator Trennzeichen}

Fügt die Zelle(n) einer Microsoft Excel-Datei dynamisch im Moment des Ausführens des Textbausteins ein.

Parameter:
  • -ROW (Zeile) und -COL (Spalte) definieren die Koordinate der auszulesenden Zelle (jeweils ab Zahl 1). Als Spaltenkoordinaten verwendet PhraseExpress Zahlen statt eigentlich üblicher Buchstabenwerte, weil sie somit die Koordinaten zum Beispiel mit der Makrofunktion {#CALC …} programmgesteuert berechnen können.
  • Bei optionaler Angabe eines Wertes für -ENDROW und/oder -ENDCOL werden die Zellen bis zur jeweiligen Koordinate ausgegeben (jeweils ab Zahl 1). Wird sowohl -ENDCOL, als auch -ENDROW angegeben, werden die entsprechenden Zellen des Ausschnitts der Excel-Tabelle von "links oben bis rechts unten" ausgegeben.
  • -FILE definiert die auszulesende Excel-Datei.
  • -SHEET definiert optional die gewünschte Tabelle (ab Zahl 1) , sofern die Excel-Datei mehrere Tabellen beinhaltet.
  • Bei Ausgabe mehrerer Zellen einer Zeile werden diese optional mit dem, mit -COLSEPARATOR definierten Trenntext aneinandergereiht ausgegeben.
  • Bei Ausgabe mehrerer Zellen einer Spalte werden diese optional mit dem, mit -ROWSEPARATOR definierten Trenntext aneinandergereiht ausgegeben.
Beispiel:

Die Makrofunktion ist zum Beispiel in Verbindung mit den Funktionen {#GETXLSROW …}, bzw. {#GETXLSCOL …} nützlich:

Soll zum Beispiel die Zeile einer Exceltabelle ausgegeben werden, die in einer Spalte einen bestimmten Nachnamen beinhaltet, würde für den Parameter -ROW der Makrofunktion {#XLS …} in das Makro {#GETXLSCOL …} eingebettet werden, dass die Koordinate derjenigen Tabellenzeile zurückgibt, die den Suchbegriff beinhaltet:

{#XLS -col 2 -row {#GETXLSCOL -search {#INPUT -head Vorname? -single} -file D:\data\tabelle.xls} -endcol 5 -file D:\data\tabelle.xls -colseparator , }

Das Beispiel gibt kommagetrennt die Spalten 2 bis 5 derjenigen Zeile der Excel-Tabelle "tabelle.xls" aus, die das Suchwort beinhaltet, das mittels Makrofunktion {#INPUT… } abgefragt wird.

Zum Einfügen der vollständigen Excel-Tabelle verwenden Sie stattdessen die Makrofunktion {#INSERTFILE …}.

Die Makrofunktion {#XLS… } .erfordert eine lokale Microsoft Excel Installation und ersetzt/erweitert ab PhraseExpress v12.0.105 die Makrofunktion {#EXTRACTCELL… }.

Finde MS Excel-Tabellenspalte

{#GETXLSCOL -search Suchtext -file Dateipfad -sheet Tabellenblattnummer}

Gibt die Spaltenkoordinate (Zahl ab 1) einer Microsoft Excel-Datei aus, in der sich der Suchtext befindet.

Parameter:
  • -SEARCH definiert den Suchtext.
  • -FILE definiert die zu durchsuchende Excel-Datei.
  • -SHEET gibt optional die Tabelle (ab Zahl 1) an, sofern die Excel-Datei mehrere Tabellen beinhaltet.

Diese Makrofunktion erfordert eine lokale Microsoft Excel Installation.

Finde MS Excel-Tabellenzeile

{#GETXLSROW -search Suchtext -file Dateipfad -sheet Tabellenblattnummer}

Gibt die Zeilenkoordinate (Zahl ab 1) einer Microsoft Excel-Datei aus, in der sich der Suchtext befindet.

Parameter:
  • -SEARCH definiert den Suchtext.
  • -FILE definiert die zu durchsuchende Excel-Datei.
  • -SHEET gibt optional die Tabelle (ab Zahl 1) an, sofern die Excel-Datei mehrere Tabellen beinhaltet.

Die Makrofunktion erfordert eine lokale Microsoft Excel Installation.

 

XML Wert

{#EXTRACTXML -XPATH Pfad zum XML Wert -FILE Dateipfad} fügt den, per XPath adressierten Wert einer XML-Datei dynamisch im Moment des Ausführens des Textbausteins ein.

Diese Makrofunktion eignet sich zur Anbindung externer Datenbanken, die automatisiert eine XML-Datei generiert.

Beispiel:

{#EXTRACTCELL -XPATH //pfad/element/ -FILE D:\data\datei.xml}

Dieses Beispiel fügt den Inhalt des Tags //pfad/element/ ein.

Windows Umgebungsvariable

{#ENV Umgebungsvariable} fügt die angegebene Windows-Umgebungsvariable ein.

Beispiel:

Zurzeit unter {#ENV %os%} angemeldeter Anwendername: {#ENV %username%}

gibt folgenden Text aus:

Zurzeit unter Windows_NT angemeldeter Anwendername: Erwin

ActiveDirectory Variable

{#ADLDAP Variablenname} fügt den angegebenen LDAP Wert ein. Diese Funktion ist praktisch für E-Mail-Signaturen, die zentral aus der ActiveDirectory Datenbank mit Inhalt gefüllt werden.

Beispiel:

Freundliche Grüße,
{#ADLDAP Name}

Telefon: {#ADLDAP Phone}

erzeugt die Textausgabe:

Freundliche Grüße,
Claire Grube

Telefon: 05121/45455-92

Ausgabe

Tastendruck simulieren

PhraseExpress kann das Betätigen von Tasten simulieren.

Sondertastenbeispiele Ausgabe
{#ENTER} Simulation der Betätigung der ENTER-Taste.
{#SHIFT -CHARS abc} Ausgabe der Zeichen 'abc' bei gedrückter Feststell-Taste (SHIFT)
{#SHIFT -CHARS {#ALT -CHARS abc}} Die SHIFT-Taste wird zusammen mit der ALT-Taste betätigt und die Zeichen 'abc' ausgegeben
{#DOWN -COUNT 5} Die Pfeil Unten-Taste wird 5x betätigt
Beispiel:

Benutzername{#TAB}Passwort{#ENTER}

In diesem Beispiel wird der Text Benutzername ausgegeben, die Betätigung der TAB-Taste simuliert, der Text "Passwort" ausgegeben und abschließend der ENTER-Taste simuliert. Das ist praktisch, um z.B. den Anmeldevorgang an einer Internetseite zu automatisieren.

Schlüsselwörter für Sondertasten:

CTRL, ALT, SHIFT, SPACE, BKSP, TAB, BREAK, DEL, LEFT, RIGHT, UP, DOWN, ENTER, ESC, NUMPAD0, NUMPAD1, NUMPAD2, NUMPAD3, NUMPAD4, NUMPAD5, NUMPAD6, NUMPAD7, NUMPAD8, NUMPAD9, MULTIPLY, ADD, SEPARATOR, SUBTRACT, DECIMAL, DIVIDE, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, INS, HOME, END, PGDN, PGUP, PRTSC, SCROLLLOCK, NUMLOCK, CAPSLOCK, LWIN, RWIN, NONE

Hinweise zu einzelnen reservierten Sondertasten:
Sondertaste Hinweis
{#NONE} Dies ist ein Platzhalter, um eine gewünschte Tastenfolge zu simulieren, z.B. betätigt {#NONE -CHARS{#ENTER}{#DOWN} -COUNT 5} fünfmal abwechselnd die ENTER- und Pfeil Ab-Taste

{#ADD}, {#MULTIPLY}, {#SEPARATOR}, {#SUBTRACT}, {#DIVIDE}

 

Diese Schlüsselwörter repräsentieren die Sondertasten des getrennten Ziffernblocks

Die Simulation der Betätigung von Tastenkombinationen unterscheidet zwischen Groß- und Kleinschreibung. {#CTRL -CHARS A} simuliert zusätzlich die Betätigung der SHIFT-Taste, weil in dem Beispiel der Großbuchstabe A verwendet wurde. Wenn dies nicht erwünscht ist, verwenden Sie stattdessen den Kleinbuchstaben a: {#CTRL -CHARS a}.

Wir empfehlen Automatisierungen mit der integrierten Automatisierungslösung "Mouse Recorder" zu erstellen. Diese erspart die aufwendige manuelle Ermittlung der einzelnen Tastendrücke.

Zufallstext

{#RANDOMTEXT ZufallsText1|ZufälligerText2} fügt zufallsgesteuert einen der, mittels Hochstrich definierten Texte ein.

Beispiel:

Mit {#RANDOMTEXT freundlichen|besten} Grüßen

Die Ausgabe wäre dann zum Beispiel:

Mit freundlichen Grüßen

Bei einem weiteren Aufruf desselben Textbausteins könnte aber auch folgendes ausgegeben werden:

Mit besten Grüßen

Textausgabe in eine Datei

{#OUTPUT -TARGET d:\data\test.txt -CONTENT Text} speichert den, mit -CONTENT angegebenen Text in eine .txt/.rtf/.doc Datei unter dem mit -TARGET angegebenen Speicherort.

Parameter
  • -TARGET definiert den Dateinamen/-pfad.
  • -CONTENT beinhaltet den Inhalt, der in die Datei geschrieben wird.
Beispiel:

{#OUTPUT -TARGET {#SAVEDLG -TITLE Where to save the file?} -CONTENT {#INSERT ##Beispiel}}

Dieses Beispiel speichert den Inhalt des Textbausteins mit dem Autotext "##Beispiel" in eine Datei, deren Speicherort zuvor mit der Makrofunktion {#SAVEDLG …} vom Anwender abgefragt wird.

Parameter
  • -FILETEMPLATE definiert eine Microsoft Word .dot Vorlage, die für das zu speichernde Dokument verwendet werden soll.
  • -OPEN öffnet das erstellte Dokument mit einem hier definierten Programm.

Diese Makrofunktionerfordert ein installiertes Microsoft Word.

PhraseExpress benötigt Schreibrechte für das gewählte Speicherziel.

E-Mail Dateianlage

{#PASTEFILE Dateipfad} übermittelt die angegebene Datei über die Zwischenablage an die aktuelle Zielanwendung.

Eine praktische Anwendung ist das Anfügen einer Dateianlage an ein geöffnetes E-Mailfenster.

Beispiel:

{#PASTEFILE D:\daten\Prospekt.pdf}

Wenn die Datei nicht korrekt als Dateianlage angefügt wird, geben Sie dem Betriebssystem mehr Zeit zur Verarbeitung der Zwischenablage mittels {#SLEEP …} Makrofunktion.

Wenn Sie eine Datei nicht als Dateianlage anfügen, sondern deren Inhalt in eine E-Mail einfügen möchten, schauen Sie sich bitte das {EMBEDFILE …} Makro an.

Hinweisfenster

{#MSGBOX -HEAD Fenstertitel -TEXT Hinweistext -YES Autotext -NO Autotext -CANCEL Autotext -DEFAULTNO} zeigt ein Hinweisfenster.

Parameter
  • -HEAD definiert den Titel des Hinweisfensters.
  • -TEXT beinhaltet den Hinweistext.
  • -YES Autotext verzweigt zu dem Textbaustein mit dem angegebenen Autotext, wenn im Hinweisfenster die "Ja" Schaltfläche betätigt wird.
  • -NO Autotext verzweigt zu dem Textbaustein mit dem angegebenen Autotext, wenn im Hinweisfenster die "Nein" Schaltfläche betätigt wird.
  • -CANCEL Autotext verzweigt zu dem Textbaustein mit dem hier angegebenen Autotext, wenn im Hinweisfenster die "Abbrechen" Schaltfläche betätigt wird.
  • -DEFAULTNO setzt den Eingabefokus auf die "Nein" Schaltfläche.
Beispiel

{#MSGBOX -HEAD Hinweisdialog -TEXT Ich bin ein Hinweistext -YES ##jaklick -NO##neinklick -DEFAULTNO}

Das Beispiel zeigt ein Hinweisfenster, dass bei Klick auf "Ja" den Inhalt des Textbausteins mit dem Autotext ##jaklick ausgibt. Bei Klick auf "Nein", fügt es den Inhalt des Textbausteins mit dem Autotext ##neinklick ein.

Hinweismeldung

{#BALLOON} zeigt einen Hinweis beim PhraseExpress Startleistensymbol an.

Parameter
  • -TITLE definiert den Titel der Sprechblase.
  • -TEXT beinhaltet den Sprechblaseninhalt.
  • -ONCLICK beinhaltet Text, bzw. Makrofunktionen, die beim Klick auf die Sprechblase ausgeführt werden.
Beispiel:

{#BALLOON -TITLE Überschrift -TEXT Sprechblasentext -ONCLICK Ausgabe}

ASCII Zeichen

{#ASC Zahlenwert} fügt das Zeichen entsprechend des dreistelligen Zeichencodes ein.

Dies entspricht der Eingabe eines Sonderzeichens mittels ALT-Taste und Eingabe des dreistelligen Zahlencodes auf dem Nummernblock der Tastatur. 

Für das Copyright-Zeichen © verwenden Sie z.B. das Makro {#ASC 169}.

Die Windowsanwendung "Charmap" zeigt eine Übersicht aller Sonderzeichen inklusive Zahlencodes.

Zufallszahl

{#RND Maximalwert} gibt eine Zufallszahl zwischen 0 und Maximalwert aus.

Beispiel:

Rainer Zufall's Lieblingszahl ist {#RND 100}.

Die Ausgabe wäre dann beispielsweise:

Rainer Zufall's Lieblingszahl ist 23.

Cursor platzieren

{#CURSOR} setzt die Position des Cursors nach Ausführen des Textbaustein an eine gewünschte Position.

Beispiel:

Der Cursor steht hier: {#CURSOR} und nicht am Ende des Textes.

Dieses Makro funktioniert nur für unformatierte Textbausteine, die mittels Taste-für-Taste(!) eingefügt werden. Die Position kann abweichen, wenn sich andere Makrofunktionen vor dem {#CURSOR} Makro befinden, weil dann je nach zusätzlicher Texteinfügung durch andere Makrofunktionen der Offset vom Textbaustein-Beginn verfälscht wird.

Automatisierung

Mouse Recorder Automatisation

{#MOUSERECORDER Name} spielt eine Mouse Recorder Automatisation ab.

Die Automatisationsdaten sind im Makro, also in der Textbausteindatei gespeichert.

Die Aufnahme wird durch Doppelklick auf das Makro in Mouse Recorder bearbeitet.

Die Wiedergabe und Bearbeitung erfordert ein installiertes Mouse Recorder.

E-Mail erstellen

{#MAIL -TO Empfänger -CC cc-Empfänger -BCC bcc-Empfänger -SUBJECT Betreff -ATTACH Dateipfad(e) -BODY E-Mailinhalt} erstellt eine neue E-Mail mit Ihrem Standard-E-Mailprogramm und füllt die Felder entsprechend Ihrer Angaben aus.

Beispiel:

{#MAIL -TO carmen.baer@kaese.de -SUBJECT Neuigkeiten -BODY {#INSERT ##text}}

Wenn der Textbaustein mit dem Autotext ##text folgenden Inhalte hat:

Hallo Carmen,

schau mal in Deinen Briefkasten!

Gruss,
Bernhard Diener

Das Makro generiert folgende E-Mail:

Email

Das Outlook Add-In "Textbausteinverwaltung für Outlook" bietet erweiterte Möglichkeiten der automatisierten E-Mailbeantwortung.

Bei Problemen mit dem automatisierten Erstellen von E-Mails testen Sie die verschiedenen E-Mail-Sendemethoden für das {#MAIL …} Makro in den Einstellungen.

Trennen Sie mehrere Dateianlagen mit einem Vertikalstrich. Beispiel: -ATTACH C:\date1.txt|C:\datei2.txt

Setzen Sie Dateipfade mit Leerzeichen in Anführungsstriche.

Bei Verwendung von Lotus Notes müssen Sie die MAPI Unterstützung in Lotus Notes aktivieren, die standardmäßig deaktiviert ist.

Trennen Sie mehrere E-Mail-Empfänger mit Komma. Beispiel: alf@meyer.de,kurt@ibm.de

Internetseite aufrufen

{#URL Internetseite} öffnet die angegebene Internetseite im Browser.

Beispiel:

{#URL http://www.phraseexpress.com}

Explorer öffnen

{#OPENFOLDER "c:\verzeichnis"} öffnet den angegebenen Dateiordner im Windows Explorer:

Beispiel:

{#OPENFOLDER "C:\Windows"}

Dieses Beispiel öffnet den Windows Systemordner.

Um ein Dateiverzeichnis im Explorer zu markieren, statt zu öffnen, fügen Sie den Parameter -SELECT hinzu.

Anwendung starten

{#RUN -FILE "Programmdatei" -PARAMS "Parameter" -WORKDIR "Arbeitsverzeichnispfad"} startet das angegebene Programm, optional mit Parametern und der Angabe eines Arbeitsverzeichnisses.

Beispiel:

{#RUN -FILE "notepad.exe"}

Wenn die gewünschte Anwendung nicht in Windows registriert ist, geben Sie den vollständigen Dateipfad zur Programmdatei an.

Wenn Sie im Anschluss an das Makro weitere Texteingaben oder Automatisierungen in der gestarteten Anwendung durchführen möchten, müssen Sie direkt nach dem Makro {#RUN …} den Fokus explizit in die neu gestartete Anwendung setzen. Andernfalls werden weitere Schritte in der Anwendung fortgeführt, aus der der Textbaustein aufgerufen wurde.

Datei öffnen

{#OPEN Datei} öffnet die angegebene Datei mit der Anwendung, die hierfür zugeordnet ist.

Beispiel:

{#OPEN d:\daten\beispiel.txt}

Fokuswechsel

{#FOCUS Fenstername} wechselt zu der angegebenen aktiven Windowsanwendung, basierend auf dem Fensternamen (z.B. "Calculator").

Beispiel:

{#FOCUS Calculator}

Dieser Befehl wechselt den Fokus zum Taschenrechner-Programm (wenn dieses zuvor gestartet wurde).

Der optionale Parameter -WINDOWSTATE definiert die Darstellung des dazugehörigen Programmfensters: maximize, minimize, restore, hide oder show.

Der Fenstertitel kann Platzhalter * enthalten.

Schleifenfunktion

{#LOOP -COUNT x} wiederholt den Inhalt nach 'LOOP' x-mal.

Beispiel:

{#LOOP Beispieltext{#ENTER} -COUNT 3}

Das hier verwendete Beispiel gibt das Wort 'Beispiel' in jeweils einer neuen Zeile dreimal untereinander aus:

Beispieltext

Beispieltext

Beispieltext

Programmierung

Textbaustein einfügen

{#INSERT Autotext …} bettet einen Textbaustein ein, der über seinen Autotext definiert wird.

Sie können aber nicht nur Textbausteine in einen anderen Textbaustein einfügen, sondern sogar einen Textbausteinordner.

In diesem Fall kennt PhraseExpress den einzufügenden Textbaustein im Ordner noch nicht und das gewünschte Verhalten kann im Makroeingabedialog definiert werden:

  • Der gewünschte Textbaustein wird jeweils aus einem Auswahlmenü beim Cursor manuell ausgewählt ("multiple choice"-Auswahl).
  • PhraseExpress wählt jeweils einen zufälligen Textbaustein des Ordners. Damit können Sie Textbaustein zufallsgesteuert variieren.
  • Sie definieren den "x.ten" Textbaustein des Ordners mittels Parameter -ITEM aus. Das ist zum Beispiel bei Verwendung des Zwischenablagespeichers praktisch.
Anwendungsbeispiele:
  • Eine Fußzeile oder E-Mail-Signatur wird von mehreren Textbausteinen gemeinsam genutzt.
  • Einzelne Vertragsabschnitte oder beliebige Texte werden in verschiedenen Textbausteinen wiederverwendet.

Setzen Sie hierzu die Makrofunktion {#INSERT Autotext} an der Stelle eines Textbausteins ein, an der die andere Phrase eingefügt werden soll. Diese wird stets über Ihren Autotext identifiziert.

Sie haben z.B. einen Textbaustein:

Guten Tag,

vielen Dank für Ihr Angebotsschreiben. Wir werden uns in Kürze bei Ihnen melden.

{#INSERT ##signatur}

Am Ende des Textbausteins befindet sich die Makrofunktion zum Aufruf einer weiteren Phrase mit dem Autotext ##signatur und folgendem Textinhalt:

Freundliche Grüße,
Claire-Ann Lage

Der Textbaustein wird dann beim Einfügen wie folgt zusammengesetzt:

Guten Tag,

vielen Dank für Ihr Angebotsschreiben. Wir werden uns in Kürze bei Ihnen melden.

Freundliche Grüße,
Claire-Ann Lage

Mit optionalem Parameter -INHERIT (engl. für 'vererben') merkt sich PhraseExpress Ihre Textbausteinwahl aus dem Auswahlmenü, falls Sie das {#INSERT …} Makro mit dem gleichen Autotext mehrfach in einem Textbaustein verwenden.

Ziehen Sie Textbausteine aus der Baumansicht direkt an die aktuelle Cursorposition im Phraseninhaltseingabefeld des gerade bearbeiteten Textbausteins, um eine Verkettung mittels {#INSERT …} Makrofunktion zu erstellen. Falls der einzufügende Textbaustein noch keinen Autotext aufweist, definiert PhraseExpress basierend auf der Beschreibung und zwei vorangestellten '##' Zeichen und einer Zufallszahl automatisch einen Autotext.

Vorteile von verschachtelten Textbausteinen:
  • Änderungen an der Fußzeile sind nicht mehr in jedem Textbaustein notwendig, die die Fußzeile beinhalten, sondern lediglich in der Fußzeilen-Phrase selbst.
  • Sie sparen Speicherplatz für die Textbausteindatei, weil in allen Phrasen lediglich der Makrobefehl mit dem Verweis auf die Fußzeile statt des kompletten Fußzeilentexts gespeichert wird. Dies gilt insbesondere für Bilder, z.B. einem in mehreren Textbausteinen vorkommenden Firmenlogo.

Wir empfehlen Ihnen ausdrücklich, sich mit verschachtelten Phrasen zu beschäftigen. Konsequent angewendet, sparen Sie Ihnen viel Zeit und ermöglichen eine elegante Verwaltung Ihrer Textbausteine.

Vergleich

{#CHECK } prüft den mit Parameter -TEXT übergebenen Wert mit einem per -CASE definierten Vergleichsoperator und Vergleichswert. Bei Erfüllen der Vergleichsbedingung wird ein per -OUTPUT definierter Inhalt ausgegeben.

Mehrere Vergleiche können durch | (Hochstrich) voneinander per "Oder"-Verknüpfung innerhalb einer {#CHECK } Makrofunktion definiert werden.

Beispiel:

{#CHECK -TEXT ZuVergleichenderText -CASE == Vergleichsstext1 -OUTPUT Ausgabe1|.= Vergleichstext2 -OUTPUT Ausgabe2 -ELSE AusgabeWEnnNichtsZutrifft}

Vergleichsoperatoren
Operator Beschreibung
== exakt gleich
.= fängt an mit
=. endet auf
=.= beinhaltet
!= != ungleich
!.= fängt nicht an mit
!=. endet nicht auf
!=.= beinhaltet nicht
-> Text länger als
<- Text kürzer als
> Zahl größer als
< Zahl kleiner als
>= Zahl größer als
<= Zahl kleiner als
Anwendungsbeispiel:

{#CHECK -TEXT {#INPUT -HEAD Vorname? -SINGLE} -CASE == Hans -OUTPUT Das ist Hans -ELSE Das ist nicht Hans}

Das hier verwendete Beispiel fragt nach der Eingabe eines Namens und gibt ausschließlich bei Eingabe von "Hans" folgendes aus:

Das ist Hans.

Das Makro vergleicht auch Zahlenwerte numerisch und kann statt eines statischen Texte auch weitere Makrobefehle ausführen, wie zum Beispiel den Befehl {#INSERT …}:

{#CHECK -TEXT {#INPUT Zahl?} > 5 -OUTPUT Die Zahl ist größer als 5. -ELSE {#INSERT ##anderephrase}}

Das Beispiel fragt nach der Eingabe einer Zahl und gibt bei einer Zahl größer als 5 aus:

Die Zahl ist größer als 5.

Bei Eingabe einer Zahl kleiner 5 gibt PhraseExpress per {#INSERT …} Befehl den Textbaustein mit dem Autotext ##anderephrase aus.

Verschachtelte Makrofunktionen werden üblicherweise von innen nach außen verarbeitet. Ab PhraseExpress v12 werden die Verzweigungen des {#CHECK } Makro jedoch erst nach der "Wenn"-Entscheidung interpretiert.

Bei Ausgabe von Formularmakrofunktionen lagern Sie diese in einen Textbaustein aus und verweisen per {#INSERT } darauf.

{#CHECK } ersetzt und erweitert die bisherige {#COND } Makrofunktion.

Berechnung

{#CALC Berechnung} gibt das Ergebnis des unter Berechnung angegebenen mathematischen Ausdrucks aus.

Parameter
  • -DIGITS ergänzt das Rechenergebnis um eine definierbare Anzahl an führenden Nullen.
  • -ROUND rundet das Ergebnis auf eine bestimmte Anzahl an Nachkommstellen.
  • -DECIMALMARK definiert das Dezimaltrennzeichen
  • -THOUSANDS das Tausendertrennzeichen.

Bei Angabe des Werts "auto" für die Parameter -ROUND, -DECIMALMARK oder -THOUSANDS passt sich die Ausgabe an das Eingabeformat an.

Beispiel:

{#CALC (sin(90)^2)*2 -ROUND 2}

Das Makro gibt das Rechenergebnis in der Zahlenformatierung gemäß der Windows-Einstellungen auf 2 Stellen gerundet aus.

Unterstützte Funktionen und Operatoren:

ln, sin, cos, tan, ctg, abs, sqrt, !, ^, /, *, -, +.

Interessant wird dieser Befehl durch Kombination/Verschachtelung mit anderen Makros:

{#CALC {#INPUT -HEAD Zahl?}*45}

Da Makrofunktionen mit nur wenigen Ausnahmen von innen nach außen abgearbeitet werden, wird in diesem Beispiel zunächst per {#INPUT …} Makro nach Eingabe einer Zahl gefragt. Anschließend wird dieser eingegebene Wert mit 45 multipliziert und dann ausgegeben. Statt der Zahl 45 könnten Sie auch ein {#INSERT …} verwenden, das auf einen Textbaustein verweist, der wiederum eine Zahl beinhaltet:

{#CALC {#INPUT -HEAD Zahl?}*{#INSERT Beispielphrase}}

Wenn Sie hier z.B. 5 eingeben und der Textbaustein mit dem Autotext "Beispielphrase" die Zahl 12 beinhaltet, dann würde die Zahl 60 ausgegeben werden.

Das Makro unterstützt auch hexadezimale Werte, die mit einem $-Zeichen identifiziert werden:

{#CALC $AB + $1F}

Bei inkonsistenter Eingabeformatierung (zum Beispiel Operanden mit verschiedenen Dezimaltrennzeichen) gibt die Makrofunktion eine Fehlermeldung aus.

Textbaustein erstellen/ändern

{#SETPHRASE -DESCRIPTION Beschreibung -CONTENT Textbausteininhalt -AUTOTEXT PhrasenAutotext -FOLDER OrdnerAutotext} generiert einen Textbaustein mit der definierten Beschreibung, Inhalt und Autotext in dem Textbausteinordner, der unter -FOLDER angegeben ist.

Nach Ausführen eines Textbausteins mit dieser Makrofunktion wird stets die Textbausteindatei gespeichert, was zu einer kleinen Verzögerung führt. Bedenken Sie, dass bei gleichzeitigem Zugriff auf die Textbausteindatei alle Arbeitsplatzinstallationen die Datei mit jeder Änderung aktualisieren/synchronisieren müssen. Daher sollten Sie mit diesem Makro erstellte, bzw. geänderte Textbausteine gegebenenfalls in einer separaten, lokalen(!) Textbausteindatei speichern. Alternativ kann die Verwendung temporärer Variablen sinnvoller sein.

Bei fehlendem Parameter -CONTENT wird der Textbaustein mit dem per -AUTOTEXT definierten Autotext gelöscht!

Wird kein Parameter -FOLDER angegeben oder, wenn der hier angegebene Ordnerautotext nicht existiert, wird der Textbaustein in der Hauptebene der Textbaustein-Hierarchie erstellt.

Temporäre Variablen

Temporäre Variablen speichern Text und/oder Zahlenwerte zur Wiederverwendung im gleichen oder anderen Textbausteinen.

Die Variablen werden im Hauptspeicher abgelegt und bleiben nur während der Programmlaufzeit erhalten.

Sie ermöglichen aufwendigere Makroprogrammierungen und lösen im Gegensatz zu {#SETPHRASE …} keinen Schreibvorgang der Textbausteindatei aus.

Temporäre Variable erstellen

Videoanleitung

{#SETTEMP -NAME Name -CONTENT Inhalt} definiert eine temporäre Variable mit dem angegebenen Namen und Inhalt. Es können beliebig viele temporäre Variablen erstellt werden.

Wenn der Parameter -CONTENT leer ist, wird die Variable nicht gelöscht, sondern sie hat einen leeren Inhalt, damit sie noch für Vergleichsoperationen zum Beispiel per {#CHECK …} genutzt werden kann.

Nach Beenden von PhraseExpress werden alle temporären Variablen gelöscht!

Temporäre Variable ausgeben

{#GETTEMP -NAME Name} gibt den Inhalt der zuvor, per Makrofunktion {#SETTEMP …} definierten Variablen mit dem definierten Namen aus.

Verzögerung

{#SLEEP Millisekunden} wartet die angegebene Zahl in Millisekunden.

Beispiel:
Hallo {#SLEEP 3000} Welt!

Das Beispiel gibt "Hallo" aus, wartet 3 Sekunden und schließt dann mit "Welt!" ab.

Verzögerungen sind nützlich, falls eine Anwendung längere Zeit für die Verarbeitung einer Tasteneingabe benötigt. Auch bei Operationen in Verbindung mit der Windows Zwischenablage ist eine kleine Verzögerung von einigen Sekunden erforderlich, weil Windows oft etwas länger für Zwischenablageoperationen benötigt.

Stringoperationen

Stringoperationen dienen zur Formatierung, Zuschneidung und Bearbeitung von Texten.

Makrofunktion Beschreibung
{#LENGTH Text} Gibt die Länge des angegebenen Texts als ganzzahligen Wert zurück. Dieses Makro ist nützlich in Zusammenhang mit den anderen Makrofunktionen {#SUBSTR …} und {#CALC …}.
{#LOWERCASE Text} Wandelt den Text in Kleinbuchstaben um.
{#UPPERCASE Text} Wandelt den Text in GROSSBUCHTSTABEN um.
{#LOWERCASEFIRST Text} Wandelt den ersten Buchstaben des Texts in Kleinbuchstaben um.
{#UPPERCASEFIRST Text} Wandelt den ersten Buchstaben des Texts in GROSSBUCHTSTABEN um.
{#LOWERCASEWORD Text} Wandelt den ersten Buchstaben jedes Wortes eines Texts in Kleinbuchstaben um.
{#UPPERCASEWORD Text} Wandelt den ersten Buchstaben jedes Wortes eines Texts in GROSSBUCHTSTABEN um.
{#TRIM Text} Entfernt Leerzeichen vor und hinter dem angegebenen Text.
{#TRIMLEFT Text} Entfernt Leerzeichen vor dem angegebenen Text.
{#TRIMRIGHT Text} Entfernt Leerzeichen hinter dem angegebenen Text.
{#POS Text -SUBSTR Teiltext} Gibt die Position als ganzzahligen Wert zurück, ab der der unter -SUBSTR angegebene Teiltext in Text vorkommt.
{#REPLACE Text -OLDTEXT AlterText -NEWTEXT NeuerText} Ersetzt im Text den unter -OLDTEXT angegebenen String mit dem unter -NEWTEXT angegebenen String.
{#SUBSTR Text -FROM x -COUNT y} Extrahiert aus dem Text einen Teilstring ab Zeichenposition -FROM mit der Länge -COUNT.
Anwendungsbeispiel:

Sehr geehrter Herr {#UPPERCASEFIRST {#TRIM {#INPUT -HEAD Nachname? -DEF {#INSERTCLIPBOARD} -SINGLE}}

Das verschachtelte Makrobeispiel wird von innen nach außen verarbeitet: Zunächst erwartet die manuelle Texteingabe mittels {#INPUT …} Makro die Eingabe eines Nachnamens für eine Anredefloskel. Als Vorgabewert wird mit {#INSERTCLIPBOARD …} der aktuelle Inhalt der Zwischenablage vorgeschlagen. Nach der manuellen Texteingabe werden überschüssige Leerzeichen mittels {#TRIM …} entfernt und abschließend der erste Buchstabe der Texteingabe mit dem Makro {#UPPERCASEFIRST} groß geschrieben.

Zwischenablage

{#CLIPBOARD -COPY} kopiert den etwaig aktuell markierten Text in die Windows Zwischenablage.

{#CLIPBOARD -PASTE} fügt den Inhalt der Windows Zwischenablage an die aktuelle Position ein.

{#CLIPBOARD -CUT} schneidet den aktuell markierten Text aus und speichert ihn in die Windows Zwischenablage.

Zwischenablage ausgeben

{#INSERTCLIPBOARD} gibt den Zwischenablageinhalt zeichenweise als Text aus, statt über die weiter oben beschriebene Systemfunktion (Betätigen von STRG-v). Diese Funktion eignet sich auch, um z.B. den aktuellen Zwischenablageinhalt als Vorgabewert für ein Eingabefeld zu verwenden:

{#INPUT -HEAD Eingabe? -DEF {#INSERTCLIPBOARD}}

In diesem Beispiel öffnet sich das Eingabefenster für eine manuelle Texteingabe mit dem Inhalt der Zwischenablage als Vorgabewert.

Zwischenablage füllen

{#SETCLIPBOARD Inhalt} füllt die Zwischenablage mit dem im Makro definierten Inhalt.

Beispiel:

{#SETCLIPBOARD {#INPUT Text?}}

In diesem Beispiel öffnet sich das Eingabefenster für eine manuelle Texteingabe. Die Windows Zwischenablage wird dann mit dem dort eingegebenen Text gefüllt.

Ab PhraseExpress v10 sind temporären Variablen zum Speichern von der Eingaben besser geeignet.

Tastaturlayout

Sprachschema setzen

{#SETLAYOUT Sprach-ID} wechselt die Sprache des 'Tastaturschemas'.

Beispiele:

{#SETLAYOUT 00000407}Dieser Text wird mit deutscher Tastatureinstellung ausgegeben.

{#SETLAYOUT 00000409}Ab hier wird das US-amerikanische Tastaturlayout verwendet.

{#SETLAYOUT 00000407}Abschließend wird zum deutschen Layout zurückgestellt.

Die Einstellung wird vom Betriebssystem dauerhaft übernommen, bis Sie es mit einem weiteren {#SETLAYOUT …} Makro wieder neu definieren.

Sprachschema ermitteln

{#GETLAYOUT …} ermittelt das aktuelle eingestellte Tastaturschema, um es z.B. mittels {#SETTEMP …} in eine temporäre Variable zwischen zu speichern:

{#SETTEMP -NAME Tastaturschema -CONTENT {#GETLAYOUT}}

Nach Abschluss verschiedener Änderungen der Sprachschema-Einstellungen wird das ursprüngliche Tastaturschema mit folgendem Makro aus der temporären Variablen wiederhergestellt:

{#SETLAYOUT {#GETTEMP Tastaturschema}}

Eine Liste der Sprach-IDs ('language identifiers') finden Sie auf der Microsoft MSDN Internetseite.

Inhaltsverzeichnis