2025年2月22日土曜日

Excel VBA でオートフィルターを設定する方法

 はい、Excel VBA でオートフィルターを設定する方法について説明します。

基本的なオートフィルターの設定

VBA
Sub AutoFilterSample()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' シート名を指定

    ' A1セルから始まる連続したデータ範囲にオートフィルターを設定
    ws.Range("A1").CurrentRegion.AutoFilter
End Sub

解説:

  1. ws.Range("A1").CurrentRegion: A1セルから始まる連続したデータ範囲を取得します。
  2. .AutoFilter: 取得したデータ範囲にオートフィルターを設定します。

特定の列で絞り込むオートフィルターの設定

VBA
Sub AutoFilterWithCriteria()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' 2列目(B列)で "りんご" を含むデータを絞り込む
    ws.Range("A1").CurrentRegion.AutoFilter Field:=2, Criteria1:="りんご"
End Sub

解説:

  • Field:=2: 2列目(B列)を絞り込みの対象とします。
  • Criteria1:="りんご": "りんご" を含むデータを表示します。

複数の条件で絞り込むオートフィルターの設定

VBA
Sub AutoFilterMultipleCriteria()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' 2列目で "りんご" または "みかん" を含むデータを絞り込む
    ws.Range("A1").CurrentRegion.AutoFilter Field:=2, Criteria1:="りんご", Operator:=xlOr, Criteria2:="みかん"
End Sub

解説:

  • Operator:=xlOr: 複数の条件を OR 条件で絞り込みます。
  • Criteria2:="みかん": 2つ目の条件として "みかん" を指定します。

オートフィルターの解除

VBA
Sub ClearAutoFilter()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' オートフィルターを解除
    ws.AutoFilterMode = False
End Sub

解説:

  • ws.AutoFilterMode = False: シートのオートフィルターを解除します。

オートフィルターの条件について

  • Criteria1 には、文字列だけでなく、数値や日付も指定できます。
  • Operator には、xlAnd(AND 条件)、xlOr(OR 条件)などを指定できます。
  • ワイルドカード(*?)を使用して、あいまい検索も可能です。

オートフィルターに関するその他の便利な機能

  • トップテンフィルター: 上位または下位のデータを抽出できます。
  • 日付フィルター: 特定の日付範囲のデータを抽出できます。
  • 色のフィルター: 特定の背景色またはフォント色のセルを抽出できます。

注意点

  • オートフィルターを設定する前に、データ範囲にヘッダー行が含まれていることを確認してください。
  • 複数の条件で絞り込む場合は、Operator を適切に設定してください。
  • オートフィルターを解除するのを忘れないようにしましょう。

これらのコードを参考に、ご自身のデータに合わせてオートフィルターを設定してみてください。

0 件のコメント:

コメントを投稿