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

現在1ブックに30シートが入っています。
30シートすべて同じフォーマットで
A      B
項目名1 データ1
項目名2 データ2


のように複数行2列の内容です。
この30シート分のデータを行列を入れ替えて1シートに統合し
A項目名1       B項目名2       C項目名3
シート1のデータ1  シート1データ2  シート1のデータ3
シート2のデータ1  シート2データ2  シート2のデータ3

シート30のデータ1  シート30データ2  シート30のデータ3

のようにしたいのです。何ブックもあり、手動では時間がかかるため
VBAで処理できたらと思います。
どのようにすればよいか教えていただければ助かります。

A 回答 (2件)

データは256行でおさまっているのでしょうか?


ちょっとめんどくさいですが、

1.シート1の項目名列のでーたを選択して、コピー
2.纏めるシートを開いて、「機能を選択して貼り付け」から、「行列を入れ替えで貼り付け」をクリック。
これを30シート分繰り返す。

或いは、
纏めるシートのA1に
=INDEX(Sheet1!$A:$A,COLUMN(),1)
として横にコピー
纏めるシートのA2に
=INDEX(Sheet1!$B:$B,COLUMN(),1)
あとはこれの繰り返しでシート名を変更していく。

シート名がSheet1~Sheet30なら、
=INDIRECT("Sheet"&ROW()&"!B"&COLUMN())
でもいけます。
    • good
    • 0

行列入れ替えはPasteで、TransposeオプションつければOKですね。



あとは全シートを舐めるループの中で、Copy、Pasteを繰り返せば
よいでしょう。
項目数が可変の場合は、最大行はどこかを書いておくか、
Selection.Endで取ってくるなり工夫しましょう。

この回答への補足

早速の回答ありがとうございます。項目数は固定です。
お構いなければソース全体を記述していただけないでしょうか。

補足日時:2008/04/06 21:00
    • good
    • 0

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