年齢を計算する関数の作成

解説

年齢計算は期間を計算する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

(この項終わり)