フィルターをかける

 

 

 

 

 

仕事で同じデータ形式のものに同じフィルタ設定をする、という作業を1日30回はしていました。

面倒くさいは大嫌いなのでマクロでフィルターをかけるコードを書いてみました。

 

めちゃくちゃ地味なのに間違えると大問題、とても気を使う作業でしたので、

下記マクロを個人用マクロブックに登録しショートカットキーで解決、超らくちんです。

 

 

Sub フィルターをかける()


  '変数 rng を範囲とする
  Dim rng As Range
  
  '変数 rng にアクティブシートの使われているRange範囲を代入する
  Set rng = ActiveSheet.UsedRange
  
  '変数 rng にフィルターをかけていく
  
  'Filedが列番号(A列が0でF列は7)
  'Criteia1がフィルターの内容


 With rng
    .AutoFilter field:=35, Criteria1:="1"                  'AI列を1のみ
    .AutoFilter field:=46, Criteria1:="<>0"             'AT列を0以外に
    .AutoFilter field:=47, Criteria1:="0"                  'AU列を0のみ
    .AutoFilter field:=58, Criteria1:="<>*★*"       'BF列を★を含まないもの
  End With

  '全範囲をコピーする
    Cells.Copy
 
  
End Sub

 

 

 

 

 

Withブロックで指定していくことでパッと見ただけで何にフィルターがかかっているのかわかりやすくなっていると思います。

 

今回は使用していませんが、一つの列の絞り方が「★」と「▲」どちらかを含む、といった複数項目を選択する場合も

範囲.AutoFilter field:=58, Criteria1:="★",  Operator:=xlOr, Criteria2:="▲"

と書くことができます。

field:列番号(A列が0)の指定

Operator:絞り込みの方法の指定(ない場合はセルの値)

Criteria:絞り込みの値や条件。「”ダブルクォーテーション」で囲って条件を書きます。(ここを理解するのにとても時間がかかりました・・・)

 

 

Operatorのところは紹介したOR条件や、AND条件、文字やセルの色でも対応可能なようです。

「AutoFilter Operator」と検索すればたくさん出てきました。