年齢を求める
Excel VBA で年齢を求めるには、主に生年月日から今日の日付との差を計算します。
Excel には、日付の計算に便利な関数がいくつか用意されています。
DateDiff 関数を使った方法
DateDiff 関数は、2つの日付の間の日数、月数、年数などの差を計算する関数です。
VB.Net
Function GetAge(BirthDate As Date) As Integer
GetAge = DateDiff("yyyy", BirthDate, Date)
End Function
コードは注意してご使用ください。
"yyyy": 年数を取得する指定
BirthDate: 生年月日が入力されるセル
Date: 今日の日付
使い方:
セルに =GetAge(A2) のように入力すると、A2セルに入力された生年月日からの年齢が計算されます。
注意点:
生年月日が今日よりも未来の日付の場合、誤った結果になる可能性があります。
うるう年などの影響で、実際の年齢と計算結果が異なる場合があります。
2. Year 関数と DateDiff 関数を使った方法
より正確な年齢計算を行うために、Year 関数と DateDiff 関数を組み合わせて使う方法もあります。
VB.Net
Function GetAccurateAge(BirthDate As Date) As Double
Dim BirthYear As Integer
Dim CurrentYear As Integer
BirthYear = Year(BirthDate)
CurrentYear = Year(Date)
GetAccurateAge = CurrentYear - BirthYear - IIf(Date < DateSerial(CurrentYear, Month(BirthDate), Day(BirthDate)), 1, 0)
End Function
コードは注意してご使用ください。
Year(BirthDate): 生まれ年の取得
Year(Date): 現在の年の取得
IIf: 条件分岐を行い、誕生日がまだ来ていない場合は年齢から1を引く
使い方:
セルに =GetAccurateAge(A2) のように入力します。
ユーザー定義関数を作成し、シート上で利用する方法
上記で作成した関数をユーザー定義関数として登録することで、Excel シート上で直接関数として利用できます。
Visual Basic Editor を開きます。
挿入 タブから モジュール を選択します。
上記の関数コードを貼り付けます。
Excel シートに戻り、セルに =GetAge(A2) のように入力します。
その他
うるう年の考慮: より正確な計算を行うためには、うるう年の判定ロジックを追加する必要があります。
小数点以下の表示: 年齢の小数点以下を表示したい場合は、関数の戻り値の型を Double にします。
エラー処理: 生年月日が空欄の場合や、不正な日付が入力された場合のエラー処理を追加できます。
まとめ
Excel VBA で年齢を計算する方法はいくつかありますが、DateDiff 関数を使うのが最もシンプルです。
より正確な計算が必要な場合は、Year 関数と DateDiff 関数を組み合わせた方法や、うるう年などを考慮した複雑なロジックを組み込むことができます。
ご自身のデータや目的に合わせて、最適な方法を選択してください。
この記事が気に入ったらサポートをしてみませんか?