このページでは、日付を操作する関数のポイントを解説する。
Year関数のポイント
Year関数は、日付から西暦年を取り出して返す。次のプロシージャを実行すると、メッセージボックスに「2017」と表示される。
Sub Test()
MsgBox Year(#2/6/2017#)
End Sub
Now関数と組み合わせて使うことも多い。
'2019と表示される(現在日時が 2019年2月12日 の場合)
Sub Test()
MsgBox Year(Now)
End Sub
引数に和暦を指定することもできる。ただし、その場合でもYear関数が返すのは西暦年だ。
'2018と表示される
Sub Test()
MsgBox Year("平成30年12月2日")
End Sub
Month関数のポイント
Month関数は、日付から月を取り出して返す。次のプロシージャを実行すると、メッセージボックスに「2」と表示される。
'2と表示される
Sub Test()
MsgBox Month(#2/6/2017#)
End Sub
「02」ではなく「2」と表示されることがポイントだ。月を表す数値が1桁の場合は、その1桁のみを返す(ゼロはつかないということ)。
「02」のように先頭にゼロを付けたい場合は、Format関数を合わせて使用すればいい。
Sub Test()
MsgBox Format(Month(#2/6/2017#), "00")
End Sub
Format関数については、あとで別ページを追加する。
Day関数のポイント
Day関数は、日付から日を取り出して返す。次のプロシージャを実行すると、メッセージボックスに「6」と表示される。
'6と表示される
Sub Test()
MsgBox Day(#2/6/2017#)
End Sub
Month関数と同じで、日を表す数値が1桁の場合は、その1桁のみを返す(ゼロはつかない)。
関数名を間違いやすいと思うので注意したい。Date関数ではなくDay関数だ。
なお、Date関数は現在の日付を返す。

Date関数、Time関数、Now関数のポイント
「Date関数」「Time関数」「Now関数」の3つは日時を操作する関数だ。これらの関数の基本的な使い方とVBAエキスパートのポイントを、このページで説...
練習問題
次のプロシージャを実行したところ、メッセージボックスに「06」と表示された。空欄【1】【2】に当てはまる語句として正しいものはどれか。次の中から1つ選択しなさい。
Sub Test()
MsgBox 【 1 】(【 2 】(#2/6/2017#), "00")
End Sub
- 【1】Mid
【2】Day - 【1】Mid
【2】Date - 【1】Format
【2】Day - 【1】Format
【2】Date
正解を見る
3
コメント