• ベストアンサー

エクセル 複数シートを一つに集約

フォーマットが同じ複数のシートをひとつに纏める方法を教えて下さい。 行のタイトルなどは集約後に消せるので、シートまるごと集約シートの下に・・・下に・・・と追加したいのです。 良い方法がないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

集約用にSheet3を確保します・ Sheet3以外の全シートを集約します。 Sub test07() Dim sh3 As Worksheet Dim sh As Worksheet Set sh3 = Worksheets("Sheet3") k = 1 For Each sh In ActiveWorkbook.Worksheets If sh.Name <> "Sheet3" Then MsgBox sh.Name sh.UsedRange.Copy sh3.Cells(k, "A").Select sh3.Paste k = k + sh.UsedRange.Rows.Count End If Next End Sub ただやってみると、別シートを参照した式などがあると、エラーが出てしまいますが、別問題としています。

beakichi
質問者

お礼

すごいですね~ 罫線も、着色も全てOKでした。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • fukuchan7
  • ベストアンサー率51% (156/302)
回答No.3

No1、No2さんのようにVBAを使うのも良いと思いますが、VBAの入力と動作確認にそうと時間がかかると思います。シート枚数がそんなに多くないのなら原始的かもしれませんが、コピーAND貼り付けすれば簡単だと思います。 方法は、集約用にSheetNを確保します。 sheet1を全部コピーしてsheetNに貼り付け sheet2の「行のタイトル」行を除いてコピーしてsheetNの先にコピーしたsheet1の最後の行の次にに貼り付ける 以下繰り返しでコピーすれば楽だと思いますが・・・

全文を見る
すると、全ての回答が全文表示されます。
  • tona-tona
  • ベストアンサー率34% (8/23)
回答No.1

こんにちは。 VBAを半年振りに再開した初級者くらいです。 参考程度にしてください。 動作確認:Excel97 まとめ というシートを1枚作っておくと、 そのシートの2行目以降に転記されます。 Sub 纏めたいシートを全部選択してから実行してね002() Dim Sh As Worksheet Dim Sh1 As Worksheet Dim Rng As Range Dim Rsp As Integer On Error GoTo myCancel Set Rng = Application.InputBox("表の1部をクリック!", "セルの指定", "=$A$1", , , , , 8) On Error GoTo 0 Application.ScreenUpdating = False Set Sh1 = ActiveWorkbook.Sheets("まとめ") On Error Resume Next For Each Sh In ActiveWindow.SelectedSheets Sh.Range(Rng.Address).CurrentRegion.Copy Destination:=Sh1.Cells(Rows.Count, 1).End(xlUp).Offset(1) Next Sh On Error GoTo 0 Application.ScreenUpdating = True Exit Sub myCancel: End Sub

beakichi
質問者

お礼

表の1部をクリックとは、コピー元のどこでも良いのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル マクロ 複数シートを集約

    複数のエクセルシートの同一範囲を集約シートに纏めたいのですが どうやったらできるのか教えてください。 (1)範囲はA1からL216まで (2)シート数は毎回変動 (3)集約シートにはシート1の内容の次の行からシート2の内容というふうに  ずらずらとデータを並たい 以上3点が要望としてあります。 いくつかのマクロを組み合わせて一つのマクロを作ろうとしたところ この部分だけうまくいかずに困っております。

  • EXCEL 複数シートを1つのシートに集約する方法

    1つのブックに複数(30程度)の同一フォームのシートがあり、それらを1つのシートにまとめる方法があれば教えて下さい。 データを統合(集計)するわけではなく、単純にシート1の最後のデータの次の行にシート2のデータを追加、同様にシート3~最後のシートのデータを次々に追加したいのです。 手作業でデータをコピー&ペーストでももちろん可能ですが、結構時間がかかりますので簡単なマクロでできれば助かります。 よろしくお願いします。

  • Excelのシートを集約したいのですが。。。

    EXCELにて、複数のシートを1シートに集約したいのですが、 どうすればいいでしょうか? Sheet1からSheet10ぐらいの量だったので、範囲を指示してコピー&ペーストしていたのですが。。。 Sheet1からSheet50の量になると大変で困ってます。 1シートには印刷で1ページ分のデータが入っています。 Sheet1の内容の下にSheet2の内容を、その下にSheet3の内容という様にコピーしたいです。 何か、簡単なマクロ等有りましたら、教えてください。 VBAは使用した事がないのでよくわかりません。 よろしくお願いします。

  • エクセルで複数のシートにあるものをひとつに

    お世話になっております。 似たような質問を検索してみましたが、いまいち要領がつかめませんので教えて下さい。 ブックに複数のシートがあり、それをを同じブックまたは、別のブックでもいいので一つのシートにまとめたいのですが何かいい方法はありますでしょうか? ブックにより、シート枚数が違います(多いものは30シート以上)。 同じブックでの各シートの列のタイトルは同じで、行はデータ量により違います。(多いものは1000行以上) イメージとしては、シートを全コピーして、新しいシートにペースト。 次のシートを全コピーしてそれを、今ペーストした下の行にペースト。 現在はこのコピー&ペーストで地道に作業しております。 かなり時間を取られております。 XPでオフィスは2007を使用しております。

  • エクセル VBA:複数のシートを1つに集約

    以前どこからか以下のようなVBAを見つけ使用していました。 今になり実情に合ったものに改良したいと思い始めたのですが、コピーをとる時のプロパティ UsedRangeが理解できません。 実はデータは少し不完全な場合があり、A列が他の列に比べ不足しております。 解説書などではUsedRangeを使えば、データの一番外枠、つまり全てのデータを含むようにコピーされると理解したのですが、違うのでしょうか。 データはこんな感じです。 A、B XXX、BBB XXX、BBB 、BBB よろしくお願いします。 Sub Sample() Dim sWS As Worksheet 'データシート(コピー元) Dim dWS As Worksheet '集約用シート(コピー先) Set dWS = Worksheets("AllData") '集約用シートの2行目以降を削除 dWS.UsedRange.Offset(1, 0).Clear '各シートの2行目以降のデータを、集約用シートの末尾にコピー For Each sWS In Worksheets If sWS.Name <> dWS.Name Then With sWS.UsedRange 'コピー元シートにデータが1件以上ある場合 If .Rows.Count > 1 Then .Offset(1, 0).Resize(.Rows.Count - 1).Copy _ Destination:=dWS.Cells(Rows.Count, 1). _ End(xlUp).Offset(1, 0) End If End With End If Next sWS End Sub

  • 複数ファイルの情報をひとつに集約したい

    (1)~(4) という名前の四つのファイルがあり、中身はすべて同一形式で作成されています。 A列:見積書NO この(1)~(4)のファイルの情報をひとつに集約するシートを新たに作成したいと考えています。その際、(1)~(4)のA列で、見積書NOが入力されているものだけを抽出していきたいのですが、どのようにすればよいでしょうか? (例:(1)のA列で見積書NOが入力されている行は5行、(2)は3行、(3)は15行、(4)は1行 といった場合、集約されるシートのA列には合計24行が入力されるといった具合です) 残りの情報はVLOOKUPで設定できそうなのですが、この方法だけがわかりません。ご教授願います。

  • エクセルの複数、複数シートを一つにする

    エクセルの複数のシートを一つにしたいと思います。 それぞれのタイトルは若干順序や内容がちがいます。 どうもミスが多いので、ミスなく早く一つにできる方法はありませんか。 また、複数のよく似たエクセルを一つにする場合は、 一つのエクセルにシート別にして、複数シートから1シートにする方法が早いでしょうか。 マクロなどは使えないので、力技の方法とミスを少なくする方法をご紹介いただけるとたすかります。

  • Excel VBA 複数のシートの行を非表示

    いつもお世話になっています。 ブック内の同じフォーマットの複数のシートの行を非表示にしたいのですが、 繰り返し処理の記述方法がわかりません。 除外したいシートも数枚あり、"S"から始まるシートだけ操作したいです。 御回答よろしくお願いいたします。

  • エクセル複数シートから一定の範囲を1シートへVBA

    エクセルのVBAで質問です。 A1~A3行までは、タイトル(3行が列タイトル) A4行以降から一定のデータが入っており、商品ごとにシートを分けています。 列BF4~BM81までのデータを自動でコピーし、全データシートも自動でできればと思っています。 BF4列には、日付が入っており、複数のシートからコピーされたものは、日付順にて並べたい。「全データシート」を自動で作成する方法は、ネットにて調べることができたのですが、一定の範囲内の複数シートを合算し、日付順に並べ替えて自動でコピーするというのが分かりません。 VBAも全くの初心者です。 詳しくお教えいただればと思います。 よろしくお願いします。

  • 複数のSheetのデーターを一枚のシートへ転記させる。

     エクセル初心者です。よろしくお願いします。 例えば      A     B      C    D     E      F 1 2  タイトル  タイトル              タイトル 3    a     b                    f 4 5 6 という全く同じSheetを毎日一枚ずつ作成していくとして、ここで”集計”Sheetに        A        B         C      D      E 1                      タイトル   タイトル  タイトル 2 追加した日付 追加Sheet名     a       b       f 3 追加2枚目  4 追加3枚目 5    " 6    " と言うように、行ごとに追加されていくSheetのデーターを”集計”一枚に自動で転記していきたいと思います。当方全くの初心者ですので、できましたら関数で教えて頂きたいと思います。 追加した日付や追加したSheet名を自動での転記させる方法は関数では無理かもしれませんが、タイトル集計だけでもかまいませんので、わかる範囲でよろしくお願いします。

専門家に質問してみよう