mayu
2024/10/12 (土) 15:17:39
fc5d2@6c788
祝日を含めての許可日について の関連質問でしょうか
結論から申し上げると、関数の第二引数に負の数を指定できるようにロジックを変更すればいいでしょう
Public Function 許可日(申請日 As Variant, Optional 営業日数 As Long = 3) As Variant
Dim 営業日 As Long
Dim 増量 As Long
許可日 = 申請日
If IsNull(許可日) Or Abs(営業日数) <= 1 Then Exit Function
増量 = IIf(営業日数 > 0, 1, -1)
Do
許可日 = 許可日 + 増量
Select Case Weekday(許可日)
Case vbMonday To vbFriday
If IsNull(DLookup("祝日名", "T_祝日", "日付=#" & 許可日 & "#")) Then
営業日 = 営業日 + 増量
End If
End Select
Loop Until 営業日 = 営業日数 - 増量
End Function
Sub test()
'呼び出し例
Debug.Print "許可日から申請日を求める -> " & 許可日(#10/15/2024#, -2)
Debug.Print "申請日から許可日を求める -> " & 許可日(#10/11/2024#, 2)
End Sub
通報 ...