[[20051029133055]] 『RangeクラスのSelectメソッド?』(キャン) ページの最後に飛ぶ

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

 

『RangeクラスのSelectメソッド?』(キャン)

 マクロの実行中にこんなエラーが・・・
 Worksheets("〜").Range("H5:z23").Select
 RangeとSelectはセットで使用できないのでしょうか??

 普通に、出来ましたよ〜
 >Worksheets("〜")
 シート名は、合ってますか?

 (キリキ)(〃⌒o⌒)b


 対象シートがアクティブになっていないと、セルを選択することは出来ません。

 参考
 Application.Goto Reference:=Worksheets("Sheet3").Range("A154")
  (INA)

 これならできましたが
        Worksheets("〜").Select
        Selection.Range("H5:Z23").Select
 (キャン)

 衝突。
おそらく、アクティブでないシートのセルを選択しようとしているのでは。
Rangeオブジェクトを選択するためにはその親のSheetオブジェクトが
アクティブである必要があります。
 Worksheets("〜").Select
 Range("H5:z23").Select
とすれば「失敗しました」エラーは出ません。
 
ちなみに、その後の操作でSelectする必要性がなければ、
たとえばCopyメソッドであれば、Selectせずに
 Worksheets("〜").Select
 Range("H5:z23").Select
 Selection.Copy
 ↓
 Worksheets("〜").Range("H5:z23").Copy
のように書くことはできます。(みやほりん)

 Worksheets("A").Select
 Range("H5:J44").Select
 Worksheets("B").Select
 Range("H5:J44").Select
 Worksheets("C").Select
 Range("H5:J44").Select
 としたときどの3つのシートもH5:J44が選択状態になっていますよね?
 この後マクロではなく手作業でABCのシートの選択させた箇所のセル結合解除をします。
 この状態で
 Sheets("D").Range("H1:J40").Copy
    Sheets("A").Paste'←セレクト選択しなくても大丈夫ですよね?
    Sheets("B").Paste'
    Sheets("C").Paste'
こうすればいいのでしょうか?

 >どの3つのシートもH5:J44が選択状態になっていますよね?
そのコードですと
最終的にWorksheets("C")の Range("H5:J44")が選択されているだけです。
また、複数選択シートに対する操作はマクロで再現されないものが多いので、
複数シートを選択して操作する記録マクロでもうまくいかないときが。
該当範囲の結合セル解除なら、下記のように書けます。
 Worksheets("A").Range("H5:J44").MergeCells = False
 Worksheets("B").Range("H5:J44").MergeCells = False
 Worksheets("C").Range("H5:J44").MergeCells = False
 
【参考】
With Sheets("D").Range("H1:J40")
 .Copy Destination:=Sheets("A").Range("H5")
 .Copy Destination:=Sheets("B").Range("H5")
 .Copy Destination:=Sheets("C").Range("H5")
End With
 
(みやほりん)


 ありがとうございます。了解です。試してみます。


 マクロの自動記録だと遠回りになるのに
 With Sheets("D").Range("H1:J40")
 .Copy Destination:=Sheets("A").Range("H5")
 .Copy Destination:=Sheets("B").Range("H5")
 .Copy Destination:=Sheets("C").Range("H5")
 End With
こんな簡素な式になるんですね?すごいです。
 コピー先は左上だけを宣告すればいいんでしょうか?
 それとも全体を指定したほうがいいのでしょうか??

 「どちらでもできる」ので「どちらがいい」と言うことはないと思います。
どんな形のセル範囲をどのような範囲へ貼り付けるかによるでしょう。
(みやほりん)


 なるほど・・・
分かりました。ありがとうございます

コメント返信:

[ 一覧(最新更新順) ]


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