この記事では、VBA(マクロ)でオートフィルタを範囲指定(列選択や行方向)や数値指定で行う方法【AutoFilter, Range, Cells】について解説していきます。
ポイントとしては、
`AutoFilter`メソッド、
`Range`オブジェクト、
`Cells`プロパティ
などを使用することです。
なお、マクロ初心者でもわかりやすいように変数名をaaaaa変数aaaaaといった名称にしています。そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロでオートフィルタを範囲指定で行う方法【2列目から5列目までの列を選択】
それではまず、2列目から5列目までの列を選択(範囲指定)してオートフィルタをかける方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub AutoFilterColumns()
Dim aaaaaSheetaaaaa As Worksheet
Set aaaaaSheetaaaaa = ThisWorkbook.Sheets("Sheet1")
' 2列目から5列目までの範囲を指定してオートフィルタを有効にします
aaaaaSheetaaaaa.Range("B1:E1").AutoFilter
End Sub
コードのAlt+F8を押し、マクロ選択画面でAutoFilterColumns関数を実行します。このコードは、特定のワークシート(ここでは”Sheet1″)の2列目から5列目にオートフィルタを適用します。
フィルタをかけたい列の範囲を変更するには、`Range`オブジェクトの指定を変更してください。
【使用関数:AutoFilter, Range】
VBAマクロでオートフィルタを範囲指定で行う方法【行方向(横向き)に3行目から6行目まで横にフィルタ】
続いては、行方向3行目から6行目まで横にフィルタをかける方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub AutoFilterRows()
Dim aaaaaSheetaaaaa As Worksheet
Set aaaaaSheetaaaaa = ThisWorkbook.Sheets("Sheet1")
' 3行目から6行目までの範囲を選択し、オートフィルタをかけます。
' この場合、選択範囲の最初の行にフィルタが適用されます。
aaaaaSheetaaaaa.Range("A3:A6").AutoFilter
End Sub
コードのAlt+F8を押し、マクロ選択画面でAutoFilterRows関数を実行します。このコードでは、”Sheet1″の3行目から6行目にオートフィルタを適用しています。
フィルタを適用する行の範囲を変更する場合は、`Range`オブジェクトの指定を調整してください。
【使用関数:AutoFilter, Range】
VBAマクロでオートフィルタを数値範囲指定で行う方法【ok列に着目し、ここの数値が2から11までのデータのみにフィルタをかける:数値範囲で条件指定】
最後に、特定の列(例えば”ok”列)に着目し、その列の数値が2から11までのデータのみにフィルタをかける方法について見ていきます。この方法は、特定の数値範囲に基づいてデータを絞り込みたい場合に非常に有効です。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub AutoFilterByNumber()
Dim aaaaaSheetaaaaa As Worksheet
Set aaaaaSheetaaaaa = ThisWorkbook.Sheets("Sheet1")
Dim aaaaaFieldaaaaa As Long
' "ok"列をフィールド番号として特定します(例では10番目の列と仮定)
aaaaaFieldaaaaa = 10
' "ok"列に着目し、数値が2から11までのデータのみにフィルタをかけます
aaaaaSheetaaaaa.AutoFilterMode = False '既存のフィルタをクリア
aaaaaSheetaaaaa.Range("A1").AutoFilter Field:=aaaaaFieldaaaaa, Criteria1:=">=2", Criteria2:="<=11"
End Sub
コードのAlt+F8を押し、マクロ選択画面でAutoFilterByNumber関数を実行します。
このコードでは、”Sheet1″の”ok”列(ここでは10番目の列としています)に着目し、その列の数値が2から11までのデータに限定してフィルタを適用します。
列番号や条件を変更するには、それぞれ`Field`、`Criteria1`、および`Criteria2`の値を調整してください。
【使用関数:AutoFilter, Range, Cells】
まとめ VBAマクロでオートフィルタを列選択や行方向や数値指定で行う方法【AutoFilter, Range, Cells】
この記事では、VBAマクロでオートフィルタを範囲指定(列選択や行方向)や数値指定で行う方法【AutoFilter, Range, Cells】について確認しました。
マクロの扱いに慣れ、さらに快適に過ごしていきましょう(^^)/