2

OpenOffice/LibreOffice Basic でのコーディングに関して、根本的な問題があり、それを理解できないようです。必要なすべての機能に常にアクセスできるとは限りません。次に例を示します。

Sub TestSub
    Dim doc As Object
    doc = ThisComponent  'Note that we're in LibreOffice Writer

    MsgBox(doc.Text.Dbg_SupportedInterfaces)

    doc.Text.finishParagraph(Array())  'Works OK
    doc.Text.appendParagraph(Array())  'Error, property or method not found
End Sub

doc.Text.Dbg_SupportedInterfacesプロパティは、私がアクセスできるはずのインターフェースの 1 つがcom.sun.star.text.XParagraphAppendあることをfinishParagraph教えてくれappendParagraphますfinishParagraph。どうしてこれなの?これは孤立したケースではありません - 私がアクセスできない機能にアクセスできるように意図されていることはどこにでもあります。

4

1 に答える 1

3

Openoffice と Libreoffice は別のプロジェクトです。そういうわけで、それらは異なって開発され、将来的にはさらに異なったものになるでしょう. あなたの例では、Libreoffice にはもう appendParagraph はありませんが、finishParagraphInsert があります。参照: http://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1text_1_1XParagraphAppend.html

BASIC 開発では、XRAY などのデバッグ ツールを使用することをお勧めします。参照: https://wiki.documentfoundation.org/Macrosこのツールは、実際に存在するプロパティとメソッドのみを表示します。残念ながら、Libreoffice の API ドキュメントにはグローバル インデックスさえありません。そのため、XRAY は Libreoffice API ドキュメントに直接リンクできません。したがって、現時点では、Openoffice と Libreoffice の両方にhttps://www.openoffice.org/api/docs/common/ref/index-files/index-1.htmlを使用し、Libreoffice API http://apiを手動で確認します。 .libreoffice.org/ Libreofficeのマクロを作成している場合。

于 2014-11-16T08:11:52.687 に答える