エクセルVBAを自作関数を使って生年月日から年齢を自動で計算

コンピューターのお仕事
スポンサーリンク

仕事で年齢を計算することもよくあるはずです。今回紹介するexcel VBAのコードは年齢計算をします。関数として登録しておくと必要な時に呼び出せるので便利です。
プロシージャ内でもエクセルシートで関数としても使えます。

スポンサーリンク

生年月日から年齢を自動計算するソースコード

Public Function GetAge(ByVal Birthday As Date, ByVal Hiduke As Date) As Long
    GetAge = DateDiff("yyyy", Birthday, Hiduke) + _
             (Format(Birthday, "mm/dd") > Format(Hiduke, "mm/dd"))
End Function

VBAのコピペ方法はこちらをご参照ください。

年齢計算をプロシージャ内で関数として使う

プロシージャ内では下記のようにすると年齢計算します。date型の変数に代入すると扱いがかんたんです。

年齢[int]= GetAge(生年月日[引数1],日付[引数2])

今日何歳になるか調べるには[引数2]を今日を表す変数dateすればOKです。 また、[引数2]を今日の日付ではなく別の日にすることで、その日に何歳だったかを調べることもできます。

年齢計算をエクセルシートで関数として使う。

今回の関数は、エクセルシート上で数式バーに入力して使うことも可能です。
しかしエクセルシートで関数として使うには、いくつかの手順があります。下記の手順を実行してください。

コードを貼り付けるのは標準モジュール。

excel vbaのプロシージャで関数を利用するのであれば、コードを貼り付ける場所はそれほど気にかける必要はありませんが、エクセルシートで使うならば標準モジュールにコードを貼り付ける必要があります。
下記画像のとおりプロジェクトウィンドウに標準モジュールがない場合は「挿入」メニューから標準モジュールを呼び出せます。

マクロが使える形式でファイルを保存が重要

ソースコードを貼り付けたら、マクロが使えるxlsmかxls形式でエクセルを名前をつけて保存します。(拡張子が xlsmかxls形式 になっていることを確認してください)保存場所や保存名は好きにしてOKです。

セルに下記のように数式を打ち込んで使えることを確認。

 =GetAge(生年月日[引数1],今日の日付[引数2])

まとめ

今回ご紹介した生年月日から年齢を自動計算するマクロは仕事で使うことが多いと思うので関数に登録しておくと応用が効くので便利、年齢計算をその場しのぎに早見表で確認している人なんかにおすすめです。

今回作成したexcelのマクロはコピペ自由なので是非使ってみてください。

また、使い方がわからない場合はコメントなどでご連絡ください。

コメント

タイトルとURLをコピーしました