プロが教えるわが家の防犯対策術!

初めて質問します。VBA初心者です。

B列に連続した1ヶ月分のデータがあり、1日の項目は5項目あります。
このデータを1日分毎に、C列以降に貼り付けるマクロを教えてください。
A列には、日付が5行おきに入っています。

このような感じです。
実行前
↓↓↓
    A列  B列  C列  D列 ・・・
1行  1/1  10
2        20      
3        30
4        40
5        50
6    1/2  11
7        22 
8        33 
9        44 
10       55 
11   1/3 12



実行後
↓↓↓
    A列  B列  C列  D列 ・・・
1行  1/1  10    11   12
2        20    22    ・      
3        30    33    ・    
4        40    44    ・   
5         50    55    ・   

よろしくお願いいたします。

教えて!goo グレード

A 回答 (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
    • good
    • 2
この回答へのお礼

回答ありがとうございます。

試したところ、うまく動作しました。
行列の入れ替えは、かなりの頻度で使用するので助かりました。
また、質問させていただいた時はよろしくお願いします。

お礼日時:2012/07/19 23:12

こんばんは!



すでに回答は出ていますが・・・
関数での一例です。

C1セルに

=OFFSET($B1,COLUMN(A1)*5,,1)&""

という数式を入れ列・行方向にオートフィルでコピーではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

OFFSET関数を使用したことがなかったので、勉強になりました。
関数で出来るとは・・・。

ありがとうございました。また、よろしくお願いいたします。

お礼日時:2012/07/19 23:15

C1に↓の式を入れコピー。


=INDEX($B:$B,ROW()+5*(COLUMN()-2))
必要な範囲(10日分ならC1:K5)に貼り付け。
続いて貼り付けた範囲をコピーして値貼り付けで値だけにする。

マクロにしたい場合は、上記操作をマクロ記録してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

なるほど、関数でも設定が出来るのですね。
今回は、VBAで取り出したデータの行列を入れ替えする予定ですが、
これをマクロに記憶させたら、できました!

また、わからないことがあれば質問します。
ありがとうございました。

お礼日時:2012/07/19 23:14

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

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

教えて!goo グレード

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

人気Q&Aランキング