この記事では、Excel VBAを用いて複数のシートに跨るフィルタ処理を効率的に行う方法について詳しく解説します。VBAの基本的な使い方から、具体的なコード例とその解説、さらには応用例まで、一通りを網羅しています。
Excel VBAの基本
Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。
そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

なぜ複数のシートに跨るフィルタが必要なのか
業務でExcelを使用する際、多くの場合、複数のシートを使ってデータを管理します。それぞれのシートでフィルタをかける作業は手間となり、業務効率が損なわれる可能性があります。その解決方法として、VBAを使用することで一括で複数のシートにフィルタをかけることが可能です。
手作業によるデメリット
– 時間がかかる
– ミスが発生しやすい
– 繁忙期に作業が溜まる可能性がある
VBAによるフィルタ処理の基本コード
1 2 3 4 5 6 7 8 |
Sub MultiSheetFilter() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Rows(1).AutoFilter Field:=1, Criteria1:="条件" Next ws End Sub |
コードの解説
– Dim ws As Worksheet
: Worksheetオブジェクトとしてws
を定義
– For Each ws In ThisWorkbook.Worksheets
: このワークブックのすべてのシートに対してループ処理
– ws.Rows(1).AutoFilter Field:=1, Criteria1:="条件"
: 1行目に対してフィルタをかける。フィールド1(A列)に対して「条件」を適用。
応用例
例1: 特定のシートだけを対象とする
1 2 3 4 5 6 7 8 9 10 |
Sub SpecificSheetFilter() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name = "Sheet1" Or ws.Name = "Sheet2" Then ws.Rows(1).AutoFilter Field:=1, Criteria1:="条件" End If Next ws End Sub |
コード解説
– If ws.Name = "Sheet1" Or ws.Name = "Sheet2"
: シート名が”Sheet1″または”Sheet2″の場合のみフィルタをかける。
例2: 複数条件でフィルタ
1 2 3 4 5 6 7 8 |
Sub MultiCriteriaFilter() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Rows(1).AutoFilter Field:=1, Criteria1:=Array("条件1", "条件2"), Operator:=xlFilterValues Next ws End Sub |
コード解説
– Criteria1:=Array("条件1", "条件2"), Operator:=xlFilterValues
: 複数条件(条件1、条件2)でフィルタをかける。
例3: フィルタを解除する
1 2 3 4 5 6 7 8 |
Sub RemoveFilter() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.AutoFilterMode = False Next ws End Sub |
コード解説
– ws.AutoFilterMode = False
: すべてのシートのフィルタを解除する。
まとめ
Excel VBAを用いると、複数のシートに跨るフィルタ処理を効率よく一括で行えます。この機能を活用することで、業務効率を大幅に向上させることが可能です。今回紹介した基本的なコードとその応用例を参考に、ぜひ実務での活用を考えてみてください。
VBAも良いけどパワークエリも良い
VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。
クリックするとパワークエリの全11講座が表示されます。
-
【初心者向け】パワークエリ入門:ETLツールを使ってエクセルデータを簡単に整形・統合しよう!(1/11)
-
【実践ガイド】パワークエリでデータ収集:Excel、CSV、PDF、Webデータを簡単に取り込む方法をマスターしよう!(2/11)
-
【総力特集】パワークエリで列操作をマスター:選択、変更、移動、削除、結合、分割の詳細解説&実践テクニック!(3/11)
-
【徹底解説】パワークエリで行操作をマスター!フィルター・保持・削除テクニックと練習用エクセルで実践学習(4/11)
-
パワークエリでデータクレンジング: 文字列結合、0埋め、テキスト関数をマスター(5/11)
-
パワークエリで四捨五入、切り捨て、切り上げをマスターする方法(6/11)
-
パワークエリで効率的なデータグループ化を実現する方法(7/11)
-
パワークエリで時間と日付の計算をマスター!便利な関数を使って効率アップ(8/11)
-
パワークエリで条件別集計をマスターする方法(9/11)
-
Excelパワークエリでクロス集計表とデータベース形式を瞬時に変換する方法(10/11)
-
Excelパワークエリ入門: 効率的なデータ整理をマスターしよう!(11/11)
パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください
コメント