当月の初日と最終日
久しぶりにExcel VBAで、当月の初日と最終日を求める場面があった。
初日を求めるとき、昔はこんな風に書いていた。
Function FirstDay(source_date As Date) As Date FirstDay = DateSerial(Year(source_date), Month(source_date), 1) End Function
この記述でも、全く問題ないと思う。でも、少し違う書き方をしてみたくなった。
例えば、こんな感じで。
Function FirstDay(source_date As Date) As Date FirstDay = Format(source_date, "yyyy/mm/01") End Function
使用する文字数も少ないし、何より「おしゃれ」な感じがする。
よし、今後はこれで行こう。
ちなみに最終日は、こんな感じで。
初日を求めて、その翌月から1日引いている。
Function LastDay(source_date As Date) As Date LastDay = WorksheetFunction.EDate(FirstDay(source_date), 1) - 1 End Function
例えば、4/8 ⇒ 4/1 ⇒ 5/1の1日前 ⇒ 4/30 となる。
参考まで。