複数エクセルブックを一つにするマクロが知りたい!

このQ&Aのポイント
  • フォルダ内にある10個のエクセルブックを一つにまとめるためのマクロ処理を知りたいです。
  • エクセルブック内のシート名に対応したシートのみを指定したブックにまとめる方法を教えてください。
  • マクロに詳しい方、お教えいただければ幸いです。
回答を見る
  • ベストアンサー

複数エクセルブックを一つにするマクロが知りたいです

フォルダ内に「01.xlsx」「02.xlsx」…「10.xlsx」という10個のブックがあります。 各ブックの中には、ブック名に対応した形で「01」「02」…「10」というシート名のシートが一つだけ入っています。 同フォルダ内に「matome.xlsx」というブックを用意して、マクロ処理をかけることで、「matome.xlsx」の中に「01」「02」…「10」のみの10個のシートが入った状態にしたいです。 マクロ処理をかける前の「matome.xlsx」のシートには、「sheet1」という、シートが一つだけ入っている状態です。 仕事のデータをまとめるのに、困っています。。。 何かいい方法はありますでしょうか。 マクロに詳しい方、お教えいただければ幸いですm(_ _)m

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

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

○01から10まで決め打ちマクロ  マクロはmatomeブックに登録してある  matomeブックは01から10ブックと同じフォルダに保存しておく  matomeブックは,「マクロ有効ブック(.xlsm)」で保存しておく sub macro1()  dim myPath as string  dim i as long  mypath = thisworkbook.path & "\"  application.screenupdating = false  application.displayalerts = false  for i = 1 to 10   workbooks.open mypath & format(i, "00") & ".xlsx"   activeworkbook.worksheets(1).move after:=thisworkbook.worksheets(thisworkbook.worksheets.count)  next i  thisworkbook.worksheets(1).delete  application.displayalerts = true  application.screenupdating = true end sub ○一般化  matomeブックとは別にマクロブック(.xlsm)を用意する  マクロブックは01から10ブックと同じフォルダに保存しておく  マクロを含まないmatome.xlsxを保存する sub macro2()  dim myPath as string  dim myFile as string  dim flg as boolean  dim w as workbook  mypath = thisworkbook.path & "\"  myfile = dir(mypath & "*.xls*")  application.screenupdating = false  application.displayalerts = false  do until myfile = ""   if myfile <> thisworkbook.name and myfile <> "matome.xlsx" then    workbooks.open mypath & myfile    if not flg then     set w = activeworkbook     flg = true    else     activeworkbook.worksheets(1).move after:=w.worksheets(w.worksheets.count)    end if   end if   myfile = dir()  loop  w.saveas mypath & "matome.xlsx"  application.displayalerts = true  application.screenupdating = true end sub

midorisan5
質問者

お礼

ご回答いただき、ありがとうございます!!m(_ _)m 行いたかった処理ができ、かなりの時間短縮になりました!! 01~10だけでなく、一般化もお教えいただき、ありがとうございますm(_ _)m 応用させて、今後にも活用させていただきます! 本当にありがとうございました!!m(_ _)m

その他の回答 (1)

  • tomi5957
  • ベストアンサー率25% (1/4)
回答No.1

こんなフリーソフトがありますよ。

参考URL:
http://www.ozsystem.jp/frdatn/atn_top.htm

関連するQ&A

  • 複数ブックの印刷マクロを作成したいと思っています。

    2つのフォルダがあり、その中に20のブックがそれぞれあります。 20のブックの中にはシートが4つづつあり、シート3とシート4のみ印刷したい。 1つのフォルダでは あまり詳しくありませんのでお知恵をお借りしたいと思います。 まず、フォルダの中にある複数ブックの印刷を一括で管理できるマクロは可能なのでしょうか。 二つのフォルダの中に20個のブックがあり、その中にはそれぞれ4シートあるExcelファイルで構成されています。 毎回シート3とシート4のみの印刷をブックの数だけ行います。 40ブックを開け、約80シート印刷するのを簡素化できないかなと思っております。 まず Aフォルダの中 20のブックの中にはシートが4つずつあり、それぞれシート3は全て印刷。 ブック15~19のみシート4は印刷しません。 要約しますと ブック1~14とブック20はシート3.シート4を印刷 ブック15~19はシート3のみ印刷 Bフォルダも同様 ブックそれぞれにマクロシートがあればいいかなと思っているのですが。。。 PC環境はXPです。その他重要なソフトが入っているのであまりマクロが重い場合は諦めようかなと思っています。 簡単に印刷できるようなら教えていただけると幸いです。 初心者なのでコピペでOKぐらいにしていただけますと助かります。 よろしくお願いいたします。

  • 複数のエクセルブックから転記するマクロを教えて

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

  • 複数のエクセルブックをひとつのブックにまとめる方法

    同一フォルダに複数のエクセルブック(100個以上)が入っています。 その中のSheet1だけ(Sheet1~3まですべてのブックにあります)を一つのエクセルにまとめたいです。 ブックの中にSheet1、Sheet1(1)、Sheet1(2)・・・ みたいになればいいです。 Sheet名がブック名になるのが理想ですが。。 どのようにすればよろしいでしょうか?

  • エクセルマクロで他のブックを複製するには?

    件名の操作ができるマクロを書きたいのですが、どなたか教えて頂けるでしょうか。 エクセル2007で、マクロで同フォルダにある別のブックそのものをコピーし、 同フォルダに複製してできたブックに別名をつけて保存するという作業をしたいと思っております。 別ブックからシート情報をコピーする方法などは見つかったのですが、 他のブックそのものをコピーするという方法が見つかりませんでした。 これが可能な事なのかもわかっていません。 どうぞよろしくお願いします。

  • フォルダ内の特定ブックだけを1つのブックにまとめる

    はじめましてマクロ超初心者です。 会社のシステム(ツール?)で同じフォルダに1案件につき2つのブックが作成されます。 毎回約30案件、すなわち同じフォルダに60ブックあります。 (1)同じフルダ内に60ブック (2)その内、同じ案件が2つ。ブック名「1_****」と「2_****」 ****は毎回かわる (3)ブックには2つのシート。シート名「1」と「2」 (4)ブック「1_****」のシート「1」が開いた状態、ブック「2_****」のシート「2」が開いた状態になってる (5)必要なのはブック「1_****」のシート「1」とブック「2_****」のシート「2」 この「1_****」のシート「1」と「2_****」シート「2」を「1_****」にまとめる作業を毎回手作業でやっています。これをなんとかマクロで出来ないでしょうか?同じフォルダにある複数ブックをまとめるマクロは見つけました、複数=全てのブックに実行されてしまいます。フォルダ内の特定のブックをまとめるマクロがみつからず。。。どなたかご教授して頂けませんか?

  • Excel VBA 複数ブックのシート結合方法

    複数ブックの特定のシート(都度指定)のみを結合するマクロを組みたいです。 例えば、「ファイルマージ前」というフォルダがあって、その中には数値のみ違う同フォーマットのアンケート集計結果が保存されています。 このフォルダ内には50ほどのブックが保存されていて、そのブック内の「N表」というシート(50あるブック内全てに存在するシート)を新規ブック(マクロを組み込むブック)の1シートに上から順に値コピーしていきたいです。 今後、別の機会でファイルマージが必要になった際にも使用出来る様に、シート名を都度指定(セルにシート名を入力して、そのシート名を参照する等)出来るようにしたいのですが、自分の知識とネット等で調べた情報のみではうまく作成出来ませんでした。 詳しい方のお知恵をお借りしたいです。 宜しくお願い致します。

  • Excel マクロで複数ブックのデータを一つのブックにまとめたい

    マクロ初心者です。 フォーマットの同じ複数のブックのセルをコピーし、 新しいブックに羅列したいのですが、 ブック数が多く、手作業では効率が悪く、困っています。 例えば・・・Book001.xls、Book002.xls、二つのブックがあります BooK001.xls  ABCD 1  * 2  * 3  * 4  * Book002.xls  ABCD 1  + 2  + 3  + 4  + これを、新しいブック(All.xls)に  ABCD 1 *+ 2 *+ 3 *+ 4 *+ といったように、コピーしたいのですが、マクロ初心者のため、お手上げ状態です。 条件は、 ・フォルダにBookXXX.xls(XXXは001~の連続した番号)という名のブックが入っている ・BookXXX.xlsは全て同じフォーマット マクロの構文はもちろん、設定の仕方も教えていただけないでしょうか? よろしくお願いします。

  • フォルダ内の全ブックのシート名を変更したいです。

    同一フォルダ内に、ファイル名の違うエクセルブックが100個ほどあります。 その100個のそれぞれには、シートが1つ入っています。(シート名は、ブック毎に異なっています) それらのシート名を100個全部、「2013-07」という名前にしたいのですが、マクロで一括処理はできますでしょうか? データが多く、マクロ初心者なので、困っております。。 エクセルは2013を使用しています。 お教えいただければ幸いですm(_ _)m

  • 複数のExcelブックをまとめるソフト

    中を見ていただき、ありがとうございます。 現在、一つのフォルダの中にある複数のエクセルファイルを、一つにまとめるソフトを探しています。 いくつか探してみましたのが、使っている環境のセキュリティが厳しいので、VBAを使う方法や、インストールが必要なソフトは使えず、困っております(管理者に頼んでセキュリティを外してもらうことはできません)。バッチファイルは試していません。 機能としては以下のものを備えている必要があります。 ・複数のブックのシートだけを1つにまとめる(各ファイルは、1シートでできています) ・シート名が、ファイル名と同じになる ・まとめるファイルは、xls形式とxlsx形式とが混在していても良い ・マクロを使っていない ・インストールしなくても使える もしご存知でしたら、お教えいただけますと大変助かります。

  • Excel マクロで複数ブックのデータを一つのブックにまとめる方法

    マクロ初心者です。 1つのフォルダの中に複数のbook(sheetも複数)があります。 これを新しい1つのbookにまとめたいです。 sheetは「bookを開いた時に表示されるsheetだけ」を新しいbookにまとめたいです。 どなたかの回答に下記マクロがありました。 Sub consolid() Application.ScreenUpdating = False '画面更新を一時停止 Set mb = ThisWorkbook 'このコピー先ブックをmbとする。 myfdr = ThisWorkbook.Path fname = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索 Do Until fname = Empty '全て検索 If fname <> mb.Name Then 'ブック名がこのブックの名前でなければ Set wb = Workbooks.Open(myfdr & "\" & fname) 'そのブックを開きwbとする。 wb.Worksheets.Copy After:=mb.Sheets(mb.Sheets.Count) 'コピーしてコピー先ブックの末尾に置く wb.Close '開いたブックを閉じる n = n + 1 'ブック数をカウント End If fname = Dir 'フォルダ内の次のExcelブックを検索 Loop '繰り返す Application.ScreenUpdating = True '画面更新一時停止を解除 MsgBox n & "件のブックをコピーしましました。" End Sub 非常によかったのですが、これですと (1)全てのsheetがコピーされてしまいます。 (2)また、保存しますか?とbookごとに聞いてきます。 上記のマクロのどこを変更すれば、(1)(2)を解決できますでしょうか? (エクセルは2002です) 以上、よろしくお願いします。

専門家に質問してみよう