年齢を計算する
Access には、特定の日付に基づいて人の年齢または事物の経過時間を計算する関数はありません。 このトピックでは、特定の日付に基づいて年齢を計算する 2 つのカスタム関数 Age および AgeMonths の Visual Basic for Applications (VBA) コードを示します。
次の関数は、特定の日付から今日の日付までの年齢 (経過時間) を年単位で計算します。
Function Age (varBirthDate As Variant) As Integer
Dim varAge As Variant
If IsNull(varBirthdate) then Age = 0: Exit Function
varAge = DateDiff("yyyy", varBirthDate, Now)
If Date < DateSerial(Year(Now), Month(varBirthDate), _
Day(varBirthDate)) Then
varAge = varAge - 1
End If
Age = CInt(varAge)
End Function
次の関数は、特定の日付によって指定される最後の月からの経過月数を計算します。 指定された日付が誕生日の場合、この関数は最後の誕生日からの月数を返します。
Function AgeMonths(ByVal StartDate As String) As Integer
Dim tAge As Double
tAge = (DateDiff("m", StartDate, Now))
If (DatePart("d", StartDate) > DatePart("d", Now)) Then
tAge = tAge - 1
End If
If tAge < 0 Then
tAge = tAge + 1
End If
AgeMonths = CInt(tAge Mod 12)
End Function
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。