月の最終日を取得するマクロです。 取得方法は「来月の1日 マイナス 1日」です。 12月の最終日は「翌年の1月1日 マイナス 1日」です。 閏年にも対応できると思います。
Sub thisDay()
'###############################################
'今月の最終日を取得 // 「来月の1日 - 1」が今月の最終日。
'閏年にも対応できると思います。
'###############################################
Dim DateOne '基準日
Dim YearB
Dim MonthB
Dim DayB
Dim DateStringB
Dim DateB
DateOne = Date '今日の日付 // ここをカスタマイズする。
If Month(DateOne) <> 12 Then '今月が12月でないならば、来月は「今月 + 1」
YearB = Year(DateOne)
MonthB = Month(DateOne) + 1
DayB = 1
'先月の1日を文字列にする
DateStringB = YearB & "/" & MonthB & "/" & DayB
'文字列を日付に変換。 1を引くことで、今月の最終日が取得できる。
DateB = DateValue(DateStringB) - 1
Else ' 今月が12月だったら、来年の1月になる
YearB = Year(DateOne) + 1
MonthB = 1
DayB = 1
'先月の1日を文字列にする
DateStringB = YearB & "/" & MonthB & "/" & DayB
'文字列を日付に変換。 1を引くことで、今月の最終日が取得できる。
DateB = DateValue(DateStringB) - 1
End If
MsgBox "[今月の最終日] ---> " & DateB
End Sub
|