| 
    
     |  | フィルターを使うなら、先頭に項目行を入れるのが必須となります。 もし項目を入れたくなければ、どこかに作業列を作って数式を入れ、
 判定結果に基づいてフィルターと同じように行を非表示にする処理を
 コードにすると良いと思います。
 仮に作業列を AD列 にするとして、以下のようなコードになります。
 (なお、抽出する値は必ず 文字列 であることを前提とします)
 
 Sub MyFilter()
 Dim CkSt As String
 
 CkSt = InputBox("抽出する値を入力して下さい")
 If CkSt = "" Then Exit Sub
 Cells.EntireRow.Hidden = False
 On Error Resume Next
 With Range("D1", Range("D65536").End(xlUp)).Offset(, 26)
 .Formula = "=IF($D1=" & """" & CkSt & """" & ","""",1)"
 .SpecialCells(3, 1).EntireRow.Hidden = True
 .ClearContents
 End With
 If Err.Number <> 0 Then
 MsgBox "抽出されたデータはありません", 48
 Err.Clear
 End If
 End Sub
 
 |  |