Top > OOoBasic > Writer > text

テキスト Edit

テキストオブジェクトを取り扱います。Writer で入力された文字列やその書式などを変更しようとするなら,ここで取り上げるテキストオブジェクトにアクセスします。

テキストオブジェクトの取得 Edit

テキストオブジェクトはさまざまなところから取得することができます。しかし,どこから取得しても同じオブジェクトが取得されていたりします。

Writer ドキュメントでは,ドキュメントオブジェクトからテキストオブジェクトを取得することができます。

Sub text_1
Dim oDoc As Object
Dim oText As Object
  oDoc = ThisComponent
  oText = oDoc.getText()
End Sub

oText 変数にテキストオブジェクトを取得しました。

色々な場所でのテキストオブジェクト Edit

上記には同じオブジェクトが取得されていたりする、と書きましたが、テキストフレーム内や表内などでは別のオブジェクトになります。そのなかのテキストを編集するときにはそこから取得してください。

テキストオブジェクトの文字列 Edit

テキストオブジェクトが保持している部分に入力されている文字列は String プロパティーから取得できます。また,同じプロパティーを利用して文字列を設定することが出来ます。

テキストオブジェクトの範囲 Edit

テキストオブジェクトには範囲があります。

 oText = oDoc.getText()

として取得したテキストオブジェクトはドキュメント全体を含むテキストオブジェクトです。

テキストオブジェクトの範囲を変更するためにテキストオブジェクトから別のテキストオブジェクトの範囲を取得できるプロパティーがあります。テキストオブジェクトの最初の部分の Start プロパティーおよび最後の部分の End プロパティーです。

テキストカーソル Edit

テキストカーソルは,テキストオブジェクトと合わせて使用します。このテキストカーソルは,テキストオブジェクト中でテキストの範囲や位置を示すために使用されます。また,カーソル位置または範囲の文字や段落,ページのプロパティを変更するためにも使用します。

Sub textcursor_1
Dim oDoc As Object
Dim oText As Object
Dim oTextCursor As Object
  oDoc = ThisComponent
  oText = oDoc.getText()
  oTextCursor = oText.createTextCursor()
End Sub

このようにテキストカーソルを作成できます。また,テキストカーソルが移動できる範囲を指定して作成することが出来ます。createTextCursorByRange メソッドに範囲を限定したいテキスト範囲オブジェクトを指定します。

  oTextCursor = oText.createTextCursorByRange( oText.getEnd() )

このテキストカーソルを,テキストやテキストコンテンツを挿入する際の位置の指定に使用します。

挿入 Edit

文字列やコントロールコード,テキストコンテンツの挿入を取り上げます。

文字列の挿入 Edit

文字列の挿入には insertString メソッドを使用します。

void insertString ( XTextRange xRange, string sString, boolean bAbsorb )
  • xRange: テキストカーソルなどの範囲。
  • sString: 挿入する文字列。改段落: cr,改行: lf も使用できる。
  • bAbsorb: xRange のテキストを置換するかどうか。true のとき置換される。false では xRange の直前に挿入される。

コントロール文字の挿入 Edit

改行や改ページといったコントロール文字を入力するために使用します。

void insertControlCharacter ( XTextRange xRange, 
                         integer nControll, boolean bAbsorb )
  • xRange: テキストカーソルなどの範囲。
  • nControll: 挿入するコントロール文字。com.sun.star.text.ControlCharacter の定数で指定する。
Constants of com.sun.star.text.ControlCharacter
PARAGRAPH_BREAK改段落
LINE_BREAK改行
HARD_HYPHENハイフネーション抑制用
SOFT_HYPHENハイフネーション位置の指定
HARD_SPACE二つの単語を分割しないように指定
APPEND_PARAGRAPH新しい段落
  • bAbsorb: xRange のテキストを置換するかどうか。true のとき置換される。false では xRange の直前に挿入される。

テキストコンテンツの挿入 Edit

テキストコンテンツというのは,通常の文字列ではなく,表やフィールドといったオブジェクトです。

void insertTextContent ( XTextRange xRange,
                    XTextContent xContent, boolean bAbsorb )
  • xRange: テキストカーソルなどの範囲。
  • xContent: 挿入するテキストコンテンツ
  • bAbsorb: xRange のテキストを置換するかどうか。true のとき置換される。false では xRange の直前に挿入される。

テキストコンテンツの削除 Edit

テキストコンテンツは removeTextContent メソッドで削除できます。

void removeTextContent ( XTextContent xContent )
  • xContent: 削除するテキストコンテンツ

テキスト範囲の比較 Edit

二つのテキスト範囲の位置関係を調べる方法です。

開始位置の比較 Edit

二つのテキスト範囲の開始位置を比較する。

integer compareRegionStarts ( XTextRange xR1, XTextRange xR2 )
  • xR1: 比較するテキスト範囲オブジェクト
  • xR2: 比較するテキスト範囲オブジェクト

このメソッドは次のような戻り値を持ちます。

  • 1: xR1 の方が先に始まっているとき
  • 0: xR1 と xR2 が同じ位置から始まっているとき
  • -1: R2 の方が先に始まっているとき

終了位置の比較 Edit

二つのテキスト範囲の終了位置を比較する。

integer compareRegionEnds ( XTextRange xR1, XTextRange xR2 )
  • xR1: 比較するテキスト範囲オブジェクト
  • xR2: 比較するテキスト範囲オブジェクト

このメソッドは次のような戻り値を持ちます。

  • 1: xR1 の方が先に終わっているとき
  • 0: xR1 と xR2 が同じ位置から始まっているとき
  • -1: R2 の方が先に終わっているとき

テキストコンテンツの挿入 Edit

新たに挿入するテキストコンテンツを別のテキストコンテンツの直前または直後に挿入するメソッドがあります。

新たに前の位置にテキストコンテンツを挿入するメソッド。

void insertTextContentBefore ( XTextContent xNewContent, 
                               XTextContent xSuccessor )
  • xNewContent: 新しく挿入するテキストコンテンツ
  • xSuccessor: このテキストコンテンツの前に xNewContent が新しく挿入される

新たに後ろの位置にテキストコンテンツを挿入するメソッド。

void insertTextContentAfter ( XTextContent xNewContent, 
                              XTextContent xPredecessor )
  • xNewContent: 新しく挿入するテキストコンテンツ
  • xPredecessor: このテキストコンテンツの後ろに xNewContent が新しく挿入される

テキストコンテンツの削除 Edit

テキストコンテンツの前後のテキストコンテンツを削除するメソッドがあります。

指定したテキストコンテンツの前のテキストコンテンツを削除するメソッド removetextContentBefore

void removeTextContentBefore ( XTextContent xSuccessor )
  • xSuccessor: 前のテキストコンテンツを削除したいテキストコンテンツ

表の前の空の段落を削除するのに役に立ちます。

指定したテキストコンテンツの後ろのテキストコンテンツを削除するメソッド removeTextContentAfter

void removeTextContentAfter ( XTextContent xPredecessor )
  • xSuccessor: 後ろのテキストコンテンツを削除したいテキストコンテンツ

ヘッダ,フッタまたはテキストフレーム中で表の後ろの空の段落を削除するのに役に立ちます。

挿入時の Absorb 引数 Edit

insertString メソッドなどでテキストを入力するときの引数に、現在のカーソルが選択しているテキストを置き換えるかどうかを指定する Absorb があります。連続して挿入するときには False を指定すると、カーソルを collapseToEnd などで調整せずに済みます。


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