ページ移動:JavaScriptを有効にして下さい!
16.前旬を考慮したシフト表の作成

前旬末1週間と継続して、連続不可勤務を考慮したシフト勤務割り当てを行います。
同じく、均等再配置において、連続休み日数、連続勤務日数の処理を行います。


方式:

今旬のシフト表の前に前旬末1週間分の割り当て済みシフト表を挿入し、
前旬と連結したシフト表として、勤務割り当てを行います。

この場合、最初のシフト表を作成する場合は前旬のデータが無いため、
そのままでは休み日数の計算に不都合が生じるので、
前旬使用」のスイッチで、前旬のデータを 使用するか、今旬のデータのみのデータで作成するかを指定します。

データ転記」スイッチ は、次のシフト表を作成する前に、今旬の末1週間分のデータを、前旬分に自動転記します。
(VBAで単純にコピーしているだけ)

「前旬使用」スイッチ



具体的な数式例

前旬を考慮した連続不可勤務

「前旬使用」スイッチがオンの場合、前旬のデータを 先頭に連結します。
不可勤務の参照方法は、今までと同じ。

前旬を考慮した連続不可勤務



「前旬列表示」と「データ転記」スイッチの処理

「前旬列表示」をオフにすると、前旬列D~Jを非表示にします。オン時は表示。
「データ転記」で、今旬末1週間分のデータを前旬列に転記します。
これにより、次の旬は今旬末のデータの続きとして作成されます。


Private Sub chk前旬列表示_Click()

    Range("前旬列").EntireColumn.Hidden = Not chk前旬列表示.Value

End Sub

Private Sub cmdデータ転記_Click()
'
' 今旬末1週間のデータを先旬に転記
'
    If MsgBox("今旬末1週間のデータを先旬に転記します。よろしいですか?", vbOKCancel, "データ転記") = vbOK Then
        
        Dim Col As Integer '今旬末1週間の開始列番号
        With Range("変化させるセル")
            Col = .Range("a1").Column + .Columns.Count - 7
        End With
        
        With Range("前旬")
            .Value = .Offset(0, Col - .Column).Value
        End With

    End If
    
End Sub

以下、詳細説明作成中・・・予定

ページ移動:JavaScriptを有効にして下さい!

関連

×
PageTop