以下は、我々は2つの日付の間の平日の数を計算エクセルVBAでプログラムを見ていきます。

平日は以下のとおりです。月曜日、火曜日、水曜日、木曜日と金曜日。

状況:

Weekdays in Excel VBA

注:日付は米国のフォーマットです。最初の月、日セカンド。フォーマットのこのタイプは、あなたの窓地域の設定に依存します。

1.まず、我々は5つの変数を宣言します。 Date型、Date型の日付2、Date型のdateToCheck、Integer型のdaysBetween、Integer型のInteger型と私の平日の日付1。

Dim date1 As Date, date2 As

Date, dateToCheck As Date

Dim daysBetween As Integer, weekdays As Integer, i As Integer

2.私たちは、4つの変数を初期化します。私たちは、変数daysBetweenを初期化するために、DateDiff関数を使用します。この関数は3つの引数を持っています。

我々は日付1とdate2の間の日数をしたいので、私たちは、最初の引数に「D」に記入します。

weekdays = 0

date1 = Range("B2")

date2 = Range("B3")

daysBetween = DateDiff("d", date1, date2)

3.私たちは、日が平日であるかどうか(日付1と日付2を含む)日付1とdate2の間の各日付をチェックする必要があります。はい、私たちは1で平日をインクリメントした場合私たちは、次のループのために使用されます。

For i = 0 To daysBetween

4.私たちは、私たちがチェックする必要があり、それぞれの日付を取得するにはDateAdd関数を使用します。この関数は3つの引数を持っています。私たちは日を追加したいので、私たちは、私は2番目の引数、と我々は日付1にI日間追加したいので、第三引数の日付1のために、最初の引数に「D」に記入します。この方法でExcelのVBAは、日付1とdate2の日付1から始まるとの間にそれぞれの日付を確認することができます。次のコード行を追加します。

dateToCheck = DateAdd("d", i, date1)

例:私は3、エクセルVBAチェックがDATE1 + 3日間=のために。

5.次に、我々はdateToCheckが平日であるかどうかをチェックするためにWeekday関数(関数内のビルド)を使用します。 Weekday関数は、土曜日に日曜日のための1と7を返します。平日(dateToCheck)が1に等しくない(<>手段と等しくない)7に等しくない場合したがって、我々は唯一の変数平日をインクリメント。次のコード行は、仕事を得ます。

If (Weekday(dateToCheck) <> 1 And Weekday(dateToCheck) <> 7) Then

weekdays = weekdays + 1

End If

6.ループを閉じることを忘れないでください。

Next i

7.最後に、メッセージボックスを使用して平日の数を表示します。我々は2つの文字列(参加)CONCATENATEに&演算子を使用します。平日ものの、それはここで働くの文字列ではありません。

MsgBox weekdays & " weekdays between these two dates"

8.あなたのコマンドボタンでのマクロと、それをテストします。

結果:

Weekdays Result