Top > OOobbs2 > 67

OOobbs2/67 Edit

  • サマリ: 日付データの取得について
  • 環境: Calc
  • 状態: 解決
  • 投稿者: とうし?
  • 投稿日: 2007-09-13 (木) 11:26:54

質問 Edit

セルに入っている日付データを HIDUKE = oSheet.getCellByPosition(0,9).String として取り出すと、2007/9/13となる。 実際のセルに入っているように、2007/09/13として 取り出したいのですがどうすればいいですか。

回答 Edit

  • 日付データの数値で取得したいということでしょうか。

String プロパティは表示されている書式フォーマット済みの文字列を保持するものです。Formula はセルに入力されている数式を、Value は数値としての値を保持しています。

たとえば、セル A1 に書式フォーマットYYYY/MM/DDを設定して、=TODAY() で今日の日付を取得すると 2007/09/13 の表示になります。以下のコードを実行すると

Sub Main
  oDoc = ThisComponent
  oSheet = oDoc.getSheets().getByIndex(0)
  oCell = oSheet.getCellByPosition(0,0)
  sString = oCell.String
  sFormula = oCell.Formula
  nValue = oCell.Value
  msgbox "String: " & sString & chr(10) & _
    "Formula: " & sFormula & chr(10) & _
    "Value: " & nValue
End Sub

表示結果は

String: 2007/09/13
Formula: =TODAY()
Value: 39338

セルに数式が入力されていたとしても数値として日付データを Value プロパティから取得できます。Value の値の型は double です。

この数値から特定のフォーマットに直したいときには OOo Basic のランタイム関数を利用します。Year, Month, Day, WeekDay などを利用します。ランタイム関数に関しては OOo のヘルプを参照してください。

Calc のシート関数を利用することもできます。

  • はにゃ?? 2007-09-13 (木) 13:40:07

感想,コメント,メモ Edit



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