
EXCEL フォルダ内のブック(ファイル)を結合(統合)/VBAマクロで複数ファイルをまとめる!
EXCEL フォルダ内のブック(ファイル)を結合(統合)/VBAマクロで複数ファイルをまとめる!
EXCEL フォルダ内のファイルをボタン一つで結合するマクロを作りました。
ボタン一つでフォルダ内のブック(ファイル)を全部結合できないかな…
EXCELで日々様々なデータを扱っている人によくある悩みだと思います。
しかし、自動で処理するというのは
プログラミングの知識(VBA,マクロ)が必要になるため
挫折する人が多いです。
今回は、そんな方たちの為に
マクロを使ったフォルダ内のファイルを結合するツールを作成しようと思います。
まずは、下準備
※今回例の前提条件
・読み込みたいフォルダには、
結合したいExcelファイル以外は入れて
いない状態
・結合するファイルはすべてA〜C列に2行〜データがある
条件をいれる作業シート結合したデータを出力するシート2シート用意します。
作業シートには
・フォルダのパス(B2)
・結合するファイルの取得したいデータの開始行(C2)
(1行目は項目名なので取得しないため2を入れています)
・読み込む列数(D2)
(A,B,C列を読み込むため、3列の3を入れています)
出力シートにはフォルダ内の各ファイルの1行目にある
日付、受注、売上を入れています
(例なので、みなさんご自由に)
それでは、マクロを組んでいきましょう
Alt + F11
を押すと、なにやら見慣れない画面が開きます
これが、マクロを組む作業画面です。
メニューバーから
挿入→標準モジュールをクリックしてください
白い画面が新しく開かれます。
ここにコードをいれます。
下記コードをコピペしてください。
Sub フォルダ内のファイルを出力()
read_folder = Range("B2")
read_row = Range("C2")
read_col = Range("D2")
read_file = Dir(read_folder & "\")
Do While read_file <> ""
output_end_row = Sheets("出力").Range("A65536").End(xlUp).Row
Workbooks.Open read_folder & "\" & read_file
input_end_row = Range("A65536").End(xlUp).Row
Range(Cells(read_row, 1), Cells(input_end_row, read_col)).Copy
ThisWorkbook.Sheets("出力").Activate
Range("A" & output_end_row + 1).Select
ActiveSheet.Paste
Workbooks(read_file).Close
read_file = Dir()
Loop
End Sub

このコードだけで、フォルダ内のファイルを全て結合する処理が行えます。
マクロ画面はこの状態で一旦閉じても平気です
次に、元の画面に戻り、作業シートにボタンを設置しましょう。
メニューバーの開発→挿入→フォームコントロール→ボタン
をクリックし、シート内でドラッグしましょう。
どの位置でも、どの大きさでもよいです。
すると、下記画面が表示されるので、先ほどコードの「Sub」でつけた名前があるので
(フォルダ内のファイルを出力)選択し、OK
これでボタン完成です。
ボタン1となっていますが、右クリック→テキストの編集で変更できます。
これで、後はボタンをクリックすれば…
フォルダ内のブックファイルを結合できました!
今回は、とりあえずマクロを使ってみようというつもりでしたので細かい説明は省いています。
本来であれば、エラーを未然に防ぐ処理が必要であったりしますが、それも省いています。
(例えば、フォルダ内にExcelで読めないファイルがあるとか)
あとはみなさんの応用次第
"EXCEL フォルダ内ファイルの結合"いかがでしたでしょうか。
関連コンテンツ
文字列抽出・変更・置換系トピック
EXCEL 置換関数にワイルドカードが使えない!代わりの方法を考えました。
EXCELで文字列の記号を全て削除!記号を一覧にしてSUBSTITUTE関数で一括置換しよう
EXCELで改行を削除(置換)して消す方法/実はSUBSTITUTE関数でも出来るんです!
EXCELで不要な空白(文字列前後の空白や連続した空白)はtrim関数で削除!
検索系トピック
VLOOKUPで複数範囲の検索を行う方法/VLOOKUPを繋げるしかない?
VLOOKUPエラーの原因!N/A,REF,VALUE,NAMEになるのはなぜ?
VLOOKUPでのエラー(#N/A)の対処はIFやIFERRORを使って解決しよう!
VLOOKUPの近似一致(近似値)・あいまい検索って何に使うの?
EXCELで条件に一致したデータを検索&抽出するならVLOOKUP関数
VLOOKUPを横にコピー!複数列をまとめて抽出するために列番号をずらす方法
VLOOKUPで左側(右から左に)の値を取得する方法はあるのか
VLOOKUPで複数結果を全て抽出・表示する方法/重複したときに2番目以降も抽出できる?
SUMPRODUCT関数では文字列を抽出出来ない/条件に合致した文字列を抽出するならVLOOKUP
集計・ピボット系トピック
SUMIFSで合計範囲を可変にするならOFFSET関数を使いこなそう
COUNTIFを含む条件でカウントする方法/ワイルドカード(アスタリスク)を使って含む条件を行おう
SUMIFを複数条件で集計/2つ以上の条件で集計したいときはSUMIFS関数で!
COUNTIFで空白以外(空白ではないセル)のカウントを行う方法
AVERAGEで0以外を集計するならAVERAGEIFで!エクセル平均集計を自在に
AVERAGEIFを複数条件で平均値を算出したいならAVERAGEIFSで
エクセル集計関数を極める!データ集計(合計)、個数カウント、条件付き集計などまとめて紹介!
EXCELで条件付きの合計を算出する時はSUMではなくSUMIFまたはSUMFISで
EXCELで期間集計(日付や範囲指定での抽出合計)ならSUMIFS関数
COUNTIF,COUNTIFSの使い方を徹底解説!条件の個数カウントを極めよう
エクセル 掛け算の関数PRODUCT関数/SUM関数の掛け算版があった!
EXCELの月別集計(日別データを月別に集計する方法)はSUMIFS関数で
SUMIF(SUMIFS)の計算が重い・遅いときは集計の鉄板ピボットテーブル?
ピボットテーブルの初期設定(デフォルト)が変えられない!私なりの解決策
VLOOKUPで合計(集計)は出せない!VLOOKUPの代わりにあの関数で条件付き合計を出そう!
EXCELで時間帯別に集計する方法/日時データから時間を抽出
マクロで自動化!簡易ツールの作成やVBAの活用例を紹介
エクセル シート名の一括変更や置換はVBAマクロじゃなきゃ無理なの?
複数のCSVファイルを結合(マージ)!エクセルVBAを使用したCSV結合ツールの作り方
EXCEL フォルダ内のブック(ファイル)を結合(統合)/VBAマクロで複数ファイルをまとめる!
EXCELで複数画像を一括挿入貼り付け!VBA(マクロ)で作っちゃいました。
エクセル マクロ(VBA)で複数のグラフを自動作成!コード教えます。
EXCEL 全シート名を取得し一覧に!VBAを利用して一瞬で解決
EXCEL シート毎にファイル分割保存する方法/マクロ(VBA)で解決!
EXCELで複数ファイルを集計するツール/マクロ(VBA)を使って作ってみました。
EXCELマクロ(VBA)って何?とりあえず試しに使ってみよう
その他EXCELテクニック
エクセル表の簡単な作り方/罫線や色もつけてシンプルかつ鮮やかに!
エクセル計算で参照セルを固定!コピーする際にズレない【絶対参照】
エクセル シート移動のショートカットはCtl+PageDownまたはCtl+PageUp
エクセル 一番下まで移動はスクロールだと大変?キーボードでの瞬間移動方法を紹介!
エクセルでユニークなリスト(重複をなくしたリスト)をちゃちゃっと作る方法
エクセルで1から10まで連番を入力する方法/オートフィル機能を使ってみよう
エクセルプルダウンリストを極める!設定・作成方法から応用技まで紹介
EXCEL プルダウン(リスト)を連動させる二つの方法/入力規則を使いこなせ!
エクセルでエラーを表示しない方法/ISERROR関数とIFERROR関数で解決
EXCEL リンクでシート間を楽々移動!ハイパーリンクで別シートへ移動
IF関数でワイルドカード(アスタリスク)は使えない?IF関数で含むを条件にする方法
EXCEL 時間の足し算(計算)ってどうやるの?時・分・秒の計算方法まとめました
EXCELで重複したデータをカウント!連番をつけ重複データを見つける方法
エクセルで行または列を固定し、スクロールさせずに常に見える状態にする方法
EXCELファイルサイズが大きい!重い!容量を軽く小さくする方法はある?
EXCEL 列の数字(番号)取得はCOLUMN関数で/英語アルファベットの取得方法は?
EXCELでフィルタした行を削除するのが重い(遅い)時の解決方法
EXCELでシート名の参照なんて出来たの!?indirect関数の使い方
エクセル家計簿を自作してみました(無料でダウンロードもできます)
エクセル練習問題(テスト)VLOOKUPや集計関数使えますか?
コラム
あなたのエクセルスキルはどのくらい?エクセルが使える人、出来る人のレベルとは
★管理人おすすめ(無料です!エクセルファイルをダウンロードしてやってみよー)
エクセル練習問題(テスト)VLOOKUPや集計関数使えますか?
★人気記事 TOP10
エクセルプルダウンリストを極める!設定・作成方法から応用技まで紹介
EXCELで期間集計(日付や範囲指定での抽出合計)ならSUMIFS関数
EXCEL 置換関数にワイルドカードが使えない!代わりの方法を考えました。
VLOOKUPの近似一致(近似値)・あいまい検索って何に使うの?
EXCELファイルサイズが大きい!重い!容量を軽く小さくする方法はある?
★新着記事
エクセル表の簡単な作り方/罫線や色もつけてシンプルかつ鮮やかに!
VLOOKUPで複数範囲の検索を行う方法/VLOOKUPを繋げるしかない?
エクセル計算で参照セルを固定!コピーする際にズレない【絶対参照】
エクセル練習問題(テスト)VLOOKUPや集計関数使えますか?
エクセル シート移動のショートカットはCtl+PageDownまたはCtl+PageUp
VLOOKUPエラーの原因!N/A,REF,VALUE,NAMEになるのはなぜ?
エクセル シート名の一括変更や置換はVBAマクロじゃなきゃ無理なの?
エクセル 一番下まで移動はスクロールだと大変?キーボードでの瞬間移動方法を紹介!
EXCELでお困りの方へ

当サイトでは皆さまがEXCEL作業で行き詰った問題を解決するべく王道のテクニックからちょっと特殊なテクニックまで 様々な中〜上級技・プチテクニックを公開し、少しでも皆様の業務効率改善に役立てていただければと思い、ネタをまとめています。
EXCELの作業で悩み・お困りごとはありませんか?
集計に時間がかかり過ぎ。効率化をしたい。などなど日頃から奮闘しているあなたに少しでも参考になる情報を与えることが出来れば幸いです。
質問・相談なども受け付けておりますが、最近忙しくて返事が遅れてしまいます。。。
サイト内の内容についてのご質問は優先的に受け付けておりますが、それ以外のご相談などはお断りすることもありますのでご了承ください。
※サンプルのエクセルファイルなど添付していただくと回答もスムーズに行える場合が多いです。
