Hallo Hans-Werner,
auch ich habe mir gedacht, dass das Löschen den Fehler verursacht.
ich habe mir das Makro folgendermassen aus dem Internet
zusammengesnippelt
Sub DeleteFrameSaveText
Dim oViewCursor as object
dim oText As Object
oDoc =ThisComponent
oTF = oDoc.getTextFrames
c = oTF.Count - 1
sText = " "
For i = 0 to c
thisF = oTF.getByIndex(i)
sText = sText & thisF.String & chr(13)
Next
oDoc = StarDesktop.loadComponentFromURL("private:factory/swriter",
"_blank", 0, Array())
oViewCursor= thiscomponent.GetCurrentController.ViewCursor
If IsEmpty(oViewCursor.Cell) Then
oText=thiscomponent.text
Else
oText=oViewCursor.Cell.Text
End If
oText.insertString(oViewCursor, sText,false)
End Sub
Jetzt liest das Makro nacheinander den Text der Rahmen in die
Variabel sText, erzeugt ein neues Writer-Dokument und fügt den Inhalt
von sText ein. Das genügt mir
mit freundlichem Gruss
Martin
Am 22.10.2018 um 15:57 schrieb OoOHWHOoO:
Hallo Martin,
die Fehlermeldung
BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.lang.IndexOutOfBoundsException
Message: .
besagt wohl, dass via "thisF = oTF.getByIndex(i)" ein Element
indiziert wird, dass es bezüglich des Index nicht (mehr) gibt.
Ich vermute mal, dass durch das FRAME-Löschen ( thisF.dispose() )
der letzte Index ( bezüglich "oTF.getByIndex(i)" ) immer um 1
vermindert wird, die Schleife aber "zu weit" zählt.
Entschuldige bitte die etwas "holprige" Erläuterung, aber bezüglich
"FRAMEs löschen" habe ich keinerlei Erfahrung.
Lässt man die Schleife rückwärts laufen ( For i = c to 0 Step -1 )
funktioniert das Makro. Ich hatte über [Einfügen]>[Rahmen]>[Rahmen
interaktiv] 3 Rahmen in eine WRITER-Dokument eingefügt und jeweils
mit Text gefüllt. Nach Makro-Ausführung waren die Rahmen weg und der
Text direkt nacheinander in mehreren Zeilen aufgelistet:
Sub DeleteFrameSaveText
oDoc =ThisComponent
oTF = oDoc.getTextFrames
c = oTF.Count - 1
For i = c to 0 Step -1
thisF = oTF.getByIndex(i)
s = thisF.String
otc = oDoc.Text.createTextCursorByRange(thisF.Anchor)
otc.setString(s)
thisF.dispose()
Next
End Sub
Gruß
Hans-Werner ;-))
-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy