エクセルで日付を扱いたいことってありますよね。
例えば、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関数を駆使しています。参考にされてくださいね。