|
皆様、こんにちわ。
現在、私は、エクセルにて24時間(1枡10分/横方向)の表を用い、その様々な時間帯にある作業を割り振るプログラム?の作成をしようと思っています。
Aさんが、朝の6時に出勤し、10分間は朝礼の時間、で、その人は15時に帰りますので、14時50分まで作業が実施可能です。残り10分は終礼時間です。
その作業枠の上の位置に、作業内容をセルを使い、その作業の必要時間分だけ結合した作業の枠があります。(色つきの結合セルです)
で、Aさんが6時に出勤し、まずは作業実施できる6時10分以降の作業を上の作業枠より切り取り、貼り付けを実施しています。それをすることで、さばくべき作業内容を消していき、全部消えると1日ある作業が全て実施可能であると判断しています。
ここまでは、以下のマクロでなんとか動いております。
Sub 作業割付2()
Dim i, j, b, c, d, e As Integer
Dim a As Long
For i = 523 To 602
Cells(i, 5).End(xlToRight).Select
If Selection.Interior.ColorIndex = xlNone Then
Selection.End(xlToLeft).Select
Else
a = Selection.Offset(, 1).Column
b = Selection.End(xlToRight).Offset(, -1).Column
For j = a To b
Cells(500, j).End(xlUp).Select
If Selection.Interior.ColorIndex = xlNone Then
Cells(500, j).Offset(, 1).Select
Else
c = Selection.Offset(, 1).Column
If c - 1 <= b Then
Selection.Cut
If Cells(i, j).Interior.ColorIndex = xlNone Then
Cells(i, j).Select
ActiveSheet.Paste
Selection.Offset(, 1).Select
End If
End If
End If
Next j
End If
Next i
End Sub
この方法で、出勤人員最大で約90名程のラインがあり、割付を実施していますが、この方法で割付を実施すると、出勤時間の早い者、または、同じ時間に数名出勤をしても、ライン的に上にある者は、作業量が一番多くなってしまいます。
それに、休憩時間などを全く関係なく作業を割付ちゃいますので、休憩をいかせるために、再度そのラインから作業を抜き、別の人員に貼り付けて、休憩にいかせてます。
なんとかこれを、各ラインが休憩時間も取れ、作業割合も均一に近くなるように振り分けを実施したいのです。
この出勤人数は、数字の合計数(1ライン1を連打した別シートあり)で決定してますので、最大瞬間作業人員10名であれば、10名出勤しています。
この10名が必要な時間には、全員が作業をしていなければなりません。
その時間以外で1時間(6枡空く)の休憩ができ、また作業割合もある程度均一なんかにできればいいなぁと思ってます。
何かよいアイデアがあれば教えてもらいたいです。
長々と、そして、内容が分かりづらいと思いますが、よろしくお願いします。
|
|