VBAで休日判定処理を使って、指定営業日数後の日付を取得する
休日判定処理を作ったので、その応用を。
「翌営業日の日付が知りたい」とか、そういった類です。
休日判定クラスモジュールを用意して、それとは別に標準モジュールを用意して、以下のコードを貼り付けます。
あとは、getNthWorkingDayに必要なパラメータを渡して呼び出します。
日数は、マイナスをつけることで、過去方向も指定できるようにしてあります。
エラー処理はあまり入れてません。(手抜きです)
2021/4/11
都合により、ソースを、こちら に移動しました。
github.com
実務レベルで、繰り返し使うようなことでもなければ
このサンプルのように、cch_ をモジュールレベルの変数にする必要はないです。
ローカル変数で問題がない場合は、だまってローカル変数にしましょう。
(なぜこうしたかは、気にしないでください)
呼び出しサンプル
Public Sub Test() Dim d1 As Date Dim d2 As Date Dim diff As Long d1 = #8/23/2018# diff = 9 Call getNthWorkingDay(d1, diff, d2) Debug.Print d1, diff, d2 diff = -5 Call getNthWorkingDay(d1, diff, d2) Debug.Print d1, diff, d2 End Sub
以下のようなカレンダーに対して実行してみた例
call Test
2018/08/23 9 2018/09/04
2018/08/23 -5 2018/08/09