• 締切済み

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/7940)
回答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

  • フォルダー内の支店ごとのブックを集計するマクロを

     エクセル2010で、1つのフォルダ内にある複数のエクセルファイル(約100支店分)から、日次売上等の集計マクロを作成したいのですが方法がわかりません。 上司からの依頼を受け、ひとり悩んでましたが・・・で皆さんに相談です。ご協力お願いします ■基本条件 ・毎日、支店がフォルダ内の売上情報を入力(更新)し保存する。 ・全店とも中身は同書式同形式ファイル  例)実績報告A店.XLS、実績報告B店.XLS・・・ ■マクロ(集計.XLS)でやりたいこと ・各支店ブックの実績シートから、支店名(A5)・売上A(B5)・売上B(C5)を転記し明細表の作成 ・集計表の作成 マクロど素人の私に、どなたか教えていただけますでしょうか? よろしくお願いします。

  • マクロ 同じフォーマットのそれぞれのファイルから データをコピーペーストする方法

    お世話になります。 マクロを使って 共通フォーマットの複数のファイルのデータを 別なエクセルファイルに コピーペーストするやり方を教えていただけないでしょうか。 複数のファイルは共通のフォーマットです。しかし保存名と内容は違っています。フォーマット化されていない部分のデータをコピーし、仮にAというファイルの一部分に貼り付けるというものです。 具体的には 名前:●●●   ←この●●●だけをコピーする ファイルA   名前:□□□   ←●●●データを□□□位置にペースト この作業を繰り返すというものです。 個人用マクロブックにマクロを作ってみたのですが作成したときのファイルのデータまで記録されていて マクロが動いても その時のデータが張り付いてしまって困ります。 ●●●のところを「現在開いているエクセル」とか命令すればいいのでしょうかね・・・。 いいやり方を教えて下さい。

  • EXCEL VBAを使ってマクロを組んだのですが、消えてしまいます。

    VBAを使ってマクロをEXCELに組んだのですが、貼り付け先のデータをダブルクリックするとデータが消えてしまいます。 組んでいるマクロは (前提) ファイルA・・コピー元データ ファイルB・・貼り付け先データ (内容) Aファイルでマクロを実行すると、Aファイルの内容がBファイルにコピーされるというものです。 Aファイルの元データは数式のため、Aファイル内でいったん値として貼り付けてから再度コピーして、Bファイルに貼りつけています。 Aファイルは自分で作成したものですが、Bファイルは他社作成のため、もろもろ変更ができません。 Aファイルにもロックが必要のため、保護をかけています。(ロック、表示ともに) マクロ実行後、Bファイルの貼りつけされたデータをダブルクリックすると、ダブルクリックしたセル内容が消えてしまいます。 まったく原因がわからず困っています。すみませんがどなたかわかるかたお願いいたします。

  • XCELのVBAマクロで次のことが実行できますか。

    XCELのVBAマクロで次のことが実行できますか。 (前提)WINDOWSで (1)MYDOCのフォルダAにExcelファイルA1.xlsからA9.xlsまで9個のファイルと、もう一つマクロBBの入ったExcelファイルB.xlsがあります。 (2)各Ai.xlsには、Aisheet(i=1カラ9)と名前のsheetが1つのみあります。 (処理したいこと) A1.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 続いて同様にA2.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 以下A9まで実行したい。 (質問)Bのマクロに新たにCCというマクロを作り、CCを実行することで、自動的に(処理したいこと)を実行してしまうようなものを作れますか。 また作るとしたらおおよそどんな風に作ればいいでしょうか。 ご回答よろしくお願いします。

  • エクセルVBAでコピーペーストを他ファイルへ

    同一フォルダにAとBのファイルがあり、 ファイルAに、CommandButtonを置き、押下することで、ファイルAのシートAのA1~Z1までをコピーし、 ファイルBを開かず、ファイルBのシートBのA1~Z1までにペーストするVBAを作成しようとしています。 ペースト先のファイルBを開かずに、ペーストしてくれるようなマクロを知りたいです。 エクセルは2002を使用しています。 ご教授お願いいたします。

  • 教えて下さい。VBAマクロで困ってます。

    VBAマクロ初心者です。実は、次のようなコードをどのように書けばよいのか教えて下さい。 例えば、 Aは、デスクトップ上のエクセルファイルの"Sheet1"のA1:B4のA列は数値、B列は文字列。 Aをデスクトップ上の別のフォルダーにあるエクセルファイルの"Sheet1"のA1:B4にデータをコピーをするのですが・・・。まったくわかりません。または、説明が下手でやりたい事が伝わらないかもしれませんが、よろしくお願いいたします。

  • 個人用マクロブックの移植

    現在XP環境下、Excel2000で作成した個人用マクロ(PERSONAL.XLS)をXLSTARTフォルダーにおき大変重宝しております。 ところで、今般新しくパソコンを購入、Win7でExcel2010の使用に切り替えたいのですが、この場合、上記マクロを使用するにはどのようにすればよろしいでしょうか。上記ファイルをExcel2010用のXLSTARTフォルダーにコピーするだけでよろしいのでしょうか。 よろしくお願いします。

  • VBAについて教えてください

    VBA初心者です。下記のような処理を行ないたいのですが、このような処理は可能でしょうか? 【sheet2】   A B   1 あ a       2 い b     3 う c 4 え d 5 お e 【sheet1】 (1)   A B   (2) A B   (3) A B   1  あ a    う c     お e   2  い b    え d (処理内容) 【sheet1】にボタンを作成して、それにマクロを関連付けます。 そのボタンを押した結果が、【sheet2】のデータを2行ずつ【sheet1】にコピーして、ボタンを押していくと【sheet1】の結果が(1)⇒(2)⇒(3)⇒(3)と同じとなる。 このような処理を行いたいのですが、どのように作成したらよいのかわかりません。宜しくお願いいたします。

  • 同じフォルダ内にあるファイルを開くマクロ

    いつもお世話になります。 EXCEl2000で、フォルダ内に2コのエクセルファイル「A.xls」「B.xls」があり、「A.xls」でマクロを実行する際に、「B.xls」を開きたいのですが、ファイルのパスを設定すると、フォルダを別の場所に動かしたり、別のパソコンにコピーすると開けなくなります。 「同じフォルダの中にある「B.xls」を開く」という命令文の作成は可能でしょうか。

  • ブックを開くマクロ

    データ管理というファイルの中にある データー(1)のファイルの中の データ表(1)というエクセルbookのあるマクロを実行すると 同じくデータ管理というファイルの中にある データー(2)のファイルの中の データ表(2)というbookを開き そのbookのsheet1のA1:B5をコピーして データ表(1)エクセルbookのsheet1のA1:B5に貼り付ける・・・ というVBAを組む事は出来ますでしょうか? 分かりにくくてすいません

専門家に質問してみよう