Excel VBAを使って複数のシートに跨るフィルタを効率的にかける方法

この記事では、Excel VBAを用いて複数のシートに跨るフィルタ処理を効率的に行う方法について詳しく解説します。VBAの基本的な使い方から、具体的なコード例とその解説、さらには応用例まで、一通りを網羅しています。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

なぜ複数のシートに跨るフィルタが必要なのか

業務でExcelを使用する際、多くの場合、複数のシートを使ってデータを管理します。それぞれのシートでフィルタをかける作業は手間となり、業務効率が損なわれる可能性があります。その解決方法として、VBAを使用することで一括で複数のシートにフィルタをかけることが可能です。

手作業によるデメリット

– 時間がかかる
– ミスが発生しやすい
– 繁忙期に作業が溜まる可能性がある

VBAによるフィルタ処理の基本コード


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: 特定のシートだけを対象とする


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: 複数条件でフィルタ


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: フィルタを解除する


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講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次