2020/09/06(日)18:03
VBAスタンダード学習15[AutoFilter 予約語付き絞り込み]
今回より数回に分けて絞り込み(AutoFilter)
について記載していこうと思う。
--------------------------------------
①Range.AutoFilter
--------------------------------------
ソースコードを簡潔にするため、
「絞り込み」ボタン押下で「八百屋B」での
絞り込みに限定して記載してみる。
と、その前にオートフィルタを設定する際、
絞り込みがきちんとできる範囲になっているかを
Ctrl+「A」で確認しておく。
以下だと57行目が丸ごと空欄の為、58行目以降が
うまく絞り込みされないことになる。
どれかひとつでも列に値が無いと範囲として設定されない。
以下はきちんと絞り込みができる状態
※行まるごと空欄でなければ良いので
列に空欄と値が混じっていても絞り込みは可能。
これで絞り込みができる状態になったので、
「絞り込み」ボタンを押下
ソース
Sub setAutoFilter()
Range("B49").AutoFilter 1, "八百屋B"
' または
Range("B49").AutoFilter field:=1, Criteria1:="八百屋B"
End Sub
結果
オートフィルタが設定され、八百屋Bで絞り込みが
できていることが確認できた。
.AutoFilterの引数は、、、
第1引数:指定範囲の何列目を絞り込みするかを数値で指定
第2引数:絞り込みの条件を記入(1個目)
第3引数:xlOrやxlAnd等、2個目の条件を設定する際の条件を指定
第4引数:絞り込みの条件を記入(2個目)
引数について、上記ソースでは、
第1引数にfield:=1
第2引数にCriteria1:="八百屋B"
のように、予約語を利用した記述も可能だが、
後々の複雑な絞り込みの際には、これらの予約語を
付けているとエラーになるものがあるので
試験対策として覚えておく程度にした方が良いかと思う。
基本的には予約語無しで記入。
試験用に、、予約語は以下となる。
第1引数:field:=数値
第2引数:Criteria1:="絞り込みしたい文字"
第3引数:xlOr、xlAnd
第4引数:Criteria2:="絞り込みしたい文字"
引き続き、オートフィルタについて
次回以降も記載していこうと思う。