• 締切済み

エクセルで、全てのシートに同じ作業を実施し、その後データを統合したい

EXCEL2000を利用しています。 一つのブックに100枚ほどのシートが存在します。 そのシートは全て同じフォーマットです。 日付 (A1)  名前 (B1) 文章1(A2)  文章2(B2) 文章3(A3)  文章4(B3) 以上のようなフォーマットのシート全てから、データを抽出し、以下のような形式で一つのシートにまとめたいのです。 日付(A1) 名前(B1) 文章1(C1) 文章2(D1) 日付(A2) 名前(B2) 文章1(C2) 文章2(D2) ・        ・ 方法をご教授ください。 よろしくお願いします。

みんなの回答

noname#97729
noname#97729
回答No.2

集計シートを作ります。(必ず) そして、次のマクロを実行します。 Sub macro01() Dim i, m As Integer Dim sheetname As String m = 1 Worksheets("集計").Select For i = 1 To Sheets.Count sheetname = Sheets(i).Name If sheetname <> "集計" Then Cells(m, 1).Value = Worksheets(sheetname).Cells(1, 1).Value Cells(m, 2).Value = Worksheets(sheetname).Cells(1, 2).Value Cells(m, 3).Value = Worksheets(sheetname).Cells(2, 1).Value Cells(m, 4).Value = Worksheets(sheetname).Cells(2, 2).Value Cells(m, 5).Value = Worksheets(sheetname).Cells(3, 1).Value Cells(m, 6).Value = Worksheets(sheetname).Cells(3, 2).Value 'シート名確認用 Cells(m, 7).Value = sheetname m = m + 1 End If Next MsgBox ("処理終了") End Sub

noname#97729
noname#97729
回答No.1

まず、集計シートを作ります。 次にブック内のシート名を一覧表示するマクロを使います。 Sub test() Dim i As Integer For i = 1 To Sheets.Count ActiveCell.Offset(i - 1).Value = Sheets(i).Name Next ActiveCell.EntireColumn.AutoFit End Sub 参照 http://www2.odn.ne.jp/excel/waza/macro.html#SEC10 マクロを実行すると、 これで集計シートのA列にシート名の一覧ができます。 そして B1に=INDIRECT(A1 & "!A1") C1に=INDIRECT(A1 & "!B1") D1に=INDIRECT(A1 & "!A2") と集計シートに各シートの内容を表示させます。 あとはB1をB2、B3、B4とコピーしていきます。 C1も同じようにしてコピーします。 A列はシート名になりますがこれでどうでしょうか。

関連するQ&A