Excel

【Excel】VBAマクロでオートフィルタを範囲指定(列選択や行方向)や数値指定で行う方法【AutoFilter, Range, Cells】

当サイトでは記事内に広告を含みます。

この記事では、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】について確認しました。

マクロの扱いに慣れ、さらに快適に過ごしていきましょう(^^)/