[ Excel-VBA ] オートフィルターを設定する ( Range.AutoFilter )

Pocket

Excel のメニューから以下のように、ヘッダ列を選択してフィルターを設定することが簡単にできます。ちなみに、ヘッダ列の後尾に行を追加していく ( 下記では国名を追加していく感じ ) とフィルターにもその入力内容が表示されますが、ヘッダ行よりも前に追加 ( 書込 ) しても、フィルターには影響しません。

スポンサーリンク


エクセルでオートフィルターを設定する

エクセルでオートフィルターの設定

エクセルでオートフィルターの設定

VBA でオートフィルターを設定する

Range.AutoFilter メソッドを使用することで VBA からオートフィルターを設定できます。サンプルスクリプトは以下のとおりです。

    ' ヘッダ項目の範囲を指定してオートフィルターを
    ' 設定する
    Range(Cells(3, 7), Cells(3, 8)).AutoFilter

    ' 最初から列でフィルターを設定するには以下のようにパラメータを指定する
    ' 列:2列目(人口) 値:多い でフィルター設定する
    Range(Cells(3, 7), Cells(3, 8)).AutoFilter Field:=2, Criteria1:="多い"

なお、もう一度引数なしで AutoFilter メソッドを呼び出すことで、オートフィルターの設定を解除することができます。

ヘッダ列範囲の自動判定

ヘッダの最初の列だけを、AutoFilter メソッドのパラメータに指定しても Excel は自動で判断して次の列もオートフィルターの対象とします。次列もヘッダ列として判定する条件は、次列が空白ではない場合です。しかし、ヘッダ列の数が決まっているのであれば、この自動判定を利用して最初の列のみをパラメータに指定するよりも、ヘッダ列のすべての範囲を指定したほうが安全です。

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>