kurukuru-papaのブログ

主に、ソフトウェア開発に関連したメモを書き溜めたいと思います。

指定曜日での直近の日付の取得関数

まあ、あまり使うことはないと思いますが、ある基準日から、指定された曜日で、最も近い未来日を取得する関数を作成しました。

' 指定曜日での直近の日付
' argDate - 基準日
' argWeek - 曜日(1:日曜日、…、7:土曜日)
' 2006/11/05 根本 新規作成
Public Function U_GetNearestDateAtWeek(argDate As Date, argWeek As Integer) As Date
    Dim tmpDate As Date
    Dim count As Integer
    Dim loopFlag As Boolean
    Dim i As Integer
    
    ' 入力チェック
    If argWeek < vbSunday Or vbSaturday < argWeek Then
        U_GetNearestDateAtWeek = Null
        Exit Function
    End If
    
    tmpDate = argDate
    loopFlag = True
    Do While loopFlag
        tmpDate = tmpDate + 1
        If WorksheetFunction.weekday(tmpDate) = argWeek Then
            loopFlag = False
        End If
    Loop
    
    U_GetNearestDateAtWeek = tmpDate
End Function