Seite 1 von 1
Startschwierigkeiten mit Makro
Verfasst: Di, 18.10.2011 16:25
von neandr
Meine Absicht von M$office zu OO zu wechseln und mit Makros zu arbeiten schlägt leider fehl.
OO hat -- wie M$ -- eine Aufzeichenfunktion, prima, nur leider ist der entsprechende Menüpunkt nicht aktiv.
Wie aktiviere ich den Aufzeichnungsmodus .. leider finde ich in den Help nix dazu.
Günter
Re: Startschwierigkeiten mit Makro
Verfasst: Di, 18.10.2011 18:16
von komma4
Welche OOo-Version?
Welches Betriebssystem?
Welches OOo-Modul?
Re: Startschwierigkeiten mit Makro
Verfasst: Di, 18.10.2011 19:17
von neandr
Blame on me
LibreOffice 3.3.4
OOO330m19 (Build:401)
tag libreoffice-3.3.3.1, Ubuntu package 1:3.3.4-0ubuntu1
Auf Ubuntu 11.04
Ich versuche ein Textdokument zu "automatisieren".
Das Dokument hat eine Tabelle, in eine Zelle davon solle eine Verwendungsnummer eingehalten, die dann mit den Doku-Namen bestimmen soll. D.h. lesen des Feldes, bilden des zu Doku-Namen und abspeichern soll mittels einer Schaltfläche ablaufen.
Dazu brauche ich wohl ein Makro ..
Danke
Günter
Re: Startschwierigkeiten mit Makro
Verfasst: Di, 18.10.2011 21:02
von komma4
neandr hat geschrieben:Dazu brauche ich wohl ein Makro ..
So sieht es aus...
Mit Aufzeichnen wirst Du aber nicht zum Ziel kommen, wie ich das sehe.
Einschalten kannst Du den Menupunt über
Extras>Optionen...>LibreOffice>Allgemein>Aktiviere experimentelle (instabile) Funktionen
Name oder Index der Tabelle?
Welche Zelle?
Welches Vorgabeverzeichnis?
Willst Du nicht vielleicht lieber eine
Datei>Eigenschaften...>Benutzerdefinierte Eigenschaften verwenden, und diese dann an irgendeine Stelle des Dokuments wieder verwenden? [Programmierung ist einfacher

]
Re: Startschwierigkeiten mit Makro
Verfasst: Di, 18.10.2011 21:48
von F3K Total
Hallo,
angenommen, Deine Tabelle hat den Namen "Tabelle1", die Verwendungsnummer hast Du in die Zelle "B2" der Tabelle eingegeben, dann speichert dieses Makro die Datei im Ordner des Ausgangsdokumentes.
Code: Alles auswählen
Sub save_as_Cellcontent
dim args()
oUrl=thiscomponent.url
oName=thiscomponent.title
oName=replace(oName," ","%20")
oFolder_Url=replace(oUrl,oName,"")
otable=thiscomponent.TextTables.getbyName("Tabelle1")
oCell=otable.getcellbyname("B2")
oDocumentName=oCell.String
ostoreUrl=oFolder_Url+oDocumentName+".odt"
thisComponent.storetourl(ostoreUrl,args())
End Sub
siehe auch Anhang
Gruß R
Re: Startschwierigkeiten mit Makro
Verfasst: Di, 18.10.2011 22:43
von neandr
@komma4 » Heute 20:02
-- Makro kann ich jetzt aufzeichnen .. zumindest ist der Menüpunkt aktiv, prima
-- Der Vorschlag mit den 'Benutzerdefinierten Eigenschaften' klingt logisch, ist aber vom Arbeitsfluß nicht so elegant.
@F3K Total » vor 50 Minuten
-- Prima, das werde ich mal probieren, wohl genau das was ich brauche. Danke
Re: Startschwierigkeiten mit Makro
Verfasst: Mi, 19.10.2011 10:00
von neandr
neandr hat geschrieben:
@F3K Total
-- Prima, das werde ich mal probieren, wohl genau das was ich brauche. Danke
Also das läuft .. nach etwas Gezacke auch innerhalb meines Dokumentes.
Ich hatte mir die Verwendung der Makros einfacher vorgestellt .. vielleicht nur Umgewöhnung. Aber gibt's gute Makro Übersichten (Liste der Befehle etc, Tutorials....) Alles was ich bisher gefunden habe ist eher bescheiden, oder macht nicht den Eindruck einer gut strukturierten Übersicht. Im Help scheint nix zu sein!?
Woran ich im Moment hänge:
Auf der Basis deines Beispiels möchte ich die angefragte Tabellenzelle (bei dir Tab1/Zelle B3) inkrementieren nach dem Speichervorgang. Das geht doch?
Vielen dank für deine Hilfe
Günter
Re: Startschwierigkeiten mit Makro
Verfasst: Mi, 19.10.2011 12:29
von Stephan
Liste der Befehle
eine Liste aller Makro-Befehle findet sich in der OOo-Hilfe
Methoden, Eigenschaften, Objekte ... des API sind jedoch, genausowenig wie bei VBA, keine Befehle.
Für StarBasic findet sich eine entsprechende Übersicht unter:
http://api.openoffice.org/docs/common/r ... le-ix.html
Alles was ich bisher gefunden habe ist eher bescheiden, oder macht nicht den Eindruck einer gut strukturierten Übersicht.
Schwer zu beantworten, ohne zu wissen was Du bisher gefunden hast und worauf sich diese Aussagen beziehen.
Eine von mir erstellte Übersicht zu Hilfequellen befindet sich in jedem Fall gut sichtbar hier:
viewtopic.php?f=18&t=1553
Das dort verlinkte Material ist hierbei weder vollständig, noch alles was ich persönlich kenne, jedoch ist es so ausgewählt das es, meiner Meinung nach, genügen sollte um selbst einen so weitgehenden Einblick zu gewinnen das man anschließend in der Lage ist sich weitere Materialien selbst zu erschließen.
Gruß
Stephan
Re: Startschwierigkeiten mit Makro
Verfasst: Mi, 19.10.2011 12:56
von neandr
Danke Stefan,
deine Übersicht steht ja auch als erster Beitrag in diesem Forum ... und wenn man (hier ich

) das auch Ernst nimmt, hat man ja schon eine gute Zusammenstellung/Übersicht. Sollte vielleicht in der Überschrift mit
MUST READ gezeichnet werden!
Günter
Re: Startschwierigkeiten mit Makro
Verfasst: Mi, 19.10.2011 14:01
von neandr
@Stephan
Ja da findet sich so manches, nicht alle Links in den Dokumenten funktionieren, aber das ist ja nicht deine Sache.
In dem Dokument
http://www.pitonyak.org/OOME_3_0.odt in Kapitel 14.9.4 "Tables contain cells" bin ich dann fündig geworden einen abgefragten Zellinhalt und geänderten Wert zurück zu schreiben mit:
. Sieht ganz einfach aus, ist auch logisch, aber leider habe ich nirgends *strukturiert* die Notierung gefunden.
Bin ich da zu blind? Oder gibt es doch noch eine bessere Übersicht?
Also das Beispiel von 'F3K Total' habe ich jetzt erweitert zu:
Code: Alles auswählen
Sub speichern_mitCellContent
dim args()
oUrl=thiscomponent.url
oName=thiscomponent.title
oName=replace(oName," ","%20")
oFolder_Url=replace(oUrl,oName,"")
REM *** Bilde Dokumentennamen aus zwei Zellinhalten ***
otable=thiscomponent.TextTables.getbyName("Tabelle1")
oCell1=otable.getcellbyname("B3")
oCell2=otable.getcellbyname("C3")
oDocumentName = oCell1.String & oCell2.String
ostoreUrl=oFolder_Url+oDocumentName+".odt"
REM *** Inkrementiere 2.Zellinhalt ***
nValue = val(oCell2.String) + 1
otable.getCellByName("C3").setValue(nValue)
REM *** Zeige Ergebnis ***
msgbox("speichern: " + ostoreUrl + " Neuer Wert: " + (nValue))
REM *** Speichern ***
thisComponent.storetourl(ostoreUrl,args())
End Sub
Vielen Dank für eure Hilfe.
Re: Startschwierigkeiten mit Makro
Verfasst: Mi, 19.10.2011 20:37
von Stephan
Sollte vielleicht in der Überschrift mit MUST READ gezeichnet werden!
Aus meiner Sicht nicht denn ich halte die Teilnehmer dieses Forums hier für fähig eigenverantwortlich zu entscheiden was sie lesen sollten - Sorry, nur alles doppelt als wichtig zu kennzeichnen sorgt nur dafür das dann wieder alles gleich unwichtig erscheint wenn man es nicht ständig übertrieben betont.
Gruß
Stephan
Re: Startschwierigkeiten mit Makro
Verfasst: Mi, 19.10.2011 20:40
von Stephan
Sieht ganz einfach aus, ist auch logisch, aber leider habe ich nirgends *strukturiert* die Notierung gefunden.
Bin ich da zu blind? Oder gibt es doch noch eine bessere Übersicht?
Ich nannte bereits die IDL-Referenz, diese ist strukturiert und die vollständigste und aktuellste Gesamtübersicht die es gibt:
http://api.openoffice.org/docs/common/r ... le-ix.html
Gruß
Stephan