[[20141122140328]] 『オートフィルタ絞り込み解除のコードの意味』(koko) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートフィルタ絞り込み解除のコードの意味』(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


半平太さんへ
解答有難うございます。
すっきりしました。
>ShowAllDataメソッドがありますから。
知りませんでした。
ActiveSheet.AutoFilter.ShowAllDataだけでOKでした。
有難うございました。

(koko) 2014/11/22(土) 21:15


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.