Top > OOoBasic > Calc > text

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

#contents

**テキスト カーソル [#a5ea3649]
セル内のテキストを取り扱うにはテキスト カーソル オブジェクトを使用します。これは ''createTextCursor''() メソッドを使用して取得します。
#code(ob){{
Sub textcursor_1
Dim oSheet As Object, oCell As Object
Dim oTextCursor As Object
**テキストカーソル [#a5ea3649]
セル内のテキストを取り扱うにはテキストカーソルオブジェクトを使用します。これは, 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
}}
 End Sub
**移動 [#a8ade25d]
テキストカーソルは com.sun.star.text.XTextCursor インターフェースです。ここからのメソッドを使用してセルのテキスト内を移動します。

最後の二つは,文字列の最初と最後に移動します。次のコードで試してみます。
#code(ob){{
Sub textcursor_2
Dim oCell As Object
Dim oTextCursor As Object

 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() メソッドは選択した文字列を取得するメソッドです。
 End Sub

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

**文字の入力と取得 [#s127d3e2]
テキスト カーソルで文字を取得したり入力するには,getString() と setString メソッドを使用します。
#code(ob){{
Sub textcursor_3
Dim oCell As Object
Dim oTextCursor As Object
テキストカーソルで文字を取得したり入力するには,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
}}
 End Sub

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

setString メソッドは,選択中の字列を置換することも出来ます。
#code(ob){{
Sub textcursor_4
Dim oCell As Object
Dim oTextCursor As Object

 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" に置換されます。
 End Sub

後ろから二文字の "34" が "ab" に置換されます。 
**プロパティー [#b6b7a65e]
選択した文字列の部分だけのプロパティーを設定することが出来ます。上付きや下付きなどさまざまなプロパティーを設定できます。

まず,上付きと下付きです。
#code(ob){{
Sub textcursor_5
Dim oCell As Object
Dim oTextCursor As Object

 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
}}
 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