1

ドキュメントを調べて、中央揃えのすべてのテキストを見つけて削除したいのですが、検索と置換ツールで書式設定されたテキストを設定できますが、記録すると書式設定が保存されません...編集方法を知っている人はいますか?これを行うための基本的なコード?また、libre office と互換性のあるオープン オフィス ドキュメントです。

4

2 に答える 2

2

OpenOffice で記録するとディスパッチャ コードが生成されますが、これは通常あまり適切ではありません。マクロを書くときは、UNO API を使用する方がよいでしょう。ここにあなたが望むことをするいくつかのコードがあります:

Sub DeleteCenteredLines
    oDoc = ThisComponent
    Dim vDescriptor, vFound
    ' Create a descriptor from a searchable document.
    vDescriptor = oDoc.createSearchDescriptor()
    ' Set the text for which to search and other 
    With vDescriptor
      .searchString = ""
      .searchAll=True
    End With
    Dim srchAttributes(0) As New com.sun.star.beans.PropertyValue
    srchAttributes(0).Name = "ParaAdjust"
    srchAttributes(0).Value = com.sun.star.style.ParagraphAdjust.CENTER
    vDescriptor.SetSearchAttributes(srchAttributes())
    ' Find the first one
    vFound = oDoc.findFirst(vDescriptor)
    Do While Not IsNull(vFound)
        vFound.setPropertyValue("ParaAdjust", com.sun.star.style.ParagraphAdjust.LEFT)
        oTC = oDoc.Text.createTextCursorByRange(vFound)
        oTC.gotoStartOfParagraph(false)
        oTC.gotoEndOfParagraph(true)
        oTC.String = ""
        oTC.goRight(1,true)
        oTC.String = ""
        vFound = oDoc.findNext( vFound.End, vDescriptor)
    Loop
End Sub

多くの一般的なタスクの例については、http://www.pitonyak.org/AndrewMacro.odtを参照してください。私の経験では、通常、このドキュメントで例を探す方が、マクロを記録して記録された内容を理解するよりも簡単です。

これは、OpenOffice だけでなく LibreOffice でも機能します。通常、API は両方で同じです。

于 2015-09-21T17:01:30.210 に答える