VBAにて特定の日が属する月のすべての日付を取得する


はじめに

メモ書き兼テストです。
VBAにて、今月の日付すべてを取得する方法がよくわからなかったので、
サイト等参考にしながら作ったものです。
もっと簡単なものがあったり、間違っているものあれば、
ご教授いただけると幸いです。

Version

excel 2016にて作成。

コード


Function ReturnDatesOfMonth(TheDate As Date) As Collection


    Dim DatesOfMonth  As Collection
    Set DatesOfMonth = New Collection

    Dim LastDay As Date
    Dim FirstDay As Date


    LastDay = DateSerial(Year(TheDate), Month(TheDate) + 1, 0)  '今月末の日付を取得

    FirstDay = DateSerial(Year(TheDate), Month(TheDate), 0) + 1 '今月頭の日付を取得

    Dim i As Integer
    For i = 0 To DateDiff("d", FirstDay, LastDay)  'datediffで今月が何日あるかを計算

        DatesOfMonth.Add (FirstDay + i)  '今月の日付をすべて格納

    Next

    Set ReturnDatesOfMonth = DatesOfMonth


End Function

参照サイト