『固定休日コード』に『任意休日』『休日解除』一覧を付け加えて休日マップ
データを作成する関数です。「休日マップの作成」フォームで作成できる
休日マップを関数で定義できます。
『#VALUE!』
kt固定休日EX( 固定休日, 開始年, 年数, [任意休日], [休日解除] )
返却値 ‥‥‥ Variant (String ) 型 固定休日 ‥‥‥ String 型 開始年 ‥‥‥ Integer 型 年数 ‥‥‥ Integer 型 任意休日 ‥‥‥ Variant (Range/Date配列/Array関数) 型 (省略可) 休日解除 ‥‥‥ Variant (Range/Date配列/Array関数) 型 (省略可)
『固定休日コード』および『任意休日』『休日解除』の日付一覧で作成された
【休日マップ】データを返します。詳細はここをクリック。
パラメータ内容が不正な場合は[#VALUE!]が返ります。
固定休日 ‥‥‥ 12文字の固定休日コードを指定します。第1〜第5曜日の組み合わせ指定も定義できます(下記解説参照)。
開始年 ‥‥‥ 西暦(4桁)で指定します(1901〜)
年数 ‥‥‥ 2・4・6・8・10・12 の何れかを指定します。
任意休日 ‥‥‥ 固定休日コードで定義できない『休日の日付一覧』をシリアル値 または 日付文字列で指定します(省略可)。
※ 新元号「令和」対応になっていない環境でも
「令和 日付文字列(元年 表記を含む)」を指定可能です。
セル範囲(VBAではRange )またはDate型変数の配列/Array関数で指定します。
不正な値の日付は 無視します。
休日解除 ‥‥‥ 固定休日で一括定義した休日から除外して営業日に戻したい『日付の一覧』をシリアル値 または 日付文字列で指定します(省略可)。
※ 新元号「令和」対応になっていない環境でも
「令和 日付文字列(元年 表記を含む)」を指定可能です。
セル範囲(VBAではRange )またはDate型変数の配列/Array関数で指定します。
不正な値の日付は 無視します。
任意休日/休日解除の日付一覧をワークシート上に用意する場合は
・一覧は複数列になっても構いません。
・日付は昇順に並んでいる必要はありません。
・そのセル範囲に「日付以外のデータ(空セル含む)」や開始年・年数で定義される期間から
外れる日付が含まれていても構いません(そのセル範囲内から有効な日付データのみを
取り出すようにしています)。
また、任意休日/休日解除の両方に『同じ日付』を指定した場合は、休日解除が有効となり、
その日は営業日となります。
固定休日コードによる休日指定は簡便に利用できますが、曜日/祝日に拠らない
任意の休日もある為に、実際の営業カレンダーに対応できない場合が有り得ます。
逆に任意の休日でもカバーできる『休日マップ』には、任意休日に追加/変更が有った
場合、再び【休日マップ作成】ツールで作り直さなければならないという若干不便な
部分があります。
この関数は、ワークシート上に固定休日コードで指定できない任意休日の一覧表
(祝日は当然不要です)を用意し、その範囲と固定休日コードを引数として『休日マップ
データ』を作成します。
任意休日の指定方法の特徴として、
複数列が可,昇順の必要なし,範囲内に空セルが有っても良い
という、かなり柔軟な条件にしています。したがって、予め大きめな範囲を指定しておく
事も可能です。これにより、関数記述はそのままでも、任意休日一覧に追加/変更する
都度、即座に変更が反映されるという利便性があります。
kt固定休日EXの結果をセルまたは変数(VBA処理の場合)に格納し、kt営業日算出
などの引数:休日マップに、その内容を指定して利用します。
注:kt営業日算出などの引数に、直接[kt固定休日EX]を指定しないで
ください。関数計算の都度、マップ生成が動いて、非常にレスポンス
が悪くなります。あくまで、どこかのセルまたは変数に先ず格納して
それから、その内容を利用するという運用を採ってください。
Dim str休日Map As String
str休日Map = kt固定休日EX(kt_土日祝, 2001, 4, Range("A5:D15"))
If kt営業日判定(str休日Map, Date) Then
MsgBox "今日は営業日です"
Else
MsgBox "今日は休業日です"
End If
※ [kt_土日祝]は「kt関数Addin.xla」内で定義されている定数名です。 ・休日なし "00000000000@" (kt_休日なし) ・土日を休日 "10000010000@" (kt_土日 ) ・土日/祝日を休日 "10000011000@" (kt_土日祝 ) ・日/祝日を休日 "10000001000@" (kt_日祝 ) ・銀行休日 "10000011101@" (kt_銀行休日) ・官庁(日祝) "10000001111@" (kt_官庁1 ) ・官庁(土日祝) "10000011111@" (kt_官庁2 )