[ 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 Comment

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