|
フィルターを使うなら、先頭に項目行を入れるのが必須となります。
もし項目を入れたくなければ、どこかに作業列を作って数式を入れ、
判定結果に基づいてフィルターと同じように行を非表示にする処理を
コードにすると良いと思います。
仮に作業列を 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
|
|