[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『AutoFilterについて』(秋雨)
おたずねします。
下記のコードでSelection.AutoFilter Field:=3, Criteria1:="0412"の箇所しか抽出しないときは、
Selection.AutoFilter Field:=4, Criteria1:="0100"の箇所は、前に'を付けています。
もう少し使いかっての良い方法を指南下さい。
Sub Filter_2013()
Range("B3:M3").Select Selection.AutoFilter Selection.AutoFilter Field:=3, Criteria1:="0412" Selection.AutoFilter Field:=4, Criteria1:="0100" End Sub
< 使用 Excel:Excel2013、使用 OS:Windows7 >
フィルタは 0412 と 0100 との2種類の組合せ固定なのでしょうか。 直感的なのはマクロ自体を分けてしまうか、セルに条件を記載するか、 程度の工夫だと思いますが。
後者であれば、こんな感じで。 http://www.atmarkit.co.jp/ait/articles/1407/15/news028.html (Mook) 2014/09/11(木) 11:17
(秋雨) 2014/09/11(木) 15:14
何を条件にしたいのでしょうか。それ次第だと思いますが。
例えばアクティブセルを条件にすれば、こんな処理もできるかと思います。
Sub Filter_Sample() If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False End If With ActiveSheet.Range("B3:M3") .AutoFilter Select Case ActiveCell.Column Case 4 '// D列にアクティブセルがあれば .AutoFilter Field:=3, Criteria1:="0412" Case 5 '// E列にアクティブセルがあれば .AutoFilter Field:=4, Criteria1:="0100" Case Else '// D、E列以外にアクティブセルがあれば .AutoFilter Field:=3, Criteria1:="0412" .AutoFilter Field:=4, Criteria1:="0100" End Select End With End Sub
(Mook) 2014/09/11(木) 16:06
.AutoFilter Field:=3, Criteria1:="0412"の検索だけで抽出したいのですができるでしょうか? いま、こうなっています。 Sub Filter_Sample_b() If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False End If
With ActiveSheet.Range("B3:M3") .AutoFilter Select Case ActiveCell.Column Case 4 '// D列にアクティブセルがあれば .AutoFilter Field:=3, Criteria1:=Range("AD2").Value Case 5 '// E列にアクティブセルがあれば .AutoFilter Field:=4, Criteria1:=Range("AE2").Value Case Else '// D、E列以外にアクティブセルがあれば .AutoFilter Field:=3, Criteria1:=Range("AD2").Value .AutoFilter Field:=4, Criteria1:=Range("AE2").Value End Select End With End Sub
(秋雨) 2014/09/12(金) 09:56
指定セルがもともと決まっているのであれば、今回のような指定ではなく With ActiveSheet.Range("B3:M3") .AutoFilter IF Range("AD2").Value <> "" Then .AutoFilter Field:=3, Criteria1:=Range("AD2").Value IF Range("AE2").Value <> "" Then .AutoFilter Field:=4, Criteria1:=Range("AE2").Value End With でもよいのでは?
(Mook) 2014/09/12(金) 12:11
If Application.CountIf(Range("E4:E2000"), Range("AE2").Value) = 0 Then MsgBox "該当なし" Exit Sub
(秋雨) 2014/09/12(金) 13:54
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.