VBAで日付(年月日)を取得する方法!4つの関数を全て網羅!

エクセルで日付を扱いたいことってありますよね。

例えば、20年後は何年かなーなんて計算してみたり、気になるあの人の年齢を計算してみたり。

エクセルのワークシート上でもVBAでも、日付(年月日)を取得する方法を知っておくのに越したことはありません。

そこでこの記事では、「VBAで日付を取得する方法」について基本的な4つの関数を解説します。

ちなみに、ここで解説する方法を利用して年齢計算をする記事もございます。数え年・満年齢・学齢の計算に対応していますので、ぜひこちらも合わせてご覧くださいね。

1.年月日を全て取得するDate関数

こんにちは。エクセルマン・ブリーダーのしもむぎ(@re_znd13)です。

まずは、最も基本となるDate関数を取り上げます。

エクセルのワークシート上で使える関数にToday関数がありますが、このDate関数はVBAで同じ働きをする関数です。今日の日付を取得するものですね。

使い方は簡単。

引数は必要ありませんので、以下のようなコードで今日の日付を取得できます。

Sub 年月日取得()
    MsgBox Date
End Sub

メッセージボックスに今日の日付が表示されるはずです。

2.年を取得するYear関数

ここからは、日付を分解して取得する関数たちを紹介します。

まずは「年」を取得するYear関数。

以下のコードのように、引数に日付を入れて使用します。Dateを引数に入れていますが、ここは日付を表す値や文字列を指定しても同様に「年」が取得できます。

Sub 年取得()
    MsgBox Year(Date)
End Sub

今日の「年」が表示されたでしょうか。

3.月を取得するMonth関数

次は「月」を取得するMonth関数です。

Year関数と同様に、引数に日付を指定して使用します。

Sub 月取得()
    MsgBox Month(Date)
End Sub

今日の「月」が表示されたと思います。

4.日を取得するDay関数

最後に「日」を取得するのがDay関数です。

使い方はYear関数・Month関数と同様です。コードは以下のようになります。

Sub 日取得()
    MsgBox Day(Date)
End Sub

5.まとめ

この記事では「VBAで日付を取得する方法」について解説しました。

いかがでしたか?Date関数のように年月日を取得する関数と、それらを分解して年・月・日をそれぞれ取得する関数がありますので、用途に応じて使い分けたいですね。

ちなみに、年齢計算を解説したこちらの記事では、Year関数・Month関数・Day関数を駆使しています。参考にされてくださいね。