• 締切済み

VBAでフォルダ内の全ブックにマクロをかけ集計する

VBA初心者ですが、本を読んで勉強しても分からないので質問させていただきます。 質問したいことは以下の通りです。使用するのはEXCEL2007です。 あるフォルダ内に999から1600と名前の付いたEXCELのファイルがあります。 その全てのファイルに、あらかじめ作成済みのマクロをかけそのマクロをかけたEXCELファイルのE62からH62までをコピーし、別のファイル(作成済み、名前を仮にAとします)にペーストしたいのです。 ペーストは縦に順番に(例えば、999のファイルから切り取ったE62からH62までのデータをファイルAのB2からE2にコピー、1000のファイルから切り取ったE62からH62までのデータをB3からE3へ…)といった感じです。 一度にフォルダ内の全ファイルを開くわけにはいかないので、999に上記の処理を行ったら保存せずに閉じ、今度は1000にといった感じで次々と処理を行っていきたいと思っております。細かいマクロは自分で作成できたのですが、コピーしたものを別ファイルAにペーストする部分と、999から1600まで連続して処理を行う部分ができません。 分かりにくい文章で申し訳ございませんがぜひご教授ください、よろしくお願いいたします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

sub macro1()  dim i as long  dim myPath as string  dim myFile as string  on error resume next  workbooks.open filename:="c:\どこかのフォルダ\A.xlsx" ’★  mypath = "c:\どこかのフォルダ\"   ’★  for i = 999 to 1600   myfile = i & ".xlsx"  ’★   if dir(mypath & myfile) <> "" then   workbooks.open filename:=mypath & myfile   call 作成済みマクロ   workbooks(myfile).worksheets("シート名").range("E62:H62").copy _    destination:=workbooks("A.xlsx").rowksheets("シート名").range("B65536").end(xlup).offset(1)  ’★   workbooks(myfile).close savechanges:=false   end if  next i end sub ★を付けた行は ・ファイルの保存場所(999やA) ・ファイルの拡張子(999やA) ・シート名(999やA,シート名が特定できない場合はWorksheets(1)などのように指定するのは知ってますね) などの,具体的な状況を漏れなくキチンと正確に記入してください。これらはご相談投稿で情報提供が不足している部分です。

brosisther
質問者

お礼

有難うございました!これを参考にして頑張ってみます!

関連するQ&A