• ベストアンサー

複数のExcelファイルにある同名シートを1つのシートに一括でまとめるには?

フォルダの中に複数のExcelファイルがあり、それぞれのExcelファイルには「All」という名前のシートが存在します。そこで、複数ファイルにあるこのシートのデータをすべて1つのシートにまとめたいと思います。具体的には、「合体.xls」というExcelファイルからマクロを実行し、「合体.xls」に存在する「pAll」という名前のシートにシート「All」の全データを入れたいです。どのようにすれば実現できますか?

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

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

やってみました。 「合体.xls」の標準モジュールに下記のコードを書いて実行します。「合体.xls」と同じフォルダ内だけを検索します。 Sub Test() myPath = ThisWorkbook.Path & "\" fname = Dir(myPath & "*.xls") 'フォルダ内のExcelファイルを検索します Do Until fname = Empty '全て検索し終えると、fname = Empty となるので、その間以下を実行します If fname <> ThisWorkbook.Name Then Workbooks.Open myPath & fname '選択したファイルを開きます Set AB = ActiveWorkbook lr = ThisWorkbook.Sheets("pAll").Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row On Error Resume Next AB.Sheets("All").UsedRange.Copy On Error GoTo 0 ThisWorkbook.Activate Sheets("pAll").Range("A" & lr + 1).Select ActiveSheet.Paste AB.Close End If fname = Dir '選択したフォルダ内の次のExcelファイルを検索します Loop End Sub

puaaah-
質問者

お礼

お礼が大変遅くなり申し訳ありませんでした。 この度は、いただいたアドバイスのおかげで、 無事望むものを作ることができました。 貴重なアドバイスをいただけ感謝しております。 今後ともよろしくお願いいたします。

その他の回答 (1)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

ちょっと気になったので。 例えば、ファイルが、A、B、C とあった場合、合体ファイルに移動する順は? ファイルA、B、Cの順で移動とか、C、B、Aの順とか。 それとも順不同? もし移動順が決まっているとしたら、その基準は?  

関連するQ&A