Year関数、Month関数、Day関数のポイント

このページでは、日付を操作する関数のポイントを解説する。

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. 【1】Mid
    【2】Day
  2. 【1】Mid
    【2】Date
  3. 【1】Format
    【2】Day
  4. 【1】Format
    【2】Date

正解を見る

3

コメント