- ベストアンサー
エクセル タブと列を入れ替え
同じレイアウトのシートが30枚ほど入ったブックです。 シートには項目ごと月ごとの表が入っています。シートは組織ごとです。これを入れ替えて シートを組織ごと月ごとの表とし、シートを項目ごととすることはできないでしょうか?腕力ではシンドイです。 教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
多分関数では複雑になると思います。 関数は表の組み換え特にシートをまたがるものは苦手分野です。 VBAでやるような課題と思います。 ーー VBAが経験ないなら操作で、 30枚を1シートにコピペして集約し、 項目でソートして 項目の分かれ目を切り貼りして、新しいシートを項目数分作る。 項目数がどれほどあるか質問に書いてないが。 30枚のコピーなど思うとうっとうしいですが、やってみるとすぐです。 ーー 参考までに コピー集約をVBAでやると 標準モジュールに貼り付けし、実行。 Sub test01() Dim sh As Worksheet Worksheets("Sheet4").Cells.Clear For Each sh In Worksheets If sh.Name <> "Sheet4" Then MsgBox sh.Name d = Worksheets("Sheet4").Range("A65536").End(xlUp).Row MsgBox d sh.Range("A2").CurrentRegion.Copy Worksheets("Sheet4").Range("A" & d + 1) End If Next End Sub ーーー 上記で前提・約束ごと 集約するシートのシート名をSheet4にする。 各データシートのA2はかならずデータがあること。そしてデータはその塊の中にあり空白行や空白列は無いものとする。 (言っていることが判りにくければ CurrentRegion でWEB照会のこと) シート数は制約が無いが、集積してはならないシートが含まれて居ないこと。含まれている場合はコードを少し変えると対処できるが) ーーー このあとソートやシートに分割が必要だが、質問者のVBAの経験度合もわからないので略。
その他の回答 (1)
- hallo-2007
- ベストアンサー率41% (888/2115)
シートの構成が表記してないので参考ですが INDIRECT関数を使用することになると思います 1行目にシート名があるとして A B C D 項目 シート1 シート2 シート3・・・ B2セルに =INDIRECT(B$1&"!A2") といれて 右へコピィするとか試してみてください。
お礼
早速やってみました。 ありがとうございました。 がんばってみます。
お礼
ありがとうございました。勉強してやってみます。