mdlDateTimeEx
Option Compare Database
Option Explicit
'前営業日を返す
Public Function PreviousBusinessDay(varDate As Variant) As Variant
On Error GoTo ErrorHandler
'前日
varDate = DateAdd("d", -1, varDate)
'1日ずつ遡って、平日を探す
Do While IsHoliday(varDate)
varDate = DateAdd("d", -1, varDate)
Loop
PreviousBusinessDay = varDate
Exit Function
ErrorHandler:
Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile, Err.HelpContext
End Function
Private Sub Test_PreviousBusinessDay()
Debug.Assert PreviousBusinessDay(#7/17/2023#) = #7/14/2023#
End Sub