- 締切済み
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まで連続して処理を行う部分ができません。 分かりにくい文章で申し訳ございませんがぜひご教授ください、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
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)などのように指定するのは知ってますね) などの,具体的な状況を漏れなくキチンと正確に記入してください。これらはご相談投稿で情報提供が不足している部分です。
お礼
有難うございました!これを参考にして頑張ってみます!