- ベストアンサー
3つの別々のExcelを1つのExcelに集計
- 会社でバラバラに管理されているExcelデータを1つのExcelに集計する方法を知りたい。
- 東京、千葉、大阪の3つのExcelデータを集計する仕組みを作りたい。
- Excel2003とWindows XP SP3の環境で、3つのExcelを集計する方法を教えてほしい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub Test1() Dim oldWB As Workbook Dim newWB As Workbook, newWS As Integer Set newWB = ActiveWorkbook newWS = newWB.Worksheets.Count Workbooks.Open Filename:="正確なパス+ファイル名" Set oldWB = ActiveWorkbook oldWB.Sheets("コピーするシート名").Copy After:=newWB.Sheets(newWS) oldWB.Close End Sub これを「集計.xls」のThisWorkbookプロシージャあたりに貼り付け、 > パスは異なります と言うことなので、元ファイルの数分、ファイル名・シート名を手作業で打ち直して実行。 マクロの使い方はご自身で調べましょう。 一つのファイルに集約されたら、あとは串刺しで計算させるだけです。 一つのフォルダに集約できるなら Sub Test2() Dim oldPath As String, oldWB As String Dim newWB As Workbook, newWS As Integer Set newWB = ActiveWorkbook oldPath = "正確なパス(¥)まで" oldWB = Dir(oldPath & "*.xls*") Do Until oldWB = "" newWS = newWB.Worksheets.Count Workbooks.Open Filename:=oldPath & oldWB Workbooks(oldWB).Sheets(1).Copy After:=newWB.Sheets(newWS) Workbooks(oldWB).Close False oldWB = Dir() Loop End Sub ただし、集計.xlsとは別の場所にフォルダを作ること、 コピー元のシート名に重複がないことが条件です。
その他の回答 (1)
- tsubuyuki
- ベストアンサー率45% (699/1545)
最低限度、足りない情報が3つです。 (1)集計結果のレイアウト (2)集計元の「シート名」、集計元それぞれに1枚なのか複数枚あるのか (3)3ファイルからのコピーペーストであれば、手作業でも大差ないと思うがいかがか。 特に(3)、集計元が同じレイアウトであるなら、 デスクトップにあるという「集計.xls」に「東京・千葉・大阪・集計」の4シートを用意、 「東京.xls」ブックを開き、該当シートをコピー、 「集計.xls」の「東京」シートに値を貼り付け(以降、千葉・大阪についても同様)。 「集計」シートにお好みの集計。 マクロを組むよりよほど早いです。 と言うか、他人にマクロを組ませて校閲するよりよほど確実で迅速と思います。 あと1日半しかないんだから、悩むよりまず動きましょう。
補足
tsubuyukiさんありがとうございます。 (1)集計結果のレイアウトは各3種類のExcelと同じです (2)[集計結果]というシート1つにコピペします (3)今はとりあえず例で3拠点としていますが実際には10拠点ありますため集計を自動化したいと思っています 複数のExcelを1つのExcelに自動でコピペするやり方をご教授いただければ幸いです。
お礼
tsubuyukiさん、お礼が遅くなりまして申し訳ございませんでした。 ベストアンサーにしてお礼を忘れておりました・・。 失礼いたしました。 おかげ様で無事に実現することができました。 本当に助かりました(^^)。今後、勉強したいと思います。 ありがとうございました!!
補足
tsubuyukiさん、ご連絡いただきましてありがとうございます。 当方の自分勝手な申し出に対して、詳細なロジック、かつご丁寧なご説明を添えていただきまして本当にありがとうございます。 早速試してみます! 取り急ぎお礼申しあげます。