VBAで誕生日から年齢を計算したり日付から経過日数を計算する処理
ワークシート関数のDATEDIF 関数を利用する。
・Evaluate メソッドを使用することでVBAでDATEDIF 関数などのワークシート関数を利用することができる。(調査中)
DateDiff(時間単位,日付1,日付2)を利用する。
・DateDiffで時間単位を「yyyy」にし、年齢を求めようとすると月や日を考慮したものにならないので、DateDiffで計算後、日付1と日付2を比較し、TRUE(0)・FALSE(-1)を利用して調整する。
<例>
Dim birthday As Date
Dim age As Integer
birthday = 2000/1/1
age = DateDiff(“yyyy”, birthday, Date) + (Format(birthday, “mmdd”) > Format(Date, “mmdd”))
Cells(1, 2).Value = age
・Dateで今日の日付が取得できる。
・Formatにmmddを指定して月日のみを取得する
<時間単位>
yyyy 年
q 四半期
m 月
y 年間通算日
d 日
w 週日
ww 週
h 時
n 分
s 秒