• ベストアンサー

ずばりこのステートメントを教えてください

Sheet2から右へ最終のシートまでのB5:K15の範囲を、Sheet1のA1から順に隙間無く下へ貼り付けていきたいのですが、そのステートメントをSubからEnd Subまで、教えてください。 他の質問など似たような感じのモノはありますが、応用が利かないもので・・・。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

マクロは便利ですので応用出来るように勉強された方が良いと思いますよ。 下記は左から2番めのシート~最終シートのB5:K15を一番左のシートに転記します。 Sub Test() Dim cnt As Integer, r As Range  Set r = Worksheets(1).Range("A1")  For i = 2 To Worksheets.Count    Worksheets(i).Range("B5:K15").Copy r    Set r = r.Offset(11, 0)  Next i End Sub

kukur
質問者

補足

早速の回答ありがとうございました。 できました!! ただ、データとデータの間に1行が入っているのですが、これを省くようにすると、どのようなステートメントになりますか? よろしくお願いします。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

指定通りならあいだは開かないと思いますが、、、 B5:K15 が違っているのではないですか?→ B5:K14 r は貼り付ける先頭セルを表します。 Set r = Worksheets(1).Range("A1") で r に A1 を代入しています。 これで最初の r が A1 となります。 Set r = r.Offset(11, 0) で r から 11行下を r にセットしなおします。 これにより r は A12 になります。 このループで繰り返す事で r は A1 → A12 → A23 → A34 ・・・ と変化していきます。 何処を直せば良いかこれで解りますか?

kukur
質問者

お礼

まさに2行目でおっしゃった通り、範囲を勘違いしていました。 どうもすみません・・・。 これで、ひたすらコピー・ペーストの繰り返しをせずにスピードアップできました。 一念発起してマクロを勉強しようと、書籍を購入しましたが、本の手順に沿ってしか出来ず、まだまだです。 これからがんばらねば。 どうもありがとうございました。

関連するQ&A