Access

VBAで生年月日から年度末に何歳になっているか計算する

年度末年齢

VBAで生年月日から、年度末時点で何歳になっているのか計算する方法です。

サンプルソースコード

コードの解説

関数の引数は生年月日(日付型)です。

実行日の年度末日付を求める

まず年度末日は3月31日なので定型文字列として”3/31″を作成します。

その後、現在月に応じて年度を付加した年度末日を作成します。

  • 現在日が4月以降なら年度末日は翌年の3月31日
  • 現在日が3月以前なら年度末日は現在年の3月31日

生年月日と年度末日の年の差異を求める

DateDiff()関数を使って、2つの日付のの差異を求めます。

DateDiff()関数の第一引数”yyyy”は年の差異を求めるので、4月1日~12月31日生まれの人も3月31日に1歳年齢が上がってしまいます。

このため、4月以降の生年月日の人は計算結果の年から1マイナスします。

現在日と生年月日で年齢を求める際も、現在日が誕生日を過ぎたのかどうかを意識して計算する必要があります。

単純に年の差異を求めるだけではNGですので気を付けましょう。

ABOUT ME
アズビーパートナーズ
アズビーパートナーズ
プログラマーと社内SEとしての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。