CalAgeFromBirth|生年月日から正確な年齢を計算 | Excel VBA
- yuji fukami
- 2024年12月28日
- 読了時間: 2分
更新日:1月4日

<概要 (年齢 計算 VBA)>
CalAgeFromBirth は、生年月日(Date型)を引数として受け取り、
今日の日付を基準に「満年齢」を正確に計算する Excel VBA 用の汎用プロシージャです(年齢 計算 VBA)。
DateDiff("yyyy") だけでは誕生日を迎えていない場合でも年齢が加算されてしまうため、
本プロシージャでは「今年の誕生日を迎えているかどうか」を DateSerial で判定し、
未到達の場合は年齢を 1 歳減算するロジックを採用しています。
名簿管理、従業員情報、顧客管理、アンケート集計など、
年齢を扱う多くの業務でそのまま再利用できる安全性の高い関数です。
<実行サンプル>
実行サンプルの実行結果は次の通りとなります。本日(2025年12月31日)での計算結果となります。

実行結果では、それぞれの生年月日に対して
「今日時点での満年齢」がイミディエイトウィンドウに表示されます。
誕生日をすでに迎えている場合は DateDiff の結果そのままの年齢が返り、
誕生日がまだ来ていない場合は 1 歳差し引かれた値が返されます。
これにより、単純な年数差ではなく、
実務で必要とされる「正確な年齢計算」が実現できます。
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。

