【VBA】入力された文字列でフィルタをかける

シンプルだけど使いそうだからメモ。

以下のような場合、B1セルに入れられた材料名に対してフィルタをかけたい。

f:id:saneeeatsu:20180417174057p:plain

Sub make_filter()
    Dim str_target As String
    Dim int_target As Integer
    
    str_target = Range("B1").Value
    Selection.AutoFilter
    
    int_target = Cells.Find(What:=str_target).Column - 1

    ActiveSheet.Range("$B$4:$E$9").AutoFilter Field:=int_target, Criteria1:="<>"
End Sub

「〇」をフィルタリングする方法がわからなかったけど、マクロを記録すると「Criteria1:="<>"」で取れるっぽい。

f:id:saneeeatsu:20180417174209p:plain