VBAで生年月日から、年度末時点で何歳になっているのか計算する方法です。
サンプルソースコード
コードの解説
関数の引数は生年月日(日付型)です。
実行日の年度末日付を求める
まず年度末日は3月31日なので定型文字列として”3/31″を作成します。
その後、現在月に応じて年度を付加した年度末日を作成します。
- 現在日が4月以降なら年度末日は翌年の3月31日
- 現在日が3月以前なら年度末日は現在年の3月31日
生年月日と年度末日の年の差異を求める
DateDiff()関数を使って、2つの日付の年の差異を求めます。
DateDiff()関数の第一引数”yyyy”は年の差異を求めるので、4月1日~12月31日生まれの人も3月31日に1歳年齢が上がってしまいます。
例
1979/4/1生まれの人と1980/3/1生まれの人は同級生(年度末時点の年齢は同じ)ですが、Datediff()関数で年の差異を求めると4/1生まれの人の年齢が1歳年上になってしまいます。
このため、4月以降の生年月日の人は計算結果の年から1マイナスします。
現在日と生年月日で年齢を求める際も、現在日が誕生日を過ぎたのかどうかを意識して計算する必要があります。
単純に年の差異を求めるだけではNGですので気を付けましょう。
ABOUT ME