dポイントプレゼントキャンペーン実施中!

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

A 回答 (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)を選択して実行

これでオリジナルはそのままにして、まとめ用のブックに他の全シートが複写されます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/31 21:50

40個ぐらいのシートを一つのファイルにあわせるだけなら、いくつか同時に開いてドラッグして合成することを繰り返すだけでたいして手間はかかりません。

それとも同じ書式のデーターを一つのシートに合成することをお望みなのでしょうか。質問が少し曖昧なので、詳しく書いてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/31 21:54

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