Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


22626 / 76738 ←次へ | 前へ→

【59490】Re:オートフィルターの繰り返し
発言  kanabun  - 08/12/13(土) 9:54 -

引用なし
パスワード
   ▼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】アドバンスフィルターの使い方について

のほうで、その後展開されています。

0 hits

【59281】オートフィルターの繰り返し フィルター 08/12/4(木) 17:15 質問
【59282】Re:オートフィルターの繰り返し kanabun 08/12/4(木) 17:20 発言
【59284】Re:オートフィルターの繰り返し kanabun 08/12/4(木) 20:00 発言
【59417】Re:オートフィルターの繰り返し フィルター 08/12/10(水) 16:48 お礼
【59447】Re:オートフィルターの繰り返し フィルター 08/12/11(木) 15:29 質問
【59452】Re:オートフィルターの繰り返し kanabun 08/12/11(木) 17:24 発言
【59454】Re:オートフィルターの繰り返し フィルター 08/12/11(木) 17:45 お礼
【59455】Re:オートフィルターの繰り返し フィルター 08/12/11(木) 18:53 質問
【59484】Re:オートフィルターの繰り返し pico 08/12/12(金) 22:17 発言
【59485】Re:オートフィルターの繰り返し かみちゃん 08/12/12(金) 22:40 発言
【59490】Re:オートフィルターの繰り返し kanabun 08/12/13(土) 9:54 発言
【59497】Re:オートフィルターの繰り返し pico 08/12/13(土) 20:28 発言

22626 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free