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