Excel Microsoft VBA

『オートフィルター』機能を利用しよう!【VBA入門講座#21】

サブロー
こんにちは。サブローです。

『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。

仕事の改善や個人的な知識向上に役立ててください(^o^)

第21回目の今回は

VBAでのオートフィルター機能

について解説していきますので、よろしくお願いします。

これまでのVBAに関する記事は、下記のINDEXを参照してくださいね。

↓サブログ内部リンク(VBA用INDEX)↓

Excel VBA講座-目次(INDEX)

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

続きを見る






「オートフィルター(AutoFilter)」メソッド

書式:オブジェクト.AutoFilter([Field],[Criteria1],[Operator],[Criteria2],[VisibleDropDown])

機能:オートフィルター機能を利用して、データを抽出します。

引数:
・オブジェクト(必須):抽出元となるデータ範囲をRangeオブジェクトで指定します。

・Field(省略可能):条件を指定する列がリストの左から何番目かを指定し、一番左を1とします。

定数 説明
xlAnd 抽出条件1と抽出条件2をAND条件(両方を満たす)で指定します。
xlBottom10Items 抽出条件1で指定される下位のレコードを抽出します。
xlBottom10Percent 抽出条件1で指定される割合「%」の上位の値をもつレコードを抽出します。
xlFilterCellColor セルの色を指定します。
xlFilterDynamic 動的フィルタ(抽出条件 1 に、XlDynamicFilterCriteria 列挙型 の定数を指定します)
xlFilterFontColor フォントの色を指定します。
xlFilterIcon フィルタアイコンを指定します。
xlFilterValues フィルタの値を指定します。
xlOr 抽出条件1または抽出条件2をOR条件で指定します。(いずれかを満たす)
xlTop10Items 抽出条件1で指定される上位のレコード数抽出します。
xlTop10Percent 抽出条件1で指定される割合「%」の下位のレコードを抽出します。

・Criteria1(省略可能):抽出条件を指定します。(クライテリア1)「=」で空白セルが抽出され、「<>」で空白以外を抽出します。下記参照)

抽出条件 記述方法
Aと等しい “A”
Aと等しくない “<>A”
Aを含む “*A*”
空白セル “=”
空白以外のセル “<>”
10よりおおきい “>10”
10以上 “>=10”
10より小さい “<10”
10以下 “<=10”

・Operator(省略可能):抽出条件の指定方法を指定します。

・Criteria2(省略可能):2つ目の抽出条件を指定します。(クライテリア2)

・VisibleDropDown(省略可能):フィルターボタンを表示する場合はTrue、表示しない場合はFalseを指定します。省略した場合は、フィルターボタンが表示される。フィルターボタンを非表示にすると、ユーザーがオートフィルターを操作できない状態にして抽出結果を表示できます。

<コード例>

Sub sample1() 'B列の中から"A"に一致するデータを抽出

Range("A1").AutoFilter Field:=2, Criteria1:="A"

End Sub

Sub sample2() 'C列の中から1以上5未満の条件に一致するデータを抽出

Range("A1").AutoFilter Field:=3, Criteria1:="<5", Operator:=xlAnd, Criteria2:=">=1"

End Sub

Sub sample3() 'C列の中から上位10番のデータを抽出

Range("A1").AutoFilter Field:=3, Operator:=xlTop10Items

End Sub

「オートフィルター(AutoFilter)」のクリア

フィルターの絞り込みをクリアするには「ShowAllDataメソッド」を使用します。 「ShowAllDataメソッド」を使用してクリアする場合、オートフィルタが設定されていない場合、また絞り込みがされていない場合はエラーが発生します。それを避けるために下記のコード例のように「FilterMode」で絞り込みがされているか判定してからクリアするようにします。

<コード例>

Sub showdata()

If ActiveSheet.FilterMode = True Then'もしフィルターモードになっていれば・・・・

ActiveSheet.ShowAllData’フォリターをクリアし、全表示にする

End If

End Sub

モグゾー
それでは、今回はここまで。最後までお読みいただきありがとうございました!
2020年5月31日公開




~INDEX一覧~

エクセル関数の勉強 1

サブローエクセル/Excel関数の一覧にしています。本ブログ内で記事にしているものは、講座の列にリンク付けを随時行います(^o^) ※使用頻度のランクに関しては、個人的な主観でランク付けをしています。 ...

2

サブロー危険物取扱者試験 乙4種対策講座の目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 【目次/INDEX】 講座ID分類内容リンク 1共通#1『危険物取扱者試験』の ...

3

サブローQC(品質管理)検定に関する説明が増やして行く予定なのでリンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 モグゾー対象級を記載していますが、あく ...

4

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

-Excel, Microsoft, VBA
-, ,

Copyright© サブログ , 2020 All Rights Reserved Powered by AFFINGER5.