フィルターをかける
仕事で同じデータ形式のものに同じフィルタ設定をする、という作業を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」と検索すればたくさん出てきました。