| 
    
     |  | ▼fuji さん: 
 あまりきれいではありませんが、こんなものかなと作ってみました。
 よろしければ確認してみて下さい。
 Option Explicit
 
 Sub test()
 Dim i As Long, j As Long, k As Long, m As Long, n As Long
 Dim R1 As Long, C1 As Long
 Dim Sagyou As Variant, check As Variant
 Dim WS1 As Worksheet, WS2 As Worksheet
 
 Set WS1 = ThisWorkbook.Worksheets("Sheet1")
 Set WS2 = ThisWorkbook.Worksheets("Sheet2")
 
 m = 3 'データ開始行
 n = WS1.Cells(m, 1).End(xlDown).Row 'データ最終行
 
 '作業予定日がある列を確認
 k = 0
 ReDim Sagyou(1 To 1)
 For j = 2 To WS1.Range("B2").End(xlToRight).Column
 If WS1.Cells(2, j).Value = "作業予定日" Then
 k = k + 1
 ReDim Preserve Sagyou(1 To k)
 Sagyou(k) = j
 End If
 Next j
 C1 = k
 '名簿がある業を確認
 R1 = n - m + 2
 ReDim check(1 To R1, 1 To C1)
 
 For j = 1 To C1
 check(1, j) = WS1.Cells(1, Sagyou(j)).Value
 For i = m To n
 If WS1.Cells(i, Sagyou(j) + 1).Value = "" Then
 If WS1.Cells(i, Sagyou(j)).Value < Date Then
 check(i - m + 2, j) = WS1.Cells(i, 1).Value
 End If
 End If
 Next i
 Next j
 WS2.Range("B1").Resize(R1, C1) = check
 Set WS1 = Nothing
 Set WS2 = Nothing
 End Sub
 
 |  |