複数ファイルを自動で1ファイルにまとめることができる!
複数ファイルを1ファイルにまとめるマクロツールをご紹介します。
エクセルファイルをダウンロードしてすぐに使えます。
ボタンを押してまとめるファイルの保存先を設定するだけで
たくさんのワークブックファイルでも1つにまとめたファイルがすぐに作成できます。
※複数ファイルを1シートにまとめたい場合はこちらをクリック
※その他の集計ツールはこちらをクリック
操作画面
手順
①1つにまとめたいファイルを1つのフォルダに保存する
②【複数ファイルをまとめる】ボタンを押す
③ダイアログから作業フォルダを選択
作業が完了すると作業フォルダの中にAllReports.xlsxファイルが作成されます。
この時のシート名にはファイル名が追加されます。
作業したフォルダ名がD2セルに記入されます。
↓ダウンロードはこちらをクリック(詳しい手順、注意事項はファイルの中に記載)
↓シートの順番を逆にしたい場合はこちら
エクセルでやりたいことを探していて、こちらのサイトにたどり着きました。
「複数ファイルを1ファイルにまとめるマクロ」をダウンロードさせていただき使用させていただいています。
さて、質問があるのですが…上記マクロでは結合後のデータが「AllReports.xlsx」にまとめられるのですが、そのデータを既存のファイルに上書きすることは可能でしょうか?また、可能な場合、どういったマクロになるのでしょうか?
例:
A社 B社 C社…の個別のファイルと、各社の集計・分析計算用のファイルがある
これを結合させてAllReports.xlsxのような形で、既存の「集計・分析計算用ファイル」に新規タブで書き込みたい。
また、毎週各社のデータがあがってくるので、翌週には、前回のタブに上書きで保存したい。
のです。言葉足らずで分かりにくいかもしれませんが、お返事いただけると幸いです。
ご連絡ありがとうございます。
例えば、エクセル上で「集計・分析計算用ファイル」の保存先とファイル名を設定し
そのファイルに新たに追加したシートにまとめたデータを記入するといったマクロなら作成できますが
いかがでしょうか?
お忙しい中お返事ありがとうございます。またご艇案ありがとうございます。
その方向でお願いできますでしょうか?
コメント失礼いたします。
こちらの複数ファイルを1つにまとめるマクロをダウンロードさせて頂きました。
1つ質問よろしいでしょうか。
マクロの実行は上手くできたのですが、マクロ実行後のシートを印刷すると、余白部分が少なくなっています。
ページ設定を確認しても、余白のサイズはマクロ実行前のシートと同じ設定となっていました。
また、各シートは1ページに収まっていたのですが、マクロ実行後は最後の1行がはみ出て2ページとなっています。
どのような事が原因として考えられますでしょうか?
改善方法があれば、教えて頂けると幸いです。
コメントありがとうございます。
環境の違いによってページ設定や印刷設定等が変わることは起こりえると思いますが
どのような環境でどのようなファイルかによっても状況は変わると思いますので
私には分かりかねます。
お力になれず申し訳ございません…。
ご返信ありがとうございます。
パソコンの印刷設定などにより、変わってくる可能性もあるのですね。
了解いたしました。
別のファイルでも色々試してみます。
ありがとうございました。
コメント失礼いたします。
マクロをダウンロードさせて頂きました。
1つ質問よろしいでしょうか。
全てのシートを1つのブックにまとめるのではなく、それぞれの1シート目(1番左のシート)のみを集約するにはどうすればよろしいでしょうか?
コメントありがとうございます。
シート名がすべて同じであれば以下のマクロで代用可能かと思いますがいかがでしょうか?
http://excel-macro.com/kushizashi_sum/
ご返信ありがとうございました。何とか解決しました。ありがとうございます。
AllReports.xlsxには、例えば記事の中では「E社」からのシートになっていますが、左から「A社」「B社」「C社」。。。。としたいときはどうしますか?
赤字の部分を修正し、青字の部分を追加してみてはどうでしょうか?
ページの一番下にシートの順番を逆にしたものをアップしましたが
こちらでできますでしょうか?
変数宣言に追加
Dim ADD_FILE As String
‘集約用ブックを作成
Set dWB = Workbooks.Add
ActiveSheet.Name = “st_book_sum”
ADD_FILE = ActiveSheet.Name
‘シートを集約用ブックにコピー
sWB.Worksheets(i).Copy after:=dWB.Sheets(ADD_FILE)
‘シート名を変更
ActiveSheet.Name = Left(sFile, InStrRev(sFile, “.”) – 1) & ActiveSheet.Name
ADD_FILE = ActiveSheet.Name