VBA関数のYear関数、Month関数、Day関数の使い方についてご説明します。
英語の意味そのままですが、Year関数は年を、Month関数は月を、Day関数は日を取得する関数になります。
「2019/01/01」のような日付からそれぞれ、年、月、日を取得したい際に使用します。
日付型だけではなく、日付として有効な文字列でも取得可能です。
「DateSerial関数」と併用して利用するなどの頻度が高いです。
時刻に関しては「Hour、Minute、Second関数の使い方」をご覧ください。
その他、日付に関しては「Date関数」、時間に関しては「Time関数」、日時は「Now関数」などがあります。
1.Year、Month、Day関数の使い方
Year、Month、Day関数はそれぞれ年、月、日を返します。
次のように記述します。
Year(日付)
Month(日付)
Day(日付)
「日付」にはそれぞれ年、月、日を取得したいVariant型、日付型、文字列型の日付を指定します。
2.サンプルコード
日付型でも文字列型でも同じ結果を取得出来ます。
Sub Smaple1()
'日付型
Dim MyDate As Date
MyDate = "2019/10/20"
Debug.Print MyDate
Debug.Print Year(MyDate)
Debug.Print Month(MyDate)
Debug.Print Day(MyDate)
'文字列型
Dim MyStr As String
MyStr = "2019/10/20"
Debug.Print MyStr
Debug.Print Year(MyStr)
Debug.Print Month(MyStr)
Debug.Print Day(MyStr)
End Sub
DateSerial関数と組み合わせると次のようになります。
月に+10しているので、10か月後を取得出来ます。
Sub Smaple2()
'日付型
Dim MyDate As Date
MyDate = "2019/10/20"
'月に+10します
Debug.Print DateSerial(Year(MyDate), Month(MyDate) + 10, Day(MyDate))
End Sub