よろずやネット

最近はLibreofficeにハマっています。

loadComponentFromURLの4番目のパラメータ

しかし、しかしである… 
オープンオフィス+VB.NETの日本語のサイトは本当に少なくてイヤになっちゃう。


前回使用した、loadComponentFromURL の4番目のパラメータ(Param4)だが、
http://docs.sun.com/app/docs/doc/819-1332/faakl?l=ja&a=view
(上記は日本語のOpenOffice BASICのページ)によれば、

1.AsTemplate (ブール値) テンプレートとして開くかどうか。
2.CharacterSet (文字列) ドキュメントのキャラクターセットを指定
3.FilterName (文字列)  特殊フィルタの指定
4.FilterOptions (文字列) フィルタの追加オプション
5.JumpMark (文字列)
6.Password (文字列)
7.ReadOnly (ブール値)

が指定できると書いてある。

ところが、前回貼り付けた、
http://api.openoffice.org/docs/common/ref/com/sun/star/document/MediaDescriptor.html
では、7個どころではなく、約40個のオプションが指定できるということで、日本語サイトだけに頼ってはいけないことがわかる。
http://docs.sun.com/app/docs/doc/819-1332/faakl?l=ja&a=view   の執筆者さん、シロウトがえらそうな事を書いて、ごめんなさい。)

----------------------

前へ進もう。

loadComponentFromURL の4番目のパラメータ(Param4)には、次のファンクションを利用すれば良いようだ。

Public Function MakePropertyValue(byval cName as Object, byval uValue as Object) As Object
    Dim oPropertyValue As Object

    '下記に使用するoSMはConnectOOo()によってセットされているものとする。
    oPropertyValue = oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
    oPropertyValue.Name = cName
    oPropertyValue.Value = uValue

    MakePropertyValue = oPropertyValue
End Function

使用例:
Dim OpenPar(1) As Object    ' 例えば要素2つの配列を定義する。
OpenPar(0) = MakePropertyValue("ReadOnly", False)
OpenPar(1) = MakePropertyValue("Hidden", False)

oCalcDoc = ODesktop.loadComponentFromURL(MyURL, "_blank", 0, OpenPar)