年齢を計算する関数の作成
解説
年齢計算は期間を計算するDataDiff関数が便利ですが、DataDiff関数だけでは正確な年齢計算が出来ません。
年齢は該当年の誕生日が来た後に1年となるためです。
そこで手順としては、先ず年の経過を計算し、次に誕生日(月日)を経過しているかの比較を行います。実例として以下に
2つの年齢計算関数を掲載しました。どちらも同じ結果が得られます。
誕生日前かどうかの計算処理に論理式を使った例
Function 年齢計算(生年月日 As Date) As Integer
年齢計算 = DateDiff("yyyy",生年月日,Now()) + _
Int(Format(Now(), "mmdd")<Format(生年月日, "mmdd"))
End Function
二つの引数と誕生日前かどうかの計算処理にIF文を使っている例
Function 年齢計算(生年月日 As Date , 基準日 As Date)As Integer
Dim 試算 As Integer
試算 = DateDiff("yyyy", 生年月日,基準日)
If Format(生年月日,”mmdd”) > Format(基準日,”mmdd”) Then
年齢計算 = 試算-1
End If
年齢計算 = 試算
End Function
(この項終わり)