2011年3月24日木曜日

VBAで月末日を取得

月末日を取得するコードです

月末日とは指定月の翌月の1日から一日を引いた日付ということになります。

関数化すると下のようになります。もっとコードを端折れますが、このくらいがわかりやすいと思います。


'**********************
'SomeDayで指定した月の最終日(Long型)を取得します
'**********************
Public Function GetLastMonthDay(ByVal SomeDay As Date) As Long
GetLastMonthDay = CLng(DatePart("d", DateAdd("d", -1, Format(DateAdd("m", 1, SomeDay), "yyyy/mm/01"))))
End Function


上のコードは月末日の日にちのLong型を取得します。

Date型が欲しいときは以下のコードになります


'**********************
'SomeDayで指定した月の最終日(Date型)を取得します
'**********************
Public Function GetLastMonthDate(ByVal SomeDay As Date) As Date
GetLastMonthDate = DateAdd("d", -1, Format(DateAdd("m", 1, SomeDay), "yyyy/mm/01"))
End Function

0 件のコメント:

コメントを投稿