なぜVBAでこれを使用する必要があるのかわからないので、ここで試すことができます。
Excelの場合:
開始日がA1にあり、終了日がA2にあり、次にA3にあると仮定すると、
=(NETWORKINGDAYS(A1,A2))/5
これが営業日の観点から、週5日となります。通常の日で週7日が必要な場合は、
=WEEKNUM(A3)-WEEKNUM(A2)
Analysis Toolpackアドインの関数WEEKNUM()は、米国にいる場合、特定の日付の正しい週番号を計算します。以下のユーザー定義関数は、コンピューターの各国語設定に応じて正しい週番号を計算します。
DateDiff
それでもVBAを使用する必要がある場合は、これを試してください:(ティムがかなり便利だと指摘したように)または、を使用することもできますEvaluate to trigger WEEKNUM
。
Option Explicit
Function numWeeks(startDate As Date, endDate As Date)
numWeeks = DateDiff("ww", startDate, endDate)
End Function
WEEKNUMでのEvaluateの使用:
Function numWeeks(startDate As Range, endDate As Range)
Dim s As Integer, t As Integer
s = Application.Evaluate("=WEEKNUM(" & startDate.Address & ",1)")
t = Application.Evaluate("=WEEKNUM(" & endDate.Address & ",1)")
numWeeks = t - s
End Function