| 
    
     |  | ▼pico さん: >
 >kanabun様、いつも見させていただいています。
 >今回のご回答も
 >興味を持ってみさせていただいています。
 >
 >フィルターさんの最初の質問ですが
 >小生も、小生なりに動作させて見ましたが、
 >ご回答の内容で動作させますと、エラーが出ました。
 >ここで質問ですが・・・
 
 
 >>--------------------------------------------------
 >質問1
 >コードについて
 >Set CopyTo = Worksheets("WAREA")では、エラーが出るので
 >Set CopyTo = Worksheets("WAREA").Range("A1")にすると
 >抽出した行がWorksheets("WARA")の2行目に貼り付けられます。
 >これで間違いないでしょうか?
 
 すでに かみちゃんさんがフォローがありますとおり、
 > Dim CopyTo As Range
 変数 CopyTo は 抽出転記先の先頭セルのことです。
 そこは おっしゃるように、
 >Set CopyTo = Worksheets("WAREA").Range("A1")にする
 のが正解です。コード編集時のうっかりミスでした。
 
 >>--------------------------------------------------
 >質問2
 >CopyTo.Parent.UsedRange.ClearContents
 >「Parent」が指定されたオブジェクトの親オブジェクトを返す
 >ことだと判断していますが、このコードはどのような
 >役割をしているのでしょうか?
 
 ここも、おっしゃる通りです。
 役割というか、Parentプロパティを使うメリットは、
 >Set CopyTo = Worksheets("WAREA").Range("A1")
 とした時点で、セルCopyTo のシートは「WAREA」シートである、
 という情報が備わっているので、
 CopyTo.Parent と書いておけば、シート名("WAREA")が変わったとき
 最初の
 >Set CopyTo = Worksheets("WAREA").Range("A1")
 を変更するだけで、何か所もシート名を書き換える必要がなくなる
 ということです。
 補足ですが、あるセルの親であるワークシートへの参照は
 セル範囲.Parent とも、
 セル範囲.Worksheet とも書けます。
 
 
 なお、本スレッドそのものは、
 
 【59463】アドバンスフィルターの使い方について
 
 のほうで、その後展開されています。
 
 |  |