다음 제목 단락을 찾아서 제목 케이스로 변환하는 LibreOffice Writer 매크로가 있습니다. 현재 파일 끝에 도달 할 때까지 반복해서 호출해야합니다. 모든 작업을 수행하지만 EOF에서 멈추는 루프를 설정하려고합니다. 그러나 루프가 작동하지 않습니다.
도움을 주시면 감사하겠습니다. 여기 내가 가진 것입니다.
sub Convert_Headings_to_Title_Case
rem define variables
dim document as Object
dim dispatcher as Object
Dim Proceed As boolean
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem loop not working
Do
' Call other macro to find next Heading:
Heading_findNext
dispatcher.executeDispatch(document, ".uno:EndOfLineSel", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:ChangeCaseToTitleCase", "", 0, Array())
Loop While Proceed
end sub
제목을 찾기 위해 호출되는 매크로는 다음과 같습니다.
sub Heading_findNext
'moves text cursor, but not view cursor, to heading
Dim oStyle, oCurs, oDoc, oVC, Proceed
oDoc = ThisComponent.Text
oVC = ThisComponent.CurrentController.getViewCursor
oCurs = ThisComponent.Text.createTextCursorByRange(oVC)
Do
Proceed = oCurs.gotoNextParagraph(false)
oStyle = Mid(oCurs.ParaStyleName, 1, 2)
Select Case oStyle
Case "_H", "He"
oVC = ThisComponent.CurrentController.getviewcursor()
oVC.gotoRange(oCurs, False)
Exit Do
End Select
Loop While Proceed <> false
end sub