2011年5月29日日曜日

日付の計算

Excel の場合、DateAdd 関数や DateDiff 関数のように、日付の加算や
間隔を求める関数が準備されているが、Calc Basic の場合は、見当た
らない。

Excel のように高機能ではないが、日にち単位だけであれば、DateValue
関数を使用して、下記の通り、ユーザー定義関数を作ることができる :
  
Function  DateDiff(ByVal strDate1 As String, _
                                 ByVal strDate2 As String) As Long
       DateDiff = DateValue(strDate2) - DateValue(strDate1)
End Function
  
Function DateAdd(ByVal lngInterval As Long, _
                                 ByVal strDate As String) As String
       DateAdd = DateValue(strDate) + lngInterval
End Function
  
この関数を使って、下記プロシージャを実行すると、セル "A1" には -5、
セル "A2" には "2011/06/02" がそれぞれ代入される :
  
Sub ExampleFunctionTest()
       Dim objSheet As Object
       Dim objCell As Object

       objSheet = ThisComponent.CurrentController.ActiveSheet
       '
       objCell = objSheet.getCellRangeByName("A1")
       objCell.Value = DateDiff("2011/6/2", "2011/5/28")
       '
       objCell = objSheet.getCellRangeByName("A2")
       objCell.String = DateAdd(5, "2011/5/28")
End Sub

0 件のコメント:

コメントを投稿