Top > OOoBasic > Calc > text

セルのテキスト Edit

セル内のテキストへアクセスします。この場合は,文字ごとにフォントを変更したり,文字列の一部を上付きにしたりなどを行います。

テキストカーソル Edit

セル内のテキストを取り扱うにはテキストカーソルオブジェクトを使用します。これは, createTextCursor() メソッドを使用して取得します。

Sub textcursor_1
Dim oSheet As Object, oCell As Object
Dim oTextCursor As Object

  oSheet = ThisComponent.Sheets( 0 )
  oCell = oSheet.getCellByPosition( 1, 1 )
  oTextCursor = oCell.createTextCursor()' <--
End Sub

移動 Edit

テキストカーソルは com.sun.star.text.XTextCursor インターフェースです。ここからのメソッドを使用してセルのテキスト内を移動します。

最後の二つは,文字列の最初と最後に移動します。次のコードで試してみます。

Sub textcursor_2
Dim oCell As Object
Dim oTextCursor As Object

  oCell = ThisComponent.Sheets( 0 ).getCellByPosition( 1, 1 )
  oCell.setString( "1234" )
  oTextCursor = oCell.createTextCursor()' <--
  oTextCursor.gotoStart( False )
  oTextCursor.gotoEnd( False )
  oTextCursor.goLeft( 2, True )
  MsgBox oTextCursor.getString()
End Sub

goLeft メソッドの二つ目の引数に True をとって,後ろから二文字を選択して表示しています。"34" と表示されます。getString() メソッドは選択した文字列を取得するメソッドです。

文字の入力と取得 Edit

テキストカーソルで文字を取得したり入力するには,getString() と setString メソッドを使用します。

Sub textcursor_3
Dim oCell As Object
Dim oTextCursor As Object

  oCell = ThisComponent.Sheets( 0 ).getCellByPosition( 1, 1 )
  oCell.setString( "1234" )
  oTextCursor = oCell.createTextCursor()
  With oTextCursor
    .gotoStart( False )
    .setString( "0" )
    .goRight( 2, True )
  End With
  MsgBox oTextCursor.getString()
End Sub

上のコードでは "0" が文字列の先頭に入力されて "01234" になり,"012" と表示されます。goRight メソッドでは二文字しか選択していませんが,三文字表示されました。これは,先に入力した文字が選択状態だったことを示しています。前から二文字取得するには, gotoStart( False ) を入れておく必要があります。

setString メソッドは,選択中の字列を置換することも出来ます。

Sub textcursor_4
Dim oCell As Object
Dim oTextCursor As Object

  oCell = ThisComponent.Sheets( 0 ).getCellByPosition( 1, 1 )
  oCell.setString( "1234" )
  oTextCursor = oCell.createTextCursor()
  With oTextCursor
    .gotoStart( False )
    .gotoEnd( True )
    .goLeft( 2, True )
    .setString( "ab" )
  End With
  MsgBox oTextCursor.getString()
End Sub

後ろから二文字の "34" が "ab" に置換されます。

プロパティー Edit

選択した文字列の部分だけのプロパティーを設定することが出来ます。上付きや下付きなどさまざまなプロパティーを設定できます。

まず,上付きと下付きです。

Sub textcursor_5
Dim oCell As Object
Dim oTextCursor As Object

  oCell = ThisComponent.Sheets( 0 ).getCellByPosition( 1, 1 )
  oCell.setString( "1234" )
  oTextCursor = oCell.createTextCursor()
  With oTextCursor
    .gotoStart( False )
    .goRight( 1, True )
    .setPropertyValue( "CharEscapement", -101 )
    .setPropertyValue( "CharEscapementHeight", 58 )
    .gotoEnd( False )
    .goLeft( 1, True )
    .setPropertyValue( "CharEscapement", 101 )
    .setPropertyValue( "CharEscapementHeight", 58 )
  End With
  MsgBox oTextCursor.getString()
End Sub

"1" が下付きに, "4" が上付きになります。

CharEscapement プロパティーが "0" のときは普通です。上付きには "101" を,下付きには "-101" を指定します。CharEscapementHeight プロパティーには相対フォントサイズを % で指定します。アプリケーションのデフォルト値は 58 % です。このプロパティーを指定しなければ,文字が小さくならないので上付きや下付きに見えません。

そのほかのプロパティーについてはプロパティーを見てください。残念ながら多すぎて一つずつ取り上げられません。


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