- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 連続行データを5行ずつ隣の列に貼り付ける)
VBAで連続行データを5行ずつ隣の列に貼り付ける方法
このQ&Aのポイント
- VBA初心者の方からの質問です。B列に連続した1ヶ月分のデータがあり、1日の項目は5項目あります。このデータを1日分毎に、C列以降に貼り付けるマクロの作成方法を教えてください。また、A列には日付が5行おきに入っています。
- 実行前のデータの例を示します。B列には1ヶ月分のデータが連続しており、1日ごとに5行の項目があります。このデータを1日ごとにC列以降に貼り付けたいと考えています。
- 質問者はVBA初心者であり、連続行データを5行ずつ隣の列に貼り付けるためのマクロの作成方法を知りたいとしています。具体的な要件として、B列には連続した1ヶ月分のデータがあり、1日の項目は5項目あります。これを1日ごとにC列以降に貼り付けるマクロを教えてほしいとのことです。また、A列には日付が5行おきに入っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 B列を基準に5行単位でC列以降にコピーしています。 Sub sample() Dim i As Long, j As Long j = 2 For i = 6 To Cells(Rows.Count, "B").End(xlUp).Row Step 5 j = j + 1 Cells(1, j).Resize(5).Value = Cells(i, "B").Resize(5).Value Next End Sub
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
回答No.3
こんばんは! すでに回答は出ていますが・・・ 関数での一例です。 C1セルに =OFFSET($B1,COLUMN(A1)*5,,1)&"" という数式を入れ列・行方向にオートフィルでコピーではどうでしょうか?m(_ _)m
質問者
お礼
回答ありがとうございます。 OFFSET関数を使用したことがなかったので、勉強になりました。 関数で出来るとは・・・。 ありがとうございました。また、よろしくお願いいたします。
- mt2008
- ベストアンサー率52% (885/1701)
回答No.1
C1に↓の式を入れコピー。 =INDEX($B:$B,ROW()+5*(COLUMN()-2)) 必要な範囲(10日分ならC1:K5)に貼り付け。 続いて貼り付けた範囲をコピーして値貼り付けで値だけにする。 マクロにしたい場合は、上記操作をマクロ記録してください。
質問者
お礼
回答ありがとうございます。 なるほど、関数でも設定が出来るのですね。 今回は、VBAで取り出したデータの行列を入れ替えする予定ですが、 これをマクロに記憶させたら、できました! また、わからないことがあれば質問します。 ありがとうございました。
お礼
回答ありがとうございます。 試したところ、うまく動作しました。 行列の入れ替えは、かなりの頻度で使用するので助かりました。 また、質問させていただいた時はよろしくお願いします。