[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.