>担当:伊藤の月曜に○の入った箇所のみをシートに抽出するという形になります。
例えば、担当:伊藤さんに○がない日でもシートを作成してよければ、
(空白があっても)
Sub Test2()
Dim Dic As Object
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim r1 As Range, r2 As Range
Dim rr As Range
Dim i As Integer
Dim shname As String
Dim v, vv, mykey
Set Dic = CreateObject("Scripting.Dictionary")
Set WS1 = Worksheets("Sheet1")
Application.ScreenUpdating = False
With WS1
v = .Range(.[E2], .Cells(Rows.Count, "E").End(xlUp)).Value
For Each vv In v
If Not Dic.exists(vv) Then
Dic(vv) = Empty
End If
Next
For Each mykey In Dic.keys
For i = 6 To 11
Set rr = .Range(.[A1], .Cells(Rows.Count, 1).End(xlUp).Resize(, 12))
rr.AutoFilter
rr.AutoFilter 5, mykey
rr.AutoFilter i, ("<>")
Set r1 = .Range(.[A1], .Cells(Rows.Count, 5).End(xlUp))
Set r1 = Union(r1, Intersect(r1.EntireRow, .Columns(i)), Intersect(r1.EntireRow, .Range("L:L")))
shname = mykey & "の" & .Cells(1, i).Value
On Error Resume Next
Application.DisplayAlerts = False
Worksheets(shname).Delete
Application.DisplayAlerts = True
On Error GoTo 0
Worksheets.Add after:=Worksheets(Worksheets.Count)
Set WS2 = ActiveSheet
WS2.Name = shname
r1.Copy
WS2.Range("A1").PasteSpecial
Application.CutCopyMode = False
rr.AutoFilter
Next
Set r1 = Nothing
Set rr = Nothing
Set WS2 = Nothing
Next
End With
Application.ScreenUpdating = True
End Sub
こんな感じですかね。
○のない日はシートも作らないのであれば、また検証します。
お礼
実は一週間以上試行錯誤を繰り返していて、 まさか一日で解決できるとは思ってもいませんでした。 大変ありがとうございます。 これからはこの構文を理解し、自分の糧に出来るよう励みたいと思います。 本当ありがとうございました。