年齢を計算する

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 のサポートおよびフィードバックを参照してください。