Hallo Mario,
hIer das Ergebnis aus LibreOffice:
This is the first sentenceU+002e This is the secondU+002e And this the thirdU+002e
There‘s a fourth, too? No, there isn‘t! But don‘t careU+002e
Alle Punkte =
U+002e
Damit kann mein Verdacht eindeutig ausgeschlossen werden.
Dein Makro läuft bei mir sowohl unter AOO 4.1.6, als auch unter LibO 6.3.4.2 (x64) einwandfrei.
Warum bei Dir nur der erste Punkt ersetzt wird weiß ich nicht.
-----------------------
Ein paar sonstige Hinweise:
Als ich Dein Makro aus der Basic-IDE heraus startete, wurde diese Fehlermeldung angestoßen.
Code: Alles auswählen
Msgbox("This macro only works with Writer documents.", 16, GetProductName())
Ursache:
Mittels "StarDesktop.ActiveFrame.Controller.Model" erfaßt man das gerade vordergründig Frame.
Dieses ist aber nicht Writer, sondern die Basic-IDE.
Entweder man nutzt diesen Code:
oder man startet ausschließlich aus dem Dokument heraus, dann ist eine Prüfung
sDocType = GetDocumentType(oDocument)aus meiner Sicht überflüssig:
---------------------------
Du hast Dir in Deinem Makro die Mühe gemacht alle Satztrenner
"\. |! |\? " zuerfassen und zu ersetzen.
Ich weiß nicht ob die die Möglichkeit in Betracht gezogen hast mit dem ViewCursor oder TextCursor zuarbeiten.
http://www.dannenhoefer.de/faqstarbasic ... tml#cursor
http://www.dannenhoefer.de/faqstarbasic ... ml#cursor2
- Der ViewCursor ist der Cursor den man in einem Writerdokument blinkend sieht.
Dieser ist nur einmalig vorhanden!
- Der/ die TextCursor operieren unsichtbar und man kann hiervor mehrere anlegen.
Des Weiteren biete der TextCursor die Möglichkeit ein Satzende zu erkennen:
Code: Alles auswählen
oDoc = ThisComponent
oTC1=oDoc.text.createtextcursor()
' Code Inspektionstools:
'mri oTC1
'xray oTC1
' Ende des Satzes
oTC1.gotoEndOfSentence
' nächster Satz
oTC1.gotoNextSentence
' vorheriger Satz
oTC1.gotoPreviousSentence
' Anfang des Satzes
oTC1.gotoStartOfSentence
- Auszug MRI-Code-Inspektionstool
- Macro some TextCursor Methods.JPG (95.82 KiB) 4169 mal betrachtet
-----------------------
Leider kann ich Dir keine konkretere Hilfe bieten, weil der Fehler bei mir nicht vorhanden ist.
Auch diese Variante funktioniert einwandfrei:
Code: Alles auswählen
ReplaceStrings(oContainer, "\. |! |\? ", ".\n")
' ReplaceStrings(oContainer, "\. |! |\? ", "&" & Chr$(13) & Chr$(10))