【VBA】Year関数の構文と使用例
更新日:2023/12/01
VBAのYear関数は指定した日付から年を、4桁の整数で返します。
ここでは、Year関数の構文と汎用的な使い方2つとExcelセルおよびAccessのフィールドからYearを取得する方法の計4つの使用例を紹介します。
Year関数の構文
Day関数の構文は、次のようになっています。
Year( date )
- date:
Date関数等で取得した日付型(Variant/Date)または、日付を表す文字列または数式を指定。
Year関数の使用例
Year関数の使用例を4つ紹介します。
Date型から取得
Date型の変数からYear関数で年を取得するコード例です。
Sub yearSample1()
Dim date1 As Date, date2 As Date
' 現在の日付
date1 = Date
' 日付を指定
date2 = #10/10/2000#
Debug.Print date1 & " の年は " & Year(date1)
Debug.Print date2 & " の年は " & Year(date2)
End Sub
実行すると、イミディエイトウィンドウに次のような結果が表示されます。
2023/10/12 の年は 2023
2000/10/10 の年は 2000
年を2桁で取得
Year関数で取得した年を2桁で表示します。
Sub yearSample2()
Dim date1 As Date, date2 As Date
date1 = #10/21/2000#
date2 = #12/3/2023#
Debug.Print date1 & " の年2桁は " & Right(Year(date1), 2)
Debug.Print date2 & " の年2桁は " & Right(Year(date2), 2)
End Sub
次のコードで年を4桁から2桁に整形しています。
Right(Year(date1), 2)
これはRight関数を使用して、右(後ろ)から2文字を切り出しています。
上記コードの結果は、次のようになります。
2000/10/21 の年2桁は 00
2023/12/03 の年2桁は 23
Excelセルから取得
次のコードは、日付が入力されたセルからYear関数で日付の年を取得しています。
Sub yearSample3()
Dim cell1 As Range, cell2 As Range
With Sheets("sheet1")
Set cell1 = Sheets("sheet1").Cells(2, 2)
Set cell2 = Sheets("sheet1").Cells(3, 2)
End With
cell1.Offset(0, 2).Value = Year(cell1.Value) & "年"
cell2.Offset(0, 2).Value = Year(cell2.Value) & "年"
End Sub
次のようなシートに対して上記のコードを実行します。
結果は次のようになります。
Accessで日付フィールドから年を取得
次のようなAccess上で作成した日付型のフィールドデータを持っているテーブルから各データの年を取得します。
Sub yearSample4()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("サンプルテーブル", dbOpenTable)
With rs
Do Until .EOF
Debug.Print .Fields("日付フィールド") & _
"⇒" & _
Year(.Fields("日付フィールド")) & _
"年"
.MoveNext
Loop
End With
rs.Close: Set rs = Nothing
Set db = Nothing
End Sub
実行すると、イミディエイトウィンドウに次のように表示されます。
2023/12/01⇒2023年
2021/11/05⇒2021年
1999/10/10⇒1999年
1975/08/08⇒1975年
更新日:2023/12/01
関連記事
スポンサーリンク
記事の内容について
こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。