| 
    
     |  | こんちには。かみちゃん です。 
 >「検収月」は毎月変わりますので「検収月を入力してください」という入力フォームを表示してユーザーに入力を促そうと考えていますが、
 >条件設定になると、完全にお手上げです。
 
 検収月入力部分は、Hirofumiさんご提示のコードを流用させていただきましたが、削除部分は、オートフィルタで一致した条件を削除しています。
 特に、条件2の「検収月以外」というものは、「検収月の最初の日より小さく、検収月の末日より大きい」という条件にしているところがポイントです。
 
 Option Explicit
 
 Sub Macro1()
 Dim i As Long
 Dim strResult As String
 Dim dtmReceived1 As Date, dtmReceived2 As Date
 
 '検収月の入力
 Do
 strResult = InputBox("検収月を" & Format(Date, "yyyy/m") _
 & "の形で入力して下さい", "検収月入力", _
 Format(Date, "yyyy/m"))
 If strResult = "" Then
 Exit Sub
 Else
 If IsDate(strResult & "/1") Then
 '検収月の初日
 dtmReceived1 = DateValue(strResult & "/1")
 '検収月の末日
 dtmReceived2 = DateAdd("m", 1, DateValue(strResult & "/1")) - 1
 Exit Do
 Else
 Beep
 MsgBox "入力が違います"
 End If
 End If
 Loop
 
 '表の範囲がA1から始まるものとして
 Range("A1").CurrentRegion.AutoFilter
 '列Bが「処理済」を削除
 With ActiveSheet.AutoFilter.Range
 .AutoFilter Field:=2, Criteria1:="処理済"
 .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible) _
 .EntireRow.Delete Shift:=xlUp
 End With
 ActiveSheet.ShowAllData
 '列Fが「検収月」以外で、列Hが「1」の場合は削除
 With ActiveSheet.AutoFilter.Range
 .AutoFilter Field:=6, Criteria1:="<" & dtmReceived1, Operator:=xlOr, _
 Criteria2:=">" & dtmReceived2
 .AutoFilter Field:=8, Criteria1:="1"
 .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible) _
 .EntireRow.Delete Shift:=xlUp
 End With
 Selection.AutoFilter
 Range("A1").Select
 End Sub
 
 |  |