|
▼初心者 さん:
私の使っているコード(ちょっと改)です。
'---------------------------------------------------------------
Function fxKIKANcalc(ByVal 日付S As Date, ByVal 日付E As Date) As String
Dim myDateS As Date '開始年月日
Dim myDateE As Date '終了年月日
Dim myFUGO As String '日付S>日付Eの場合、計算結果にマイナスを付ける
Dim myYY As Long '年数
Dim myMM As Long '月数
Dim myDD As Long '日数
Dim myYYs As Long '開始年
Dim myMMs As Long '開始月
Dim myDDs As Long '開始日
Dim myYYe As Long '終了年
Dim myMMe As Long '終了月
Dim myDDe As Long '終了日
If 日付S < 日付E Then
myFUGO = ""
myDateS = 日付S
myDateE = 日付E + 1
Else
myFUGO = "-"
myDateS = 日付E
myDateE = 日付S + 1
End If
myYYs = Year(myDateS)
myMMs = Month(myDateS)
myDDs = Day(myDateS)
myYYe = Year(myDateE)
myMMe = Month(myDateE)
myDDe = Day(myDateE)
myDD = myDDe - myDDs
If myDD < 0 Then
myDDs = Day(DateAdd("m", myYYe * 12 + myMMe - _
(myYYs * 12 + myMMs) - 1, myDateS))
myDD = myDDe - myDDs + Day(DateSerial(myYYe, myMMe, 0))
myMMe = myMMe - 1
End If
myMM = myMMe - myMMs
If myMM < 0 Then
myMM = myMM + 12
myYYe = myYYe - 1
End If
myYY = myYYe - myYYs
'表示形式を整える
fxKIKANcalc = myFUGO & myYY & "年" & myMM & "ヶ月" & myDD & "日"
End Function
'-------------------------------------------------------------
'注)同じ20日〜15日でも、月によって日数は違ってくる。
'例1 2003/01/20〜2004/03/15 → 01年01ヶ月25日
'例2 2003/01/20〜2004/04/15 → 01年02ヶ月27日
標準モジュールに上記コードを貼り付けて、
クエリー等から
式:fxKIKANcalc("2006/04/01","2007/05/31")
というように使用します。
参考までに。
|
|