【ACCESS VBA】生年月日から年齢を求めるには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、生年月日から年齢を求める方法をご紹介します。

生年月日から年齢を求める

使用する関数

DateDiff関数

【ACCESS VBA】2つの指定した日付の間隔を求めるには?

Date関数

Date

説明
現在のシステムの日付(パソコンの日付)を返します。

IIf関数

IIf(expr , truepart , falsepart)

説明
式の評価によって、2つの値(True、False)のいずれか1つを返します。
指定項目 必須 説明
expr

評価する式を指定します。
truepart 評価する式(expr)がTrueの場合に、設定する値または式を指定します
falsepart 評価する式(expr)がFalseの場合に、設定する値または式を指定します。

Format関数

Format(expression [, format] [, firstdayofweek] [, firstweekofyear])

説明
引数expressionの値を、引数formatで指定した書式に変換した値を返します。
指定項目 必須 説明
expression もとの値を指定します。
format 有効な名前付き書式、またはユーザー定義書式を指定します。
日付・時刻のユーザー定義書式は、以下の表になります。
firstdayofweek 週の始まりの曜日を表す定数または値を指定します。
省略した場合は、日曜日となります。
指定する定数または値は、以下の表になります。
firstweekofyear
年度の第1週を表す定数または値を指定します。
省略した場合は、1月1日を含む週が第1週となります。
指定する定数または値は、以下の表になります。

引数「format」に指定する記号(日付・時刻

記号 内容
: 時刻の区切り記号
/ 日付の区切り記号
d 日の先頭に「0」を付けないで表示(1〜31)
dd 日の先頭に「0」を付けて表示(01〜31)
m 月の先頭に「0」を付けないで表示(1〜12)。
mm 月の先頭に「0」を付けて表示(01〜12)。
yy 西暦の年を下2桁の数値で表示 (00〜99)
yyyy 西暦の年を4桁の数値で表示(100〜9999)
h 時の先頭に「0」を付けないで表示(0〜23)
hh 時の先頭に「0」を付けて表示(00〜23)
n 分の先頭に「0」を付けないで表示(0〜59)
nn 分の先頭に「0」を付けて表示(00〜59)
s 秒の先頭に「0」を付けないで表示(0〜59)
ss 秒の先頭に「0」を付けて表示(00〜59)

引数「firstdayofweek」に指定する定数と値

定数 内容
vbSunday
1 日曜日 (既定値) 
vbMonday 月曜日
vbTuesday 3 火曜日
vbWednesday 4 水曜日
vbThursday 5 木曜日
vbFriday 6 金曜日
vbSaturday 7 土曜日

引数「firstweekofyear」に指定する定数と値

定数 内容
vbFirstJan1
1 1月1日を含む週を年度の第1週とする (既定値) 
vbFirstFourDays 2 7日のうち、少なくとも4日が新年度に含まれる週を年度の第1週とする
vbFirstFullWeek 3 全体が新年度に含まれる最初の週の値を、年度の第1週とする

年齢を求める式

IIf(Format(birthday, "mm/dd") > Format(Date, "mm/dd"), DateDiff("yyyy", birthday, Date) - 1, DateDiff("yyyy", birthday, Date))

式の解説
生年月日(birthday)と現在日(Date)から年齢を求める基本の式は、「DateDiff("yyyy",birthday,Date)」で求めることができます
しかし、この式では誕生月に関係なく計算されてしまいます。
誕生月を考慮するにはまず、「Format(birthday,"mm/dd")>Format(Date(),"mm/dd")」という条件式を指定します。
この条件式では、生年月日(birthday)と現在日(Date)を「月日」で比較し、
生年月日のほうが大きい場合は、「DateDiff("yyyy",birthday,Date)-1」のように、年齢を求めてから「-1」します。これは、まだ誕生日を迎えていないためです。
生年月日のほうが小さい場合は、「DateDiff("yyyy",birthday,Date)」で年齢を求めます。

サンプルプログラム

1 Subプロシージャ「Sample」を作成。
6
誕生日を、日付型変数「birthday」に代入します。
8 誕生日と現在日から年齢を求め、数値型変数「value」に代入します。
10 変数「value」の値を、メッセージボックスに表示します。

実行結果

関連記事

最後まで読んでいただき、ありがとうございました!