Ein Problem ist vielleicht, dass Proceed
von der Schleife in Convert_Headings_to_Title_Case
nie geändert wird. Vielleicht wollten Sie Heading_findNext
eher als Funktion als als Sub schreiben und einen booleschen Wert wie Proceed = Heading_findNext()
.
Stellen Sie außerdem sicher, dass der Ansichtscursor am Anfang des Dokuments beginnt.
Hier ist korrekter Arbeitscode.
Sub Convert_Headings_to_Title_Case Dim oDoc, oFrame, dispatcher As Object Dim oVC, oCurs As Object Dim sStyleNamePart As String oDoc = ThisComponent oFrame = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") oVC = oDoc.CurrentController.getViewCursor() oVC.gotoStart(False) oCurs = oVC.getText().createTextCursorByRange(oVC) While oCurs.gotoNextParagraph(False) sStyleNamePart = Mid(oCurs.ParaStyleName, 1, 2) If sStyleNamePart = "_H" Or sStyleNamePart = "He" Then oVC.gotoRange(oCurs, False) dispatcher.executeDispatch(oFrame, ".uno:EndOfLineSel", "", 0, Array()) dispatcher.executeDispatch(_ oFrame, ".uno:ChangeCaseToTitleCase", "", 0, Array()) End If Wend End Sub