構文
構文は以下の通りです。
解説
Day関数は、日付を引数として受け取り、その日の日を返します。使い方は非常にシンプルで、Day関数に日付を指定するだけです。日付は、直接指定するか、変数やセル参照を利用することもできます。
使い方
使い方について幾つか紹介します。
サンプル1
セルA1に「2023/06/05」という日付が入力されている場合、以下のようにDay関数を使って日付の日部分を取得することができます。
Dim dayValue As Integer
myDate = Range("A1").Value
dayValue = Day(myDate)
この場合、dayValueには「5」という値が格納されます。
サンプル2
日付の曜日を判定することができます。例えば、特定の日付が平日か週末かを判定したい場合には、Day関数を使用して次のような条件分岐を行うことができます。
Dim dayOfWeek As Integer
myDate = Range("A1").Value
dayOfWeek = Weekday(myDate)
If dayOfWeek = 1 Or dayOfWeek = 7 Then
MsgBox "週末です"
Else
MsgBox "平日です"
End If
サンプル3
日付の加減算を行うこともできます。例えば、指定した日数だけ過去の日付や未来の日付を取得する場合には、Day関数を活用することができます。
Dim pastDate As Date
Dim futureDate As Date
currentDate = Date ' 現在の日付を取得
pastDate = DateAdd("d", -7, currentDate) ' 現在の日付から7日前の日付を取得
futureDate = DateAdd("d", 7, currentDate) ' 現在の日付から7日後の日付を取得
MsgBox "現在の日付: " & Format(currentDate, "yyyy/mm/dd")
MsgBox "過去の日付: " & Format(pastDate, "yyyy/mm/dd")
MsgBox "未来の日付: " & Format(futureDate, "yyyy/mm/dd")
上記の例では、DateAdd関数を使用して日付の加減算を行っています。第1引数には操作対象となる要素を指定し、「d」は日単位の操作を表しています。第2引数には加減算したい日数を指定し、第3引数には基準となる日付を指定します。このようにして、過去の日付や未来の日付を取得することができます。
プログラミング例
以下に、Day関数のプログラミング例を示します。
プログラミング例1
Dim myDate As Date
Dim dayResult As Integer
myDate = DateSerial(2023, 6, 5) ' 2023年6月5日を指定
dayResult = Day(myDate)
MsgBox "日の結果は " & dayResult & " です。"
End Sub
このプログラムでは、指定した日付(2023年6月5日)の日を取得し、メッセージボックスで表示します。Day関数によって取得された結果は、整数型の変数(dayResult)に代入されています。
プログラミング例2
Dim todayDate As Date
Dim dayResult As Integer
todayDate = Date
dayResult = Day(todayDate)
MsgBox "今日の日は " & dayResult & " です。"
End Sub
このプログラムでは、現在の日付を取得し、その日の日を表示します。Date関数を使用することで、現在の日付を取得することができます。
まとめ
Day関数は、Excel VBAで日付の日を取得するための便利な関数です。日付を引数として与えることで、その日の日を取得することができます。