|
考え方は下の感じでいいと思うのですが。
Function BDAY(任意の日付 As Date, 何日前か As Double, 土日祝祭日を除く会社の休業日 As Range)
Dim BeforeDate As Date
Dim 休業日チェック As Boolean
Dim 土日祝祭日チェック As Boolean
BeforeDate = 任意の日付 - (何日前か + 1) '下で1日足すので、1日多く引いておく
Do
BeforeDate = BeforeDate + 1 '1日足す
'土日祝祭日を除く会社の休業日の範囲内にBeforeDateが1つもなければTrue
休業日チェック = Application.CountIf(土日祝祭日を除く会社の休業日, BeforeDate) = 0
土日祝祭日チェック = 土日祝祭日にBeforeDateがなければTrue
Loop Until 休業日チェック And 土日祝祭日チェック '両方ともTrueになるまでループ
BDAY = BeforeDate '最終的なBeforeDateを返す
End Function
「土日祝祭日にBeforeDateがなければTrue」はおわかりになってるんですよね?
ご自分で組み込んでみてください。
検証はしてません・・・っていうか出来ません。
|
|