0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Excel VBA】Day関数|日付から「日」を取り出す方法と注意点

Last updated at Posted at 2025-07-14

Day関数の使い方と注意点

Day関数は、指定した日付から「日(1日〜31日)」の部分だけを取得する関数です。
日付の「日」部分を整数で返します。

構文

Day(日付)
  • 日付 : Date型の値、または日付として解釈可能な文字列
  • 戻り値 : 指定した日付の「日」(Integer型。1〜31)

使用例

日付から「日」を取得する

Sub Sample()
    Dim MyDate As Date
    MyDate = #1/2/2025#
    Debug.Print Day(MyDate)
End Sub

▶ 出力結果

2

Now関数の結果から日を取得する

Sub Sample()
    Debug.Print Day(Now)
End Sub

▶ 出力結果(実行が1月2日の場合)

2

日によって処理を分ける

Sub Sample()
    Dim TodayDay As Integer
    TodayDay = Day(Date)

    If TodayDay <= 15 Then
        Debug.Print "月の前半です"
    Else
        Debug.Print "月の後半です"
    End If
End Sub

▶ 出力結果(実行が1月2日の場合)

月の前半です

⚠️注意

文字列を渡す場合は、日付として解釈できる形式にする必要がある

Sub Sample()
    On Error Resume Next

    Err.Clear
    Debug.Print Day("2025.07.09")    ' 区切り文字が不正
    If Err.Number <> 0 Then Debug.Print "2025.07.09 : エラー:" & Err.Description

    Err.Clear
    Debug.Print Day("2025年13月1日") ' 13月は存在しない
    If Err.Number <> 0 Then Debug.Print "2025年13月1日 : エラー:" & Err.Description
    
    Err.Clear
    Debug.Print Day("2025/07/32")    ' 日付が存在しない
    If Err.Number <> 0 Then Debug.Print "2025/07/32 : エラー:" & Err.Description
    
    Err.Clear
    Debug.Print Day("07-2025-09")    ' 順序・区切りが不正
    If Err.Number <> 0 Then Debug.Print "07-2025-09 : エラー:" & Err.Description
    
    Err.Clear
    Debug.Print Day("明日")          ' 自然言語は無効
    If Err.Number <> 0 Then Debug.Print "明日 : エラー:" & Err.Description
    
    On Error GoTo 0
End Sub

▶ 出力結果(実行が2025年の場合)

2025.07.09 : エラー:型が一致しません。
2025年13月1日 : エラー:型が一致しません。
2025/07/32 : エラー:型が一致しません。
07-2025-09 : エラー:型が一致しません。
明日 : エラー:型が一致しません。

上記ではエラー発生時にエラーを無視して次の処理を実行するよう記述していますが、
エラーを無視する記述が無い場合、エラー時に処理が止まってしまいます。
引数に渡す内容には注意しましょう。

戻り値に「前ゼロ」は付かない

戻り値は数値であり文字列ではないため前ゼロ(例:01)は付きません。
前ゼロを付けたい場合にはFormat関数を使用しましょう。

Sub Sample()
    Debug.Print Format(Day(Now), "00")
End Sub

▶ 出力結果(2日の場合)

02

関連するVBA関数

その他のVBA関数

【Excel VBA】VBAでよく使う関数一覧&基本の使い方

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?