[de-users] Makros in OpenOfice 2.02

2006-04-21 Thread Ralf Tempel
Hallo zusammen!
Ich möchte in Texten, um sie für ein Layoutprogramm vorzubereiten,
mehrere Änderungen automatisch durchführen lassen.
Beispielsweise soll aus dem Zeichen % das Wort "Prozent" werden, aus dem
Euro-Zeichen das Wort "Euro", aus "cm" soll "Zentimerter" werden und so
weiter. Um die Änderungen zu kontrollieren, wird zusätzlich die
Schriftfarbe Rot zugewiesen.

Ich habe rund 80 solcher Änderungen durchgeführt und als Makro
aufgezeichnet. Als ich das Makro nun erstmals ausführen wollte, erhielt
ich die Meldung "Basic Syntaxfehler. Programm ist zu groß". Was mache
ich nun? Wie viele Einträge dürfen da rein? Gibt es irgendwo eine
ausführliche deutsche Anleitung der Makro-Geschichte?

Beste Grüße und ein schönes Wochenende
Ralf

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [de-users] Makros in OpenOfice 2.02

2006-04-21 Thread Jörg Schmidt
Hallo,

Ralf Tempel schrieb:
> Ich möchte in Texten, um sie für ein Layoutprogramm vorzubereiten,
> mehrere Änderungen automatisch durchführen lassen.
> Beispielsweise soll aus dem Zeichen % das Wort "Prozent"
> werden, aus dem
> Euro-Zeichen das Wort "Euro", aus "cm" soll "Zentimerter"
> werden und so
> weiter. [...]

*muß* es dafür ein Makro sein?
Warum geht beispielsweise Autokorrektur oder suchen-ersetzen nicht?

> Ich habe rund 80 solcher Änderungen durchgeführt und als Makro
> aufgezeichnet.

Ja, das ist die Frage - war das Makro denn gespeichert, denn Aufzeichnen
heißt ja im Zweifel nur aufzeichnen.

> Als ich das Makro nun erstmals ausführen
> wollte, erhielt
> ich die Meldung "Basic Syntaxfehler. Programm ist zu groß".

und hier ist mein Problem weswegen ich oben fragte, es geht hier
tatsächlich um das Ausführen und nicht um das Speichern?
Weil: Module dürfen nur 64kB groß werden, mithin auch die Obergrenze für
Makros. Nur ich wäre überrascht wenn sich größere speichern ließen und
das Programm erst hinterher feststellt es geht nicht. Ich hatte im Forum
einen Fall wo tatsächlich die Größe einer Bibliothek gesprengt wurde,
nur weiß ich nicht wie OOo reagiert wenn das bein Aufzeichnen passiert,
im Forum waren das 'handgeschriebene' Makros.

> Was mache
> ich nun?

Also zunächst überlegen ob Du überhaupt ein Makro dafür willst oder das
nur willst weil Du nicht weißt was sonst möglich wäre.
Dann überlegen wie Du überhaupt aufzeichnest, denn ich würde mal
vermuten schon da machst Du Fehler. Ich kann mir zwar denken weil der
Makrorekorder so voluminösen Code erzeugt das es denkbar ist an die 64kb
Grenze zu stoßen, nur ich kann mir kaum denken das es keine bessere
Lösung der Aufzeichnung gäbe. Du mußt immer bedenken der Rekorder
zeichnet nur das auf was er aufzeichnen kann - eine Reihe von sog.
dispatch-Befehlen welche aber nicht jegliche Aktion umfassen, siehe:
http://www.openoffice.org/files/documents/25/2570/commandsReference.html
und im Weiteren das der Rekorder exakt das aufzeichnet was Du tust. Eine
Aufzeichnung im Sinne 'gehe ans Ende des Absatzes' funktioniert
bespielsweise bei der Aufzeichnung auch dafür scheinbar (im gewissen
Sinne ja tatsächlich) ans Dokumentende zu kommen, nur wenn Du definitiv
ans Dokumentende wllst must Du auch das aufzeichnen, denn das Makro gibt
nur die Aufzeichnung wieder und nicht was Du glaubst aufgezeichnet zu
haben weil es optisch so aussah.

> Wie viele Einträge dürfen da rein?

Naja, es geht um Code, der kann beliebig viele Zeilen haben, alles in
allem jedoch nicht mehr als 64kB Zeichen pro Modul

> Gibt es irgendwo eine
> ausführliche deutsche Anleitung der Makro-Geschichte?

"Makro-Geschichte" ist ja nun 'alles oder nichts'. Ich kenne eigentlich
keine Quelle außer der oben genannten wenn es um die Aufzeichnung ginge,
obwohl dort nur die Kommandos gelistet sind, Du also nur nachschlagen
kannst wenn Du was suchst.
Eine ganz gute Zusammenstellung von Quellen zu eher Einstiegsfragen der
Makro*programmierung* habe ich hier:
http://de.openoffice.info/viewtopic.php?t=1553
zusammengestellt, allerdings nicht alles in deutsch.
Oder Du nimmst ein deutsches Buch zur Makroprogrammierung, derer dürfte
es unverändert 3 geben:
*Makros in OpenOffice.org 2.0 automatisieren Basic/StarBasic (Krumbein)
*OpenOffice-Programmierung (Martin)
*OpenOffice.org Basic (C&L Verlag)


Gruß
Jörg

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [de-users] Makros in OpenOfice 2.02

2006-04-22 Thread Ralf Tempel
Hallo Jörg!
Zunächst einmal vielen Dank für die lange Antwort und die Mühe, die Du
Dir damit gegeben hast.

Jörg Schmidt schrieb:
> Ralf Tempel schrieb:
>> Ich möchte [..],
>> mehrere Änderungen automatisch durchführen lassen.
>> [...]
> 
> *muß* es dafür ein Makro sein?
> Warum geht beispielsweise Autokorrektur oder suchen-ersetzen nicht?
Autokorrektur geht deshalb nicht, weil die m. W. nur während des
Schreibens aktiv ist. Ich schreibe die Texte nicht sondern bekomme sie
von verschiedenen Autoren geliefert.
Suchen & Ersetzen funktioniert, nur möchte ich eben die rund 80
Änderungen nicht jedesmal für jeden Text einzeln durchführen müssen, der
Zeitaufwand hierfür wäre immens im Vergleich zu einer automatischen
Änderung.
Vielleicht zur Verdeutlichung, worum es genau geht: Die Aufgabe ist, aus
Texten verschiedener Autoren ein Buch zusammenzustellen. Und wie Autoren
nun mal so sind, gewisse Regeln sind ihnen nicht beizubringen und das
ist ja auch nicht schlimm. Auf die Arbeitsplätze der Autoren haben wir
auch keinen Zugriff, um evtl. die Autokorrektur anzupassen. Auch ist das
keine einmalige Sache sondern es geht darum, einen Workflow zu
erstellen, bzw. ihn von Word zu portieren.

In der Textverarbeitung sollen die erwähnten Änderungen durchgeführt
werden und Absatz- sowie Zeichenformate zugewiesen werden. Dann fließen
die Texte in ein Layoutprogramm ein und werden weiterbearbeitet.

>> Ich habe rund 80 solcher Änderungen durchgeführt und als Makro
>> aufgezeichnet.
> 
> Ja, das ist die Frage - war das Makro denn gespeichert, denn Aufzeichnen
> heißt ja im Zweifel nur aufzeichnen.
> 
>> Als ich das Makro nun erstmals ausführen
>> wollte, erhielt
>> ich die Meldung "Basic Syntaxfehler. Programm ist zu groß".
> 
> und hier ist mein Problem weswegen ich oben fragte, es geht hier
> tatsächlich um das Ausführen und nicht um das Speichern?
> Weil: Module dürfen nur 64kB groß werden, mithin auch die Obergrenze für
> Makros. Nur ich wäre überrascht wenn sich größere speichern ließen und
> das Programm erst hinterher feststellt es geht nicht. Ich hatte im Forum
> einen Fall wo tatsächlich die Größe einer Bibliothek gesprengt wurde,
> nur weiß ich nicht wie OOo reagiert wenn das bein Aufzeichnen passiert,
> im Forum waren das 'handgeschriebene' Makros.
Ich wurde nach einem Makronamen gefragt und kann das Makro jederzeit
aufrufen, um es anzuwenden. Auch nachdem das Programm zwischenzeitlich
geschlossen wurde.

>> Was mache
>> ich nun?
> 
> Also zunächst überlegen ob Du überhaupt ein Makro dafür willst oder das
> nur willst weil Du nicht weißt was sonst möglich wäre.
Ich bin nicht auf ein Makro fixiert. Es war nur das erste was mir
einfiel, weil ich damit die ganzen Suchen & Ersetzen-Aktionen
aufzeichnen konnte. Wenn es andere, bessere Möglichkeiten gibt, bin ich
dafür selbstverständlich offen. Die Automatisierung solle allerdings
plattformunabhängig sein, wir arbeiten hier mit Windows das durch Linux
ersetzt wird und mit Macs.

> Dann überlegen wie Du überhaupt aufzeichnest, denn ich würde mal
> vermuten schon da machst Du Fehler. 
Ich habe das Suchen & Ersetzen-Fenster geöffnet und einfach nacheinander
 die Zeichen und die Worte, durch die sie ersetzt werden sollen, eingegeben.

> [...] Du mußt immer bedenken der Rekorder
> zeichnet nur das auf was er aufzeichnen kann [..]
Ja, das habe ich gemerkt, bestimmte, Zeichen, die in meinem
Beispieldokument nicht vorhanden waren zum sie zu ersetzen, wurden nicht
aufgezeichnet.

Viele Grüße
Ralf

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [de-users] Makros in OpenOfice 2.02

2006-04-22 Thread Bernd Schukat
Am 22 Apr 2006 um 10:22 hat Ralf Tempel geschrieben:

> Hallo Jörg!
> Zunächst einmal vielen Dank für die lange Antwort und die Mühe, die Du
> Dir damit gegeben hast.
>
> Jörg Schmidt schrieb:
> > Ralf Tempel schrieb:
> >> Ich möchte [..],
> >> mehrere Änderungen automatisch durchführen lassen.

Hallo Ralf,

ich weiss nicht, ob es dir hilft, aber ich habe mit V2.0.2 mal ein Macro
probiert, das durch suchen und Ersetzen aus einem Angebot eine
Rechnung macht. Leider habe ich es geloescht, weil der Interessent dann doch
bei Exel bleiben wollte. Da wurden ca. 60 Worte getauscht und ein Tabellenblatt
in ein neu angelegtes kopiert. Das lief einwandfrei. Vermute daher das Problem 
bei
den Sonderzeichen.

Was passiert, wenn Du die reine Text gegen Text-Austausch-Aktion mit einem
eigenen Makro versuchst, und das Austauschen von "Sonderzeichen" in
einem anderen Macro Stueck um Stueck ergaenzt?

Dann noch mal gezielt nachfragen, welche Zeichen sich nicht "per Automatik"
tauschen lassen.

Bei den Sonderzeichen mal auch die regulaeren Ausdruecke (In Hilfe aufgefuehrt)
z.b. " \n "  fuer weiche Zeilenumbrueche und " $ " fuer harte.

viel Erfolg & ein schoenes Wochenende
Bernd




Re: [de-users] Makros in OpenOfice 2.02

2006-04-22 Thread Jörg Schmidt
Hallo Ralf,

Ralf Tempel schrieb:
> Und
> wie Autoren
> nun mal so sind, gewisse Regeln sind ihnen nicht beizubringen [...]

naja, ich weiß nicht was Du für Autoren kennst ;-)

> Ich bin nicht auf ein Makro fixiert. Es war nur das erste was mir
> einfiel,

was ja auch nicht falsch war. Nur mit dem Aufzeichnen ist das wohl eher
nicht optimal hinzukriegen.
Du solltest das lieber slbst programmieren, habe ein kleines Beispiel
hier zusammengeklickt:

Sub Main
Suchen() = Array("der", "die", "das")
Ersetzen() = Array("#der#", "#die#", "#das#")
tauschen = ThisComponent.createReplaceDescriptor
For i = 0 To 2
tauschen.SearchString = Suchen(i)
tauschen.ReplaceString = Ersetzen(i)
ThisComponent.replaceAll(tauschen)
Next i
End Sub

Das ersetzt nun nur 3 Wörter im Fließtext. Was Du insgesamt brauchst
weiß ich nicht, weil evtl. geht es nicht nur um Fließtext und Du hast
Vorstellungen wo die Suchen/Ersetzen-Begriffe herkommen sollen, ich habe
sie hier direkt ins Makro geschrieben.

> Ich wurde nach einem Makronamen gefragt und kann das Makro jederzeit
> aufrufen, um es anzuwenden. Auch nachdem das Programm zwischenzeitlich
> geschlossen wurde.

??
Und was heißt das? Ich denke das Makro geht nicht, das schien mir doch
der Grund Deiner Anfrage. Oder heißt das "aufrufen" hier ganz 'streng'
Du kannst aufrufen, aber es gibt sofort die Fehlermeldung?


Gruß
Jörg

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [de-users] Makros in OpenOfice 2.02

2006-04-22 Thread Ralf Tempel
Jörg Schmidt schrieb:
> oder heißt das "aufrufen" hier ganz 'streng'
> Du kannst aufrufen, aber es gibt sofort die Fehlermeldung?
Genau!

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [de-users] Makros in OpenOfice 2.02

2006-04-23 Thread Ralf Tempel
Jörg Schmidt schrieb:

> Sub Main
> Suchen() = Array("der", "die", "das")
> Ersetzen() = Array("#der#", "#die#", "#das#")
> tauschen = ThisComponent.createReplaceDescriptor
> For i = 0 To 2
>   tauschen.SearchString = Suchen(i)
>   tauschen.ReplaceString = Ersetzen(i)
>   ThisComponent.replaceAll(tauschen)
> Next i
> End Sub
> 
> Das ersetzt nun nur 3 Wörter im Fließtext. Was Du insgesamt brauchst
> weiß ich nicht

Genau das! Es funktioniert wunderbar.
Danke! Im Endeffefeckt soll nichts anderes
getan als Zeichen durch Worte ersetzt
werden. Nur soll das Ersetzte zur besseren
Kontrolle eine rote Schriftfarbe haben.
Wie bekomme ich das oben noch rein?

Ich habe zwar angefangen, die Links
durchzuarbeiten, aber bis ich soweit bin,
dauert es wohl noch ein ganzes Stück.

Viele Grüße und einen guten Start in die
neue Woche

Ralf

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]