構文
構文は以下の通りです。
Worksheets("シート名").Range("セル範囲").AutoFilter Field:=フィールド番号, Criteria1:=条件
解説
AutoFilterメソッドは、指定した範囲に対して、フィルタを自動的に適用します。
●Worksheets: シート名は、フィルタを適用したいシートの名前を指定します。
●Range: セル範囲は、フィルタを適用したいデータの範囲を指定します。
●Field: フィールド番号は、フィルタを適用したい列の番号を指定します。1から始まります。
●Criteria1: 条件は、フィルタリングの条件を指定します。例えば、値やテキストを指定することができます。
使い方
具体的な使い方について紹介します。
Sub ApplyAutoFilter()
Worksheets("Sheet1").Range("A1:B10").AutoFilter Field:=1, Criteria1:="Apple"
End Sub
Worksheets("Sheet1").Range("A1:B10").AutoFilter Field:=1, Criteria1:="Apple"
End Sub
上記はA1からB10の範囲に対して、A列の値が「Apple」のデータだけをフィルタリングします。
プログラミング例
以下に、プログラミング例を紹介します。
Sub FilterGrades()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("成績表")
' 成績表にデータを入力
ws.Range("A1").Value = "氏名"
ws.Range("B1").Value = "数学"
ws.Range("C1").Value = "英語"
ws.Range("A2").Value = "山田太郎"
ws.Range("B2").Value = 85
ws.Range("C2").Value = 92
ws.Range("A3").Value = "佐藤花子"
ws.Range("B3").Value = 78
ws.Range("C3").Value = 88
' 数学の成績のみフィルタリング
ws.Range("A1:C3").AutoFilter Field:=2, Criteria1:=">=80"
End Sub
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("成績表")
' 成績表にデータを入力
ws.Range("A1").Value = "氏名"
ws.Range("B1").Value = "数学"
ws.Range("C1").Value = "英語"
ws.Range("A2").Value = "山田太郎"
ws.Range("B2").Value = 85
ws.Range("C2").Value = 92
ws.Range("A3").Value = "佐藤花子"
ws.Range("B3").Value = 78
ws.Range("C3").Value = 88
' 数学の成績のみフィルタリング
ws.Range("A1:C3").AutoFilter Field:=2, Criteria1:=">=80"
End Sub
このコードを実行すると、数学の成績が80点以上のデータが抽出されます。
まとめ
AutoFilterメソッドを使うことで、データの範囲に対して簡単にフィルタリングを適用できます。特定の条件に合致するデータを素早く抽出することができる便利なメソッドです。是非活用してください。