指定した日付のシフト表を自動で作成する方法ですが、下記の方法を教えていただきました。 Sub シフト表作成() Dim org As Integer Dim dst As Integer Dim i As Integer Worksheets("週シフト表").Activate Range("C4:I4").Find(What:=Worksheets("日別").Range("C3").Value, _ LookAt:=xlWhole).Select Range(ActiveCell.Offset(2), ActiveCell.Offset(6)) _ .Copy Destination:=Worksheets("日別").Range("C6") Worksheets("日別").Activate For i = 6 To 10 If Range("C" & i).Value <> "休み" Then org = Application.WorksheetFunction.VLookup( _ Worksheets("日別").Range("C" & i), _ Worksheets("シフトマスタ").Range("B4:D6"), 2, False) dst = Application.WorksheetFunction.VLookup( _ Worksheets("日別").Range("C" & i), _ Worksheets("シフトマスタ").Range("B4:D6"), 3, False) Range(Cells(i, org - 5), Cells(i, dst - 5)).Interior.Color = vbBlue End If Next End Sub 日別のシートにシフトを作成しており、週シフトシートに、個々の日別の勤務(早番、遅番等)が記載されており、シフトマスタシートに各勤務の開始時刻を終了時刻が記載されています。 今は以下のような日別シートがあり、勤務に合わせてD列~P列間で色がつくようになっています。 _____A_______B________C_______D_______E_______F ・・・・ P 5_________氏名_____シフト___9時____10時____11時 ・・・・ 21時 6_________1さん_____早 7_________2さん_____遅 8_________3さん_____休 9_________4さん_____遅 10_______5さん_____遅 これを、1時間単位ではなく、30分単位(E列が9時30分、F列が10時、G列が10時30分・・・)にすると色の付く範囲がずれてしまいます。 コードをどのように変えれば良いかわからず困っております。 お手隙の方、いらっしゃいましたら何卒ご教授の程、お願い致します。
↧