folgende Methode zum erzeugen schreibgeschützter Textbereiche ist mir bekannt:
- Textbereich markieren
- Einfügen->Bereich->Haken bei Schreibschutz
Vorgehen:
- Erzeuge eine neue Absatzvorlage (F11/Absatzvorlagen/Rechtsklick auf Standard -> Neu ... und gebe ihr den Namen GESCHÜTZT
- markiere deine zu schützenden Texte mit deiner RegEx-Suche
- Doppelklicke auf GESCHÜTZT um den markierten Absätzen die neue Absatzvorlage zuzuweisen
- Lasse das folgende Makro einmal laufen
Code: Alles auswählen
Sub S_Protect_ParaStyle
otext = ThisComponent.Text
oTextCursor = otext.createTextCursor
oTextCursor.collapseToStart
ncounter = 1
do
bfound = false
do while oTextCursor.ParaStyleName = "GESCHÜTZT"
oTextCursor.gotonextparagraph(true)
bfound = true
loop
if bfound then
oTextCursor.gotoPreviousWord(true)
oTextsection = Thiscomponent.createInstance("com.sun.star.text.TextSection")
oTextsection = Thiscomponent.createInstance("com.sun.star.text.TextSection")
oTextsection.isProtected = TRUE
oTextsection.Name = "Ges_B_"+nCounter
oText.insertTextContent(oTextCursor, oTextsection, TRUE)
ncounter = ncounter + 1
end if
loop while oTextCursor.gotonextparagraph(false) = true
End Sub
EDIT: Habe das Makro verbessert, zusammenhängende Paragraphen werden jetzt in einem Bereich zusammengefaßt.
Mit diesem Makro können die geschützen Bereiche in einem Rutsch wieder entfernt werden.
Code: Alles auswählen
Sub S_remove_TextSections
otext = ThisComponent.Text
for i = thiscomponent.Textsections.count - 1 to 0 step - 1
oSection = thiscomponent.Textsections(i)
otext.removeTextContent(oSection)
next i
end sub