Top > OOoBasic > Calc > field

フィールド Edit

Calc のセル内にハイパーリンクフィールドを挿入することができます。しかし,Writer のようなさまざまなフィールド機能は現在のところ利用できません (OpenOffice.org 1.1.1)。

ハイパーリンク Edit

ハイパーリンクフィールドをセル内に挿入してみます。そのためには,専用のサービスを利用します。

作成 Edit

ハイパーリンクフィールドのサービスは com.sun.star.text.TextField.URL です。

Dim oDoc As Object
oLink = oDoc.createInstance("com.sun.star.text.TextField.URL")

としてサービスをインスタンス化します。

作成したハイパーリンクのためのオブジェクト oLink のプロパティーを設定して,リンクを作成していきます。

プロパティーはいくつかありますが,次のものを設定します。

プロパティ説明
Representationstring表示する文字列
URLstringリンクの URL
TargetFramestringURL を開くウィンドウのターゲット

始めの二つの Representation と URL については必ず設定します。三つ目の TargetFrame は設定しなければ,デフォルトの値が使用されます。

たとえば,

With oLink
  .URL = "http://hermione.s41.xrea.com"
  .Representation = "hyperlink"
End With

のようにします。

挿入 Edit

テキストに作成したハイパーリンクを挿入します。

挿入するには,insertTextContent メソッドを使います。

void insertTextContent( 
   XTextRange xRange, XTextContent xContent, boolean bAbsorb )
  • xRange: テキスト範囲
  • xContent: 挿入するテキストコンテント
  • bAbsorb: xRange を xContent で置換するかどうか

セルに挿入するときには,それぞれの引数をどのように指定すればよいかを説明します。

まずは,xRange です。この xRange に指定するのは文字列中での位置を示すオブジェクトです。たとえば,次のようにします。シート 1 の B2 セルで行います。

Dim oCell As Object
Dim oText As Object
Dim oTextCursor As Object
oCell = oDoc.getSheets(0).getCellByPosition( 1, 1 )
oTextCursor = oCell.createTextCursor()

xRange にはこの oTextCursor 変数を指定するといいでしょう。

つぎの xContent には,上記で作成した oLink を指定します。

また, bAbsorb には置換するときには true を,置換しないときには false を指定します。

最後に,実際に挿入します。

oText.insertTextContent( oTextCursor, oLink, false )

これで完了です。

ハイパーリンクが作成,挿入されて hyperlink の文字が Sheet1.B2 に挿入されます。

Calc では,まだ多くの種類のテキストフィールドをサポートしていません。もう少し多くのフィールドをサポートしてほしいと思います。


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes