• ベストアンサー

複数のエクセルファイルの統合について

40ほどあるエクセルファイルの各シートを集めて、一つのエクセルファイルにまとめたいのですが、簡単な方法がありませんでしょうか。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

40のブックがそれぞれにシートをいくつか持っているのだとしたら、これはVBAでやるほかなさそうですね。 試してみてください。 まとめ用のブックに下記のVBAを仕組み、まとめられるブックと同じフォルダにいれて、いったん保存してから実行してみてください。 まとめられる方のブックの名前、件数、シート数は別に問いません。 フォルダー内のまとめ用ブック以外の全ブックの、全シートをまとめ用ブックに複写するマクロです。 1.まとめ用のブックで、Altキー+F11キーでVisualBasicEditorを呼び出します。 2.メニューから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコード(Sub~End Sub)をコピペします。 Sub consolid() Application.ScreenUpdating = False '画面更新を一時停止 Set mb = ThisWorkbook myfdr = ThisWorkbook.Path fname = Dir(myfdr & "\*.xls") 'フォルダ内のExcelファイルを検索 Do Until fname = Empty '全て検索し終えると、fname = Empty となるので、その間以下を実行 If fname <> mb.Name Then 'ファイル名がこのファイルじゃなければ Set wb = Workbooks.Open(myfdr & "\" & fname) '選択したファイルを開く wb.Worksheets.Copy Before:=mb.Sheets(mb.Sheets.Count) 'コピーしてまとめ用ブック末尾に置く wb.Close '選択したファイルを閉じる n = n + 1 'ブック数をカウント End If fname = Dir '選択したフォルダ内の次のExcelファイルを検索します Loop '繰り返す Application.ScreenUpdating = True '画面更新一時停止を解除 MsgBox n & "件のブックをまとめましました。" End Sub 3.Alt+F11キーでワークシートへもどります. 4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(consolid)を選択して実行 これでオリジナルはそのままにして、まとめ用のブックに他の全シートが複写されます。

shinringo
質問者

お礼

ありがとうございます。うまくいきました。 ファイルもシートも多かったものですから、助かりました。感謝します。

その他の回答 (1)

回答No.1

40個ぐらいのシートを一つのファイルにあわせるだけなら、いくつか同時に開いてドラッグして合成することを繰り返すだけでたいして手間はかかりません。それとも同じ書式のデーターを一つのシートに合成することをお望みなのでしょうか。質問が少し曖昧なので、詳しく書いてください。

shinringo
質問者

お礼

私の質問があいまいですいませんでした。 40程のファイルに複数のシートがあって、その作業を頻繁に行わねばならなかったので質問させていただきました。 おかげさまでmerlionXX様に教えていただいたマクロでうまくいきました。せっかく回答いただきましたがもうしわけございません。

関連するQ&A