• 締切済み

複数シートのデータを行列を入れ替えて統合したい

現在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で処理できたらと思います。 どのようにすればよいか教えていただければ助かります。

みんなの回答

noname#79209
noname#79209
回答No.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()) でもいけます。

  • zawax
  • ベストアンサー率50% (3/6)
回答No.1

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

yukina_7
質問者

補足

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

関連するQ&A