| 
    
     |  | こんにちは。かみちゃん です。 
 >下のような表です
 >今回は記入漏れの人の名前がGとHで
 >それを記入漏れと書いてある下に名前を出したいのです
 >
 > A     B   C    D        E   F
 >    担当者名 欠席 記入漏れ     名簿
 >11班    A   F            A
 >12班    B               B
 >13班    C               C
 >14班    D               D
 >15班    E               E
 >                      F
 >                      G
 >                      H
 
 E列の名簿に基づいて、それぞれが記入されているかどうかをF列に一旦書き出して
 書き出されていない場合は、D列に転記するというコードは以下の方法でできると
 思います。
 
 なお、記入されているかどうかは、VBAコード内でワークシート関数であるCOUNTIF
 を利用しています。
 記入漏れであれば、0が返されますので、それをオートフィルタで抽出しています。
 
 Sub Macro1()
 Dim c As Range
 Dim LastCell As Range
 Dim rngCount As Range
 Dim rngNotWrite As Range
 
 Application.ScreenUpdating = False
 
 '記入漏れかどうかのチェック
 Set rngCount = Range("A2", Range("A65536").End(xlUp)).Offset(, 1).Resize(, 2)
 Set LastCell = Range("E65536").End(xlUp)
 For Each c In Range("E2", LastCell).Offset(, 1)
 c.Value = WorksheetFunction.CountIf(rngCount, c.Offset(, -1))
 Next
 
 '記入漏れがある場合は転記処理
 With Columns("E:F")
 .AutoFilter Field:=2, Criteria1:="0"
 On Error Resume Next
 Set rngNotWrite = Range("E2", Range("E65536").End(xlUp)).SpecialCells(xlCellTypeVisible)
 If rngNotWrite.Address <> "$E$1" Then
 rngNotWrite.Copy Range("D2")
 End If
 .AutoFilter
 .Item(2).ClearContents
 End With
 
 Application.ScreenUpdating = True
 
 If rngNotWrite.Address <> "$E$1" Then
 MsgBox "記入もれをチェックしました。"
 Else
 MsgBox "記入もれはありませんでした"
 End If
 End Sub
 
 |  |