ich habe eben erst mit dem Schreiben von Macros im Writer von LibreOffice angefangen und kann sein, dass es sich um etwas sehr Banales handelt. Mein Ziel ist es, dieses Zeichen " bzw. chr(34) durch zwei Typen von Anführungszeichen zu ersetzen und zwar je nach Kontext. Ich denke, die erste Regel ist einfach:
Wenn auf " ein Großbuchstabe folgt, dann ersetze durch „
Bei dem anderen wird es etwas schwieriger.
Wenn nach einem Kleinbuchstaben, einem Punkt, einem Ausrufezeichen oder einem Fragezeichen (ggf. auch nach einem Gedankenstrich) " kommt, dann ersetze durch “
Nun kann man das offensichtlich so nicht ins Makro reinschreiben und ich tue mir schwer, das zu formalisieren.
Aus einem Forum hatte ich so etwas ausgegraben:
Dieser Code hat hervorragend beim Ersetzen von einzelnen Zeichen in andere Zeichen funktioniert, generell war er gut, solange man sie mit "" anführen konnte. Aber da es genau um diese Zeichen geht, musste ich auf sie verzichten und hab's dann irgendwie mit & versucht, was nicht geklappt hat.dim myDoc as object, mySuche as Object
'oFunctionAccess = createUnoService( "com.sun.star.sheet.FunctionAccess" )
myDoc = thisComponent
' Doppelte Leerzeichen:
mySuche=myDoc.createReplaceDescriptor()
With mySuche
.SearchRegularExpression = True
.setSearchString( " ")
.setReplaceString(" ")
end With
myDoc.replaceAll(mySuche)
End Sub
Solche Geschichten...mySuche=myDoc.createReplaceDescriptor()
With mySuche
.SearchRegularExpression = True
.setSearchString( chr(34)&[:upper:] or [:lower:]&chr(34))
.setReplaceString("„"&[:upper:] or [:lower:]&"“")
end With
myDoc.replaceAll(mySuche)
Wie gesagt: Ich bin ein blutiger Anfänger. Ich wäre super dankbar, wenn mir jemand einen Tipp geben kann.
Danke und viele Grüße
valivarius