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→SIerのお仕事をしています。 メーカー勤務を経て、中小企業の社内SE、フリーランスなど様々な形態で働いてきました。 業務上生まれた困った…を解決してきたTipsを備忘録も兼ねて公開しています。 困っている誰かのお役に立てれば幸いです。