ユーザースクリプト使用例 ≫ トップ

仕様 同じ人と同じ勤務での2連続禁止

メニュー
仕様
使用関数
シフト表の作成結果
ユーザースクリプト

仕様

下図では、赤枠の部分が、2連続勤務にて同じ人と被(かぶ)っている。
このような 「同じ人同じ勤務で、2日以上連続して勤務する状態」 を避けるようなスクリプトを作成する。

使用関数

勤務番号():割り当て予定の勤務番号を返す
前日勤務():当日からn日前の勤務を返す
翌日勤務():割り当て予定日のn日後の勤務を返す
勤務ID():指定勤務が割り当てられているID を返す

シフト表の作成結果

スクリプトを組み込んでシフト表を作成すると、2連続以上の勤務で、同じ人と被ることがなくなった。


ユーザースクリプト - VBScript


function JudgeKinmu()'勤務可能判定

'--- スクリプト開始  ---

if 勤務ID(勤務番号())<>0 then
	if 勤務番号()=前日勤務(1) then
		if 勤務番号()=前日勤務(1,勤務ID(勤務番号())) then JudgeKinmu = -1
	elseif 勤務番号()=翌日勤務(1) then
		if 勤務番号()=翌日勤務(1,勤務ID(勤務番号())) then JudgeKinmu = -1
	end if
end if

'--- スクリプト終わり --

end function

スクリプトの意味

まず、現在割り当てようとしている勤務(勤務番号())と同じ勤務が既に割り当てられている人()を探す。
 勤務ID(勤務番号()) -- 同じ勤務の人のIDが返される
居た場合に、禁止する条件を記述 - if 勤務ID(勤務番号())<>0 then
 割り当てようとしている勤務が前日勤務と同じ場合 - if 勤務番号()=前日勤務(1) then
  の人も前日勤務と同じ場合は割り当て不可とする
 割り当てようとしている勤務が翌日勤務と同じ場合 - elseif 勤務番号()=翌日勤務(1) then
  の人も翌日勤務と同じ場合は割り当て不可とする

×
PageTop