Seite 1 von 1

Hilfen zu Makros

Verfasst: Di 23. Aug 2011, 11:24
von Philipp
Hallo an alle,

ich bin erst seit kurzem dabei mich in LO einzuarbeiten, grade was die Makros angeht.
Ich habe mir zunächst einmal einiges an Literatur dazu rangeschafft (Andrew Pitonyak hat mir schonmal sehr geholfen und noch ein paar Internetseiten), komme aber trotzdem noch nicht richtig damit zurecht.
Zunächst einmal würde mich interessieren, ob es noch weitere gute Erklärungen im Netz (oder als Bücher) gibt, die einen tiefer in die Materie bringen.

So, und dann hoffe ich mal, das ich auch hier einige sinnvolle Antworten bekommen. Womit ich zum großen Teil noch nicht zurechtkomme ist das ansprechen von Dokumenten, Tabellen im writer und ähnliches.
myTable = createunoservice("com.sun.star.text.TextTable")
:!: Solche Ausdrücke wollen sich bei mir nicht erschließen. :!: Gibt es eine gute Übersicht oder Erklärung, bei der ich verstehe, wann ich welche Ausdrücke einbringen muss?
Werde hauptsächliche mit dem Writer arbeiten, viele Tabellen ansprechen und die Tabellen wohl viel gestalten müssen...alles über Makros.
Habe Makros bereits mit VBA geschrieben, allerdings waren da die Ausdrücke um Tabellen anzusprechen deutlich anders.

Ich denke ich warte erstmal Antworten ab, werde auf jeden Fall dann später noch deutlich spezifischere Fragen stellen.

Re: Hilfen zu Makros

Verfasst: Di 23. Aug 2011, 14:19
von balu
Hallo Philipp,
oder als Bücher
Guckst Du mal dort, galileocomputing.de

Gruß
balu

Re: Hilfen zu Makros

Verfasst: Di 23. Aug 2011, 16:34
von Philipp
Danke schon mal dafür, balu.
Das hatte ich mir schon ein paar mal angeguckt, dachte aber es gibt vielleicht noch aktuellere Versionen.

Habe meine anfänglichen Fragen jetzt auch gelöst, und stoße gleich auf die nächsten.

Wenn ich auf im writer eine Tabelle händisch pflege, bekomme ich im Makro keinerlei Werte zurück.

oTables = createunoservice("com.sun.star.text.TextTables")
oTables = oDoc.getTextTables
oTable = createunoservice("com.sun.star.text.TextTable")
oTable = oTables.getByIndex(0)

x = oTable.GetCellbyPosition(0,0).GetValue

x ist dabei zur Zeit ein String, hatte es allerdings auch schon mit einem int versucht.

Damit versuche ich an eine Zahl zu kommen, die in dieser Zelle steht, aber er gibt mir nur den Wert "0" zurück.
Wie komm ich denn nun am meinen tatsächlichen Wert?
Später soll der Wert übrigends per Textmarke dort eingetragen werden (direkt aus einer DB heraus). Ändert sich dann was am Code, oder kann ich den dann unverändert lassen (sollte er denn dann mal funktionieren)?

Grüße

Re: Hilfen zu Makros

Verfasst: Di 23. Aug 2011, 18:23
von komma4
Auf die erste Tabelle zugreifen:

Code: Alles auswählen

oTables = ThisComponent.getTextTables()
oTable = oTables.getByIndex(0)

' A1: Zeichen(kette)
x = oTable.GetCellbyPosition( 0, 0 ).getString()
'B2: Zahl
x = oTable.GetCellbyPosition( 1,1 ).getValue()
Klappt hier einwandfrei.


Den creatUnoService brauchst Du nur, wenn Du eine neue Tabelle erzeugen und ins Dokument einfügen willst

Re: Hilfen zu Makros

Verfasst: Mi 24. Aug 2011, 08:13
von Philipp
FUnktioniert bei mir jetzt auch, danke dafür.

WIe sieht das ganze aus, wenn anstelle einer ganz normalen Zahl eine Textmarke steht?
Muss man die Textmarke mit einer äußeren Textmarke umschließen, um sie auszulesen oder reicht der Code, so wie er jetzt ist?

Re: Hilfen zu Makros

Verfasst: Mi 24. Aug 2011, 10:13
von komma4
Bitte für neue Fragen demnächst einen neuen Thread (mit aussagekräftigem Titel) aufmachen.

Textmarken sind Dokumenten bezogen, d.h. es ist egal, ob sie im Fliesstext oder in einer Tabelle stehen.

Der folgende Code ändert den Inhalt einer Textmarke

Code: Alles auswählen

oDok = ThisComponent

' Textmarke
oBM = oDok.getBookmarks().getByName( "wr" )

' Inhalt setzen
oBM.getAnchor().String = "Mein neuer Text"
Das hilft Dir weiter?

Re: Hilfen zu Makros

Verfasst: Mi 24. Aug 2011, 10:20
von Philipp
Joah teilweise. Die Textmarken werden über eine DB befüllt, ich brauch also nur den Zugriff auf die TM, aber das hast du mir ja bereits gezeigt.
Würde ich für jede neue Frage einen extra Thread aufmachen, würden hier bald zig Threads rumschwirren ;-)

Aber werds natürlich machen.
Danke für die schnelle und kompetente HIlfe.

Re: Hilfen zu Makros

Verfasst: Mi 24. Aug 2011, 10:24
von komma4
Philipp hat geschrieben:Würde ich für jede neue Frage einen extra Thread aufmachen, würden hier bald zig Threads rumschwirren ;-)
SO viele Fragen wirst Du auch nicht haben, da sich im Laufe der Zeit viel Wissen ergibt.

Und für Suchende ist es halt einfacher einen Thread zu finden, der "Textmarken in Tabellen füllen" lautet, als im vierten Posts eines "Hilfe zu Makros"-Threads eine Antwort darauf zu finden.

Weiterhin viel Erfolg!