- ベストアンサー
複数シートの特定セルを1シートにまとめるには?
・・・E 5 名称 ・ ・ 7 住所 10 担当者 ・ ・ のような形式で顧客シートとして複数シート存在してます。 シート名称は、手動で名称に併せて変更してしまっています。 今後もシートコピーで増えていく予定です。 このシートたちを「まとめ」のシートにまとめたいのですが (シート名は仮にAから始まるとし) A B C 1 シートAの名称 シートAの住所 シートAの担当者 ・・・・・ 2 シートBの名称 シートBの住所 シートBの担当者 ・・・・・ 3 シートCの名称 シートCの住所 シートCの担当者 ・・・・・ こんな感じです。 ヨコ1列にまとめたいのです。 まとめたい項目は元の顧客シートで規則性をもったセルに 入力されている訳ではありませんが、7項目くらいで増える事はありません。 なので、元のセル番号を指定してまとめのシートに 貼付けをするイメージを持っているのですが、 過去のものではこの部分がわからず・・ 他のところからみつけたのでは r.Value = .Range("E5").Value r.Offset(, 1).Value = .Range("E7").Value r.Offset(, 2).Value = .Range("E10").Value がこの部分に値するのかと思いましたが、 そうするとその前後が分からなくなってしまい・・ 説明が下手ですいません。 まとめ方を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下のVBA試してみてください。 一番手前に空白のシートがあるとして Sub Macro1() Dim i As Integer For i = 2 To Worksheets.Count Cells(i, 2) = Sheets(i).Range("E5").Value Cells(i, 3) = Sheets(i).Range("E7").Value Cells(i, 4) = Sheets(i).Range("E10").Value Next End Sub
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
見つけられたものと同じ形式になるようにして、前後を追加しました。 以下のマクロのうち「まとめ用のシート名」を修正してください。 途中の「・・・・」以下に担当者他のコピーする項目を追加してください。 ---------------------------------- Sub test() Dim sh As Worksheet, r As Range Const sName = "Matome" '←まとめ用シートの名 Worksheets(sName).Cells.ClearContents '←まとめ用シートをクリア Set r = Worksheets(sName).Range("A1") '←まとめ用シートの記入開始位置 For Each sh In Worksheets If (sh.Name <> sName) Then With sh r.Value = .Name r.Offset(, 1).Value = .Range("E7").Value r.Offset(, 2).Value = .Range("E10").Value '・・・・・・・・・・ ここにコピーしたいセルを追加する End With End If Set r = r.Offset(1, 0) Next End Sub
お礼
ありがとう御座います。 初心者の私でも対応できるようになっていてとても助かりました!!
お礼
シンプルなのに、 これで対応していけそうですね、 どうもありがとう御座いました。