*セルの値 [#e40db99a] セルへ「数値」、「数式」、「文字列」を入力,取得してみます。取り扱うセル オブジェクトを取得してある場合です。セル オブジェクトの取得はこちら。 セルへ「数値」、「数式」、「文字列」を入力,取得してみます。取り扱うセルオブジェクトを取得してある場合です。セルオブジェクトの取得はこちら。 #contents **セルへの入力 [#g55f0566] セル オブジェクトに上記のものに関するプロパティーは次のものです。 セルオブジェクトに上記のものに関するプロパティーは次のものです。 ,プロパティー,== ,数値,''Value'' ,数式,''Formula'' ,文字列,''String'' 文字列の取得は ''Text'' プロパティーではセル オブジェクトから直接取得することはできません。 文字列の取得は ''Text'' プロパティーではセルオブジェクトから直接取得することはできません。 セル内の文章の配置が「標準」であれば,「数値」は「右揃え」と「文字列」は「左揃え」になるのですぐに確認できます。また,半角数字のみがセルに「文字列」として入力されている場合は数式バーの表示がシングル クウォートを伴って「 '123 」などのように表示されます。 セル内の文章の配置が「標準」であれば,「数値」は「右揃え」と「文字列」は「左揃え」になるのですぐに確認できます。また,半角数字のみがセルに「文字列」として入力されている場合は数式バーの表示がシングルクウォートを伴って「 '123 」などのように表示されます。 **数値と数式と文字列 [#of82ecf0] 全部一度に取り扱います。とりあえず,次のコードを実行してみます。 #code(ob){{ Sub cell_value_1() 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 }} End Sub 全て数値が表示されます。「数式」は文字列の最初に「=」をつけておきます。 #code(ob){{ Sub cell_value_2() 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'' プロパティーで設定すると,文字列となります。 End Sub "B5" には文字列が,"B6" にはシングルクウォートを伴って文字列として表示されます。 Basic の数値を ''String'' プロパティーで設定すると,文字列となります。 "B7" では数値として "123" が表示されます。文字列の前から数値として認識できる部分のみが用いられます。 **取得 [#d4ee8f1f] セルから「数値」、「数式」、「文字列」を取得するにはプロパティーを用いるだけです。 ''String'' プロパティーでは数書式設定されて表示される文字列が取得できます。(オプション設定で数式を表示にしていても ''String'' プロパティーでは取得できません) #code(ob){{ Sub cell_value_3() Dim oCell As Object, oSheet As Object 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 }} End Sub 表示される文字列は数書式設定によって違いますが,標準の場合は "100" と表示されます。 |