プロが教えるわが家の防犯対策術!

A.xlsというExcelブックにSheet1~Sheet35があります。
各シートには以下のような同じフォームのデータが入っています。
XXXX部分と生徒数はデータごとに異なります。

生徒氏名 国語 数学 理科 社会 英語
XXXX XX XX XX XX XX
XXXX XX XX XX XX XX
  :   :  :  :  :  :
XXXX XX XX XX XX XX
XXXX XX XX XX XX XX
XXXX XX XX XX XX XX


いま、Sheet1の前に「併合」というシートをつくり、
そのシートに

Sheet1のデータ
Sheet2のデータ
Sheet3のデータ

Sheet35のデータ

というようにすべてのデータを縦に結合した結果を出力したいと考えています。
これを書くためのVBAコードを教えていただけないでしょうか。
よろしくお願いいたします。

A 回答 (1件)

「併合」と言うシートを作成した後に実行。



Sub try()
Dim ws As Worksheet
Dim rr As Range, rs As Range

Set rr = Worksheets("併合").Range("A1")

For Each ws In Worksheets

If ws.Name <> "併合" Then
Set rs = ws.Range("A1").CurrentRegion
rs.Copy rr
Set rr = rr.Offset(rs.Rows.Count)
End If

Next

Set rr = Nothing
Set rs = Nothing

End Sub

ご参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!