一覧表から条件によってデータを抽出するフィルタ機能が標準で備わっている。 操作方法はNO.03 フィルタ機能を使ってデータ抽出にて説明しているが、ExcelVBAでフィルタ機能を使用する方法を説明します。
以下に作成するVBA例を示します。 なお、このモジュールは標準モジュール(Module1)に作成してください。
| 作成するモジュール |
|---|
|
'***** フィルタ機能によるデータ抽出 ***** Public Sub SelectData() Dim fData As Range Dim fCriteria As Range Sheets("Sheet2").Select Set fData = Range(Cells(1, 1), Cells(12, 4)) '元データ Sheets("Sheet1").Select Set fCriteria = Range(Cells(1, 1), Cells(2, 1)) '抽出条件 Sheets("Sheet3").Select Cells.Clear 'データのコピー先は必ずクリアする fData.AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=fCriteria, _ CopyToRange:=Range("A1"), _ Unique:=False Set fData = Nothing Set fCriteria = Nothing End Sub |
元データのセル範囲はRange("A1").End(xlToRight).ColumnとRange("A1").End(xlDown).Rowで求めると良い。 また、フィルタ機能を実行する前にコピー先のシートをクリアしておかないと正しく動作しません。
作成日:2007/11/30
Copyright(C) 2007-2007 株式会社サープレス