von gunther.oo » Mo, 10.07.2006 18:17
Hallo Thomas!
Danke für die schnelle Reaktion!
Wie mache ich's bis jetzt? Nur mit dem Makro-Recorder...
Hab noch nie Makros selber geschrieben, höchstens mal angepasst.
Ich habe diverse Dokumentaionen zu Makro-Code und OpenOffice Basic im Netz gefunden. Da ich aber nicht weiß, wie etwa passende Funktionen heißen, finde ich keine Hilfe.
Insofern wäre mir genau so wohl am besten geholfen, wie Du es bereits versucht hast:
Ich brauche ein paar Tips, womit es gehen könnte. Wie heißen z. B. die String-Funktionen oder -methoden, die ich benutzen könnte? Ich suche mir die Syntax dann schon zusammen.
Konkret habe ich folgendes vor: In meinem Text tauchen sehr viele verschiedene Formatierungen auf, die ich gern per Tastenkürzel zuweisen möchte. Als einfaches Beispiel habe ich etwa Makros für Indizes oben und unten per Makrorecorder erstellt:
Nach dem Schema: Zeichen nach links markieren - toggle Format tiefgestellt (an) - Schritt nach rechts - toggle Format tiefgestellt (aus).
Funktioniert prima, der Makro liegt direkt auf einer Funktionstaste; ich kann also super flüssig schreiben, ohne irgendwelche Schaltflächen oder Menüs anklicken zu müssen. Davon hätte ich jetzt gern mehr, muss aber nicht nur einzelne Zeichen, sondern zusammenhängende Zeichenfolgen auswählen.
Hier mal der Makro für einen unteren Index:
Code: Alles auswählen
sub IndexUnten
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Count"
args1(0).Value = 1
args1(1).Name = "Select"
args1(1).Value = true
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SubScript", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Count"
args3(0).Value = 1
args3(1).Name = "Select"
args3(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args3())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SubScript", "", 0, Array())
end sub
Vielen Dank für weitere Tips!
Gruß, Gunther
Hallo Thomas!
Danke für die schnelle Reaktion!
Wie mache ich's bis jetzt? Nur mit dem Makro-Recorder... :oops:
Hab noch nie Makros selber geschrieben, höchstens mal angepasst.
Ich habe diverse Dokumentaionen zu Makro-Code und OpenOffice Basic im Netz gefunden. Da ich aber nicht weiß, wie etwa passende Funktionen heißen, finde ich keine Hilfe.
Insofern wäre mir genau so wohl am besten geholfen, wie Du es bereits versucht hast:
Ich brauche ein paar Tips, womit es gehen könnte. Wie heißen z. B. die String-Funktionen oder -methoden, die ich benutzen könnte? Ich suche mir die Syntax dann schon zusammen.
Konkret habe ich folgendes vor: In meinem Text tauchen sehr viele verschiedene Formatierungen auf, die ich gern per Tastenkürzel zuweisen möchte. Als einfaches Beispiel habe ich etwa Makros für Indizes oben und unten per Makrorecorder erstellt:
Nach dem Schema: Zeichen nach links markieren - toggle Format tiefgestellt (an) - Schritt nach rechts - toggle Format tiefgestellt (aus).
Funktioniert prima, der Makro liegt direkt auf einer Funktionstaste; ich kann also super flüssig schreiben, ohne irgendwelche Schaltflächen oder Menüs anklicken zu müssen. Davon hätte ich jetzt gern mehr, muss aber nicht nur einzelne Zeichen, sondern zusammenhängende Zeichenfolgen auswählen.
Hier mal der Makro für einen unteren Index:
[code]
sub IndexUnten
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Count"
args1(0).Value = 1
args1(1).Name = "Select"
args1(1).Value = true
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SubScript", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Count"
args3(0).Value = 1
args3(1).Name = "Select"
args3(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args3())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SubScript", "", 0, Array())
end sub
[/code]
Vielen Dank für weitere Tips!
Gruß, Gunther