[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートフィルタ絞り込み解除のコードの意味』(koko)
お世話になります。
下記の式をhttp://excel-ubara.com/excelvba2/EXCELVBA018.htmlで見つけました
「Range("$A$1:$C$4").AutoFilter Field:=i」の意味がわかりません。
Range("$A$1:$C$4")にはどんな意味がありますか?
オートフィルタが"$A$1:$C$4"より広範囲に設定されていても解除できるのですが?
ご教示お願い致します。
Sub Macro4()
Dim i As Long
If ActiveSheet.AutoFilterMode = True Then
For i = 1 To ActiveSheet.AutoFilter.Filters.Count
If ActiveSheet.AutoFilter.Filters(i).On = True Then
ActiveSheet.Range("$A$1:$C$4").AutoFilter Field:=i
’↑の意味がわかりません。
End If
Next i
End If
End Sub
< 使用 Excel:Excel2007、使用 OS:WindowsVista >
>Range("$A$1:$C$4")にはどんな意味がありますか? >オートフィルタが"$A$1:$C$4"より広範囲に設定されていても解除できるのですが?
1.XL2007は持っていないのですけど、私の環境(XL2010、XL2013)でテストしてみたところ・・・ 確かに、既にAutoFilterModeがTRUEになっている場合、 セル範囲の指定はほとんど意味ないですねぇ(どんなRangeでもいいみたい)。
AUTOFILTERオブジェクトを作った時の範囲と同じにするとしっくりくるってだけでしょうね(気分的に)。
2.そもそも「全ての」フィールドの絞り込みを解除するためにループを使う事には違和感があります。 ShowAllDataメソッドがありますから。
(半平太) 2014/11/22(土) 17:33
(koko) 2014/11/22(土) 21:15
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.