2011年4月23日土曜日

セルの値の取得

下記シートのセル B5、C5、D5、E5の値を取得するサンプルコードを下記に
記す :
  
  
Sub ExampleGetCellValue()
       Dim objSheet As Object
       Dim objCell As Object
       Dim strMessage As String
       objSheet = ThisComponent.CurrentController.Activesheet
       '
       objCell = objSheet.getCellRangeByName("B5")
       strMessage = strMessage & "B5の値 = " & objCell.Value & Chr$(13)
       '
       objCell = objSheet.getCellRangeByName("C5")
       strMessage = strMessage & "C5の値 = " & objCell.String & Chr$(13)
       '

       objCell = objSheet.getCellRangeByName("D5")
       strMessage = strMessage & "D5の値 = " & objCell.Value & Chr$(13)
       '
       objCell = objSheet.getCellRangeByName("E5")
       strMessage = strMessage & "E5の値 = " & objCell.String
       '
       Msgbox(strMessage)
End Sub

  
実行の結果、下記メッセージボックスが表示される :
  
  
Calc の場合、セル値を取得する場合、値が数値かそれ以外かで用いる
プロパティが異なる (らしい。後述するが、設定の場合も、同様)。
数値の場合は、Value プロパティを用いてセル値を取得し、文字列の場合
は String プロパティを用いて値を取得する。
文字列を Value プロパティで取得すると、上記メッセージボックスに表示
されている通り (D5 の値)、取得した値は 0 になってしまうようである。
数値を String プロパティで取得しても、特に問題はなさそうだが、おそらく
数字の文字列として取得されるのかも知れないので、四則演算などの計算
でエラーになる可能性がある。
数値は Value プロパティ、文字列は String プロパティでそれぞれ値を取得
するのが無難と思われる。

0 件のコメント:

コメントを投稿