Seite 1 von 1
Variablen
Verfasst: Mi, 05.01.2005 17:39
von Lenu
Hallo,
kann man die Werte von Variablen, welche man als Feldbefehle im Dokument erstellt hat, per Makro ändern?
Im Handbuch habe ich was von textfields gefunden, aber die beziehen sich auf OO-Variablen wie 'aktuelle Seitennummer'
Danke und Gruss,
Lenu
Verfasst: Do, 06.01.2005 08:46
von Toxitom
Hey Lenu,
nicht ganz ohne, aber hier ein kurzer Code, wie du ein existierendes Benutzerfeld mit Namen "TestFeld" und dem Inhalt "Hallo" als Text ansprechen und somit auch ändern kannst. Groß- und Kleinschreibung beim Namen beachten!
Code: Alles auswählen
Sub TextFeldansprechen
DIM oMasters as Object
DIM oFeld as object ' das Textfeld
oMasters = ThisComponent.getTextFieldMasters()
oFeld = oMasters.getByName("com.sun.star.text.FieldMaster.User.TestFeld")
msgbox oFeld.name
msgbox oFeld.content
End Sub
bis denn
Thomas
Verfasst: Do, 06.01.2005 09:51
von Lenu
Hallo Thomas,
das klappt ganz wunderbar, mit
kann ich den Inhalt ändern.
Weisst Du jetzt auch noch, wie man die Felder aktualisieren kann? Ich habe versucht den F9-Aufruf als Makro aufzuzeichnen, geht aber nicht.
Vielen Dank,
Lenu
Verfasst: Do, 06.01.2005 14:21
von Toxitom
Hey Lenu,
Weisst Du jetzt auch noch, wie man die Felder aktualisieren kann?
Klar. Aber ich kann ja nicht immer gleich alles verraten
Also füge einfach die folgende Zeile in den Code ein:
Im übrigen funktioniert natürlich auch die Makroaufzeichnung. Die erzeugt Dispatchercode, der wie folgt aussehen sollte:
Code: Alles auswählen
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:UpdateFields", "", 0, Array())
Je nach Version, mit der du arbeitest, ist sich OOo aber nicht ganz sicher und kommentiert die entscheidende Zeile (die letzte) in der Regel mit "REM" aus. Es funktioniert aber trotzdem - also einfach das REM entfernen, fertig.
Gruss
Thomas