エクセルのフィルターの絞り込みを楽にする方法

スポンサーリンク

経緯

毎日1回、前日のcsvデータをフィルタで絞り込んで確認する作業をしています。
例えると、担当地区の担当商品がどれくらい売れているか確認しているっていう感じです。

毎日やる作業なので、フィルタで絞り込む作業が面倒くさくなってくるんですよ。
サンプルコードでは、3つ×2件を絞り込んでいますが、実務では、10以上の絞り込みをやっているのでマクロでできればすごく楽になります。

プログラミング

今までフィルターを使ったエクセルvbaを書いたことがなかったので、検索しながら勉強しました。
はじめは二次元配列に抽出項目をつっこんでぱっとできないかと思っていましたが、そんな自分勝手なことはできず、抽出項目それぞれの配列を作成しました。

arr(0) = “東京”のように1つずつ絞り込み項目を書いていくこともできますが、短くまとめたかったため、Array関数を利用しています。そして、Array関数はVariant型の値を返すので、使用配列がVariant型になっています。
配列1つ1つに値を入れていく場合は配列の方は、String型で大丈夫です。

完成したサンプルコードはシンプルですが、慣れていないので結構時間がかかりました。
マクロにショートカットキーを割り当てれば、ワンタッチで作業が終了しますので、効率化になります。

エクセルでは大量のデータでも配列を使用すれば高速で処理できるので今後配列を利用したコードを書ければなと思っています。

サンプルコード

Sub filter()

Dim arr1() As Variant ‘1つ目の抽出項目の地区用の配列を宣言
Dim arr2() As Variant ‘2つ目の抽出項目の果物用の配列を宣言

arr1 = Array(“東京”, “大阪”, “福岡”) ‘地区用の絞込項目を設定
arr2 = Array(“りんご”, “みかん”, “ぶどう”) ‘果物用の絞込項目を設定

Range(“A1”).AutoFilter field:=1, Criteria1:=arr1, Operator:=xlFilterValues
‘地区を絞り込み
Range(“A1”).AutoFilter field:=2, Criteria1:=arr2, Operator:=xlFilterValues
‘果物を絞り込み

End Sub

コメント

タイトルとURLをコピーしました