Seitenumbruch mit Makro erzeugen

Das Textverarbeitungsprogramm

Moderator: Moderatoren

bernhard1011
Beiträge: 7
Registriert: Di, 24.11.2009 08:52

Seitenumbruch mit Makro erzeugen

Beitrag von bernhard1011 »

Hallo, besteht die Möglichkeit über ein Makro (oder eine andere Lösung) in einem Text nach einer bestimmten Zeichenkette (ich habe z.B. ###### einfügen lassen) zu suchen, und danach einen Seitenumbruch zu erzwingen?

Vielen Dank im voraus
ebbo
*
Beiträge: 11
Registriert: Di, 24.11.2009 10:15

Re: Seitenumbruch mit Makro erzeugen

Beitrag von ebbo »

Yup ...:
* Makro aufzeichnen starten
* Suchen und Ersetzen
* bei Suche nach ##### eingeben
* Suche alle anklicken
* schließen anklicken
* einfügen Manueller Umbruch aufrufen
* darauf achten, dass Seitenumbruch ausgewählt
* OK
* Makro aufzeichnen beenden
* Makronamen vergeben

... und bei nächster Gelegenheit verwenden :)
bernhard1011
Beiträge: 7
Registriert: Di, 24.11.2009 08:52

Re: Seitenumbruch mit Makro erzeugen

Beitrag von bernhard1011 »

Danke für die rasche Antwort, leider haut das nicht so ganz hin. Wenn ich normal "Suchen" und danach Einfügen --> Seitenumbruch, und das Makro immer wieder aufrufe, funktionierts. Wenn ich aber "Suchen alle" auswähle habe ich zwar nach meinem definierten Zeichen einen Absatz, aber der Seitenumbruch verschiebt sich und ich habe wieder nicht immer dort einen Umbruch wo vorher die Zeichenkette war.

Vielleicht hat noch jemand eine Idee
ebbo
*
Beiträge: 11
Registriert: Di, 24.11.2009 10:15

Re: Seitenumbruch mit Makro erzeugen

Beitrag von ebbo »

Verzeihung ... habe da in der Begeisterung tatsächlich übersehen, dass nur 1 x Umbruch ...
ebbo
*
Beiträge: 11
Registriert: Di, 24.11.2009 10:15

Re: Seitenumbruch mit Makro erzeugen

Beitrag von ebbo »

Ok, hat mich nicht losgelassen - ich habe mehr durch try und error herausgefunden ...
folgendes Makro klappt bei mir ... cursor nur vor erstes vorkommen von ##### stellen .... gähn good night :shock:

Sub Main

Dim oDocument As Object
Dim document As Object
Dim oSearch As Object, oResult As Object
Dim n As Long
dim dispatcher as object

oDocument = ThisComponent

oSearch = oDocument.createSearchDescriptor
oSearch.SearchString = "#####"
oSearch.SearchRegularExpression = TRUE
oResult = oDocument.findAll(oSearch)

document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(18) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.Backward"
args1(4).Value = false
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 0
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 65536
args1(10).Name = "SearchItem.SearchString"
args1(10).Value = "#####"
args1(11).Name = "SearchItem.ReplaceString"
args1(11).Value = ""
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1280
args1(17).Name = "SearchItem.Command"
args1(17).Value = 0
args1(18).Name = "Quiet"
args1(18).Value = true



rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Kind"
args2(0).Value = 3
args2(1).Name = "TemplateName"
args2(1).Value = ""
args2(2).Name = "PageNumber"
args2(2).Value = 0


For n = 0 To oResult.count - 1
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:InsertBreak", "", 0, args2())
Next n

End Sub
Antworten