アプリ版:「スタンプのみでお礼する」機能のリリースについて

並び替えるマクロを作りたいと思っています。
ある一定の法則で並んでいるものを並び替えるので、
コピー&貼り付けマクロでは長くなってしまうので
変数を使用したいと思っているのですがうまくいきません。
なにか良い方法はないでしょうか。

C6から始まる連続データを、E10から2行ずつあけて貼り付けをしたいです。
C列のデータは400行くらいまで続き、
E列の空けた部分(E11,E12)にもC列のほかの部分から貼り付けしたりする予定なので
列の挿入や削除はできるだけ使用したくありません。

Sub test()
Dim I As Long, J As Long,
J = 11
For I = 7 To J Step 3
Cells(I, 3).Copy Cells(I + 3, 5)
Next I
End Sub

上記作成してみたものの、E列が11行目になると終わってしまい、どう手直ししたらいいのかわかりません。
本来であればC列が11行目になったらコピー・貼り付けを終了したいです。

あ行の貼り付けはこのマクロ、
さ行の貼り付けはこのマクロとして複数組んでいく予定です。
詳しい方、教えてください。
よろしくお願いいたします。

「エクセル VBA 指定の範囲内をコピー 」の質問画像

質問者からの補足コメント

  • 早速ありがとうございます!
    質問1)回答
    C7が正しいです。訂正ありがとうございます。

    質問2)回答
    B列およびD列は、項目名
    C列およびE列は、項目に対する値
    となっています。
    よってB列・D列はコピーしません。
    C列のどの部分がE列にコピーできているかわからなかったので、
    B列・D列に項目名を入れているだけです。

    マクロの全体像としては、C列にテキストを読み込み、並べ替え、E列をテキストで保存する予定です。
    読み込み・保存はできたのですが、並べ替えに苦戦しています。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/07/12 13:29

A 回答 (2件)

以下のマクロを作成してください。


Option Explicit
Public Sub あ行コピー()
Dim row As Long
Dim row2 As Long
row2 = 10
For row = 7 To 11
Cells(row2, "E").Value = Cells(row, "C").Value
row2 = row2 + 3
Next
End Sub
    • good
    • 1

補足要求です。


質問1)
>C6から始まる連続データを、E10から2行ずつあけて貼り付けをしたいです。
C7から始まる・・・が正しいですね。

質問2)
コピーするのはC列をE列にコピーだけですか。
図ではB列をD列にコピーしたいように見えます。(マクロではB列をD列にはコピーしていない)
B列をD列にコピーするのでしょうか。それともしないのでしょうか。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A