Hallo Guido,
ich mal mal ein wenig bei
http://www.dannenhoefer.de/faqstarbasic/index.html gestöbert und
folgendes Makro gebastelt:
Sub Guido
' Zum Testen in WRITER-Datei: [Ansicht][Formatierungszeichen] √ setzen
Dim VC as Object
Dim SS as String
Dim RS as String
SS = "das suchen"
RS = "damit ersetzen"
VC = ThisComponent.GetCurrentController.ViewCursor
VC.gotoEnd(True)
MsgBox("Zwischen-Stopp zum Nachschauen in WRITER-Datei: markierter
Text")
VC.String = Replace(VC.String,SS,RS)
MsgBox("Zwischen-Stopp zum Nachschauen in WRITER-Datei: zusätzliche
LFs")
VC.String = Replace(VC.String,Chr(10),"")
End sub
Die Zeile
ViewCursor.String = Replace(ViewCursor.String,Chr(10),"")
wurde notwendig, weil nach dem Suchen/Ersetzen vor und nach den CR /
Carriage Return / Wagenrücklauf / Chr(13) im Text zusätzlich ein LF /
Line Feed / Zeilenvorschub / Chr(10) eingefügt wurde.
Kein Ahnung warum :-((
Vielleicht hat da ja jemand einen Hinweis und/oder Idee ...
in Texten scheinen LFs überhaupt nicht vorzukommen. Ich kenne sie nur
aus BasicMakros, wenn man via »MsgBox« eine neue Zeile schreiben will:
MsgBox("Zeile 1" & Chr(10) & "Zeile 2")
Ansonsten tut das BasicMakro was es soll ... hoffe ich mal ;-))
Grüße
Hans-Werner ;-))
------ Originalnachricht ------
Von "Guido Dischinger" <dis@posteo.de>
An users@de.libreoffice.org
Datum 11.03.2024 21:18:06
Betreff Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur
bis zum Dateiende
Hallo, Werner,
danke - das funktioniert. Mein Problem ist gelöst.
Ehrlich gesagt, ich hatte gehofft, es geht ohne Aufzeichnen. Das Aufzeichnen führt zu ellenlangem Code. Ein
"händisches" Makro ist kürzer und in der Regel besser verständlich. Aber ich muss ja nicht in
Schönheit sterben...
Noch mal danke!
Guido
Am 11.03.24 um 20:24 schrieb Werner Tietz:
Hallo
Dann eben ⇒Makro aufzeichnen:
#######################
sub record_search_replace_selection()
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:EndOfDocumentSel", "", 0, Array()
dim args2(21) as new com.sun.star.beans.PropertyValue
args2(0).Name = "SearchItem.StyleFamily"
args2(0).Value = 2
args2(1).Name = "SearchItem.CellType"
args2(1).Value = 0
args2(2).Name = "SearchItem.RowDirection"
args2(2).Value = true
args2(3).Name = "SearchItem.AllTables"
args2(3).Value = false
args2(4).Name = "SearchItem.SearchFiltered"
args2(4).Value = false
args2(5).Name = "SearchItem.Backward"
args2(5).Value = false
args2(6).Name = "SearchItem.Pattern"
args2(6).Value = false
args2(7).Name = "SearchItem.Content"
args2(7).Value = false
args2(8).Name = "SearchItem.AsianOptions"
args2(8).Value = false
args2(9).Name = "SearchItem.AlgorithmType"
args2(9).Value = 1
args2(10).Name = "SearchItem.SearchFlags"
args2(10).Value = 71680
args2(11).Name = "SearchItem.SearchString"
args2(11).Value = "xxx"
args2(12).Name = "SearchItem.ReplaceString"
args2(12).Value = "yyy"
args2(13).Name = "SearchItem.Locale"
args2(13).Value = 255
args2(14).Name = "SearchItem.ChangedChars"
args2(14).Value = 2
args2(15).Name = "SearchItem.DeletedChars"
args2(15).Value = 2
args2(16).Name = "SearchItem.InsertedChars"
args2(16).Value = 2
args2(17).Name = "SearchItem.TransliterateFlags"
args2(17).Value = 1280
args2(18).Name = "SearchItem.Command"
args2(18).Value = 3
args2(19).Name = "SearchItem.SearchFormatted"
args2(19).Value = false
args2(20).Name = "SearchItem.AlgorithmType2"
args2(20).Value = 2
args2(21).Name = "Quiet"
args2(21).Value = true
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args2())
end sub
########################
Am 11.03.24 um 15:08 schrieb Guido Dischinger:
Sub ersetzenTest
Dim oViewCursor as Object
Dim oErsetzen
oDoc = ThisComponent
oViewCursor = oDoc.CurrentController.ViewCursor
oViewCursor.gotoEnd( True ) 'selektieren bis Dokument_Ende
repl = oDoc.createReplaceDescriptor()
With repl
.SearchString = "XXX"
.ReplaceString = "YYY"
.searchAll = False
End With
'warum nochmals »thisComponent« ???
ThisComponent.ReplaceAll(repl)
end sub
-- 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
--
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
Context
- Re: [de-users] Basic-Makro: Im Writer suchen und ersetzen nur bis zum Dateiende (continued)
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.