【VBA】DateTime.DaysInMonthの代替
2021-12-27 | VBA
VBAでDateTime.DaysInMonth的に月の日数を取得したい!可及的速やかに!
手順書
下記のような感じでVBAでも指定の月の日数を取得するにはどうすればいいのか。
Dim days As Integer
days = DateTime.DaysInMonth(2021, 12)
こうするんだよお!(勢い任せ)
Dim days As Integer
days = Day(DateSerial(2021, 12 + 1, 0))
解説
DateSerial
関数の第2引数で月を設定する際に+1
しといて、翌月を設定する。第3引数を0
に設定することで1
の前日、つまり前月月末のシリアル値を取得できる。
Day
関数でDateSerial
関数の戻り値のシリアル値から日を取得する。
感想文(まとめ)
System.Datetime
オブジェクトを取得してDateTime.DaysInMonth
を使ってやろうとしてけど上手くできなかった。できなかったし、前述のやり方の方がコードも短くVBA的にはスマートっぽい。
月の日数を取得してごにょごにょしたい人は使ってみても良いかもね!