カテゴリ
パソコン関連のお得情報
[chat face=”pose_atama_kakaeru_man.png” name=”” align=”left” border=”gray” bg=”none” style=””]Excelでオートフィルタをよく使うけど、チェックを付けたり、外したり、全部解除したり…毎回同じ作業をするのがなにかと面倒。どうにかならないかな?[/chat]
[chat face=”shigoto_woman_casual.png” name=”ごん” align=”right” border=”gray” bg=”none” style=””]VBAマクロを使えば効率よく自動化できるよ[/chat]
仕事で日報や経費の計算、作業員名簿などなにかとオートフィルタを使う機会が多いかたは
フィルタでチェックを入れ替える
フィルタの(すべて選択)を選ぶ
フィルタであいまい検索をする
など、同じ作業を繰り返すことがたくさんあるのではないでしょうか?
この記事では、何度も使うオートフィルタの機能をVBA(マクロ)で自動化して、作業の負担を減らす方法をご紹介しています。
ここで紹介するマクロをボタンに設定するとワンタッチで利用することができます。
まずはフィルターで選んだ項目を全て外し、表が全部見えている状態に戻すマクロです。
Sub Macro_filterclear()
Range("A1").Select
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
End Sub
Sub Macro_filterclear()
→マクロの名前です。
塗りつぶし部分は変更してもかまいません。
Range(“A1“).Select
→オートフィルタを設定している表の一番左上のセルを指定します。
今回はA1でした。
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
→フィルタの選択部分を解除するコードなのでこのまま
End If
End Sub
→このまま
Sub macro_filterSell()
Selection.AutoFilter Field:=3, Criteria1:=Range("D1").Value
End Sub
Sub macro_filterSell()
→マクロの名前です。
塗りつぶし部分は変更してもかまいません。
Selection.AutoFilter Field:=3,
→Field:=3 の3の部分が、オートフィルタの表の中で条件を指定したい列の番号です。
たとえば
・A1:C3の表でBの列の条件を指定したい場合は2
・C1:D5の表でCの列の条件をしていしたい場合は1
と記載します。
Criteria1:=Range(“D1”).Value,
→条件を記入するセルを指定します。
D1の部分を変えてください
End Sub
→このまま
Sub macro_filterCon()
Selection.AutoFilter Field:=3, Criteria1:="1"
End Sub
Sub macro_filteCon()
→マクロの名前です。
塗りつぶし部分は変更してもかまいません。
Selection.AutoFilter Field:=3,
→Field:=3 の3の部分が、オートフィルタの表の中で条件を指定したい列の番号です。
たとえば
・A1:C3の表でBの列の条件を指定したい場合は2
・C1:D5の表でCの列の条件をしていしたい場合は1
と記載します。
Criteria1:=“1”
→条件を記入します。
この場合はフィルタで「1」のときを抽出することになります。
End Sub
→このまま
Sub macro_filter2con()
Selection.AutoFilter Field:=3, Criteria1:="<10", Operator:=xlAnd, Criteria2:=">=5"
End Sub
Sub macro_filter2con()
→マクロの名前です。
塗りつぶし部分は変更してもかまいません。
Selection.AutoFilter Field:=3,
→Field:=3 の3の部分が、オートフィルタの表の中で条件を指定したい列の番号です。
たとえば
・A1:C3の表でBの列の条件を指定したい場合は2
・C1:D5の表でCの列の条件をしていしたい場合は1
と記載します。
Criteria1:=”<10“,
→ひとつめの条件を記入します。
この場合はフィルタで「10より下」の抽出することになります。
Operator:=xlAnd,
→2つの条件を「And」にするか「Or」にするかを指定します。
xlAnd:「And」Criteria1かつCriteria2
xlOr:「Or」Criteria1もしくはCriteria2
Criteria2:=”>=5“
→ふたつめの条件を記入します。
この場合はフィルタで「10以上」の抽出することになります。
[chat face=”shigoto_woman_casual.png” name=”ごん” align=”left” border=”gray” bg=”none” style=””]今回のマクロでは「xlAnd」なので「10より下」かつ「5以上」の数値が抽出されるね[/chat]
End Sub
→このまま