• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答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

専門家に質問してみよう