von F3K Total » Do, 28.11.2013 22:07
Hi,
folgende Methode zum erzeugen schreibgeschützter Textbereiche ist mir bekannt:
- Textbereich markieren
- Einfügen->Bereich->Haken bei Schreibschutz
Das ist dir zu aufwendig, daher habe ich ein Makro geschrieben, dass das Anlegen geschützter Bereiche übernimmt.
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
Überprüfe das Ergebnis unter Format/Bereiche ...
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
Gruß R
Hi,
folgende Methode zum erzeugen schreibgeschützter Textbereiche ist mir bekannt:
[list][*]Textbereich markieren
[*]Einfügen->Bereich->Haken bei Schreibschutz[/list]
Das ist dir zu aufwendig, daher habe ich ein Makro geschrieben, dass das Anlegen geschützter Bereiche übernimmt.
Vorgehen:
[list][*] 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[/list][code]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[/code]
Überprüfe das Ergebnis unter Format/Bereiche ...
[color=#FF0000]EDIT: Habe das Makro verbessert, zusammenhängende Paragraphen werden jetzt in einem Bereich zusammengefaßt.[/color]
Mit diesem Makro können die geschützen Bereiche in einem Rutsch wieder entfernt werden.
[code]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[/code]
Gruß R