Top > OOoBasic > Calc > contents
*セルの値 [#e40db99a]

セルへ「数値」、「数式」、「文字列」を入力,取得してみます。取り扱うセルオブジェクトを取得してある場合です。セルオブジェクトの取得はこちら。

#contents
**セルへの入力 [#g55f0566]

セルオブジェクトに上記のものに関するプロパティーは次のものです。

,プロパティー,==
,数値,''Value''
,数式,''Formula''
,文字列,''String''

文字列の取得は ''Text'' プロパティーではセルオブジェクトから直接取得することはできません。

セル内の文章の配置が「標準」であれば,「数値」は「右揃え」と「文字列」は「左揃え」になるのですぐに確認できます。また,半角数字のみがセルに「文字列」として入力されている場合は数式バーの表示がシングルクウォートを伴って「 '123 」などのように表示されます。
**数値と数式と文字列 [#of82ecf0]

全部一度に取り扱います。とりあえず,次のコードを実行してみます。

 Sub cell_value_1()
   Dim oCell1 As Object, oCell2 As Object
   Dim oCell3 As Object, oSheet As Object
   
   oSheet = ThisComponent.Sheets(0)
   oCell1 = oSheet.getCellRangeByName( "B1" )
   oCell2 = oSheet.getCellRangeByName( "B2" )
   oCell3 = oSheet.getCellRangeByName( "B3" )
   oCell1.Value = 1000
   oCell2.Value = 50
   oCell3.Formula = "=SUM(B1:B2)"
 End Sub

全て数値が表示されます。「数式」は文字列の最初に「=」をつけておきます。

 Sub cell_value_2()
   Dim oCell4 As Object, oCell5 As Object
   Dim oCell6 As Object, oSheet As Object
   
   oSheet = ThisComponent.Sheets(0)
   oCell4 = oSheet.getCellRangeByName( "B5" )
   oCell5 = oSheet.getCellRangeByName( "B6" )
   oCell6 = oSheet.getCellRangeByName( "B7" )
   oCell4.String = "abc"
   oCell5.String = 10000
   oCell6.Value = "123XYZ456"
 End Sub

"B5" には文字列が,"B6" にはシングルクウォートを伴って文字列として表示されます。 Basic の数値を ''String'' プロパティーで設定すると,文字列となります。

"B7" では数値として "123" が表示されます。文字列の前から数値として認識できる部分のみが用いられます。
**取得 [#d4ee8f1f]

セルから「数値」、「数式」、「文字列」を取得するにはプロパティーを用いるだけです。 ''String'' プロパティーでは数書式設定されて表示される文字列が取得できます。(オプション設定で数式を表示にしていても ''String'' プロパティーでは取得できません)

 Sub cell_value_3()
 Dim oCell As Object, oSheet As Object
   oSheet = ThisComponent.Sheets(0)
   oCell = oSheet.getCellRangeByName( "A2" )
   oCell.Value = 100.0005
   MsgBox oCell.String
 End Sub

表示される文字列は数書式設定によって違いますが,標準の場合は "100" と表示されます。

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