[de-users] Makros in OpenOfice 2.02
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
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
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
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
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
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
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]