Excel・CSV VBA

【エクセルVBA】複数のエクセルを一括でまとめるVBA

投稿日:2017年12月10日 更新日:


あのー、複数のエクセルファイルを一括で1ファイルにまとめる方法ってありますか。
あー、標準機能では用意されていませんね。
そうですよねー。めんどうだなー。
マクロで解決する方法があるみたいですよ、ご紹介しましょう!

複数のエクセルファイルを一括で1ファイルにまとめるマクロをご紹介します。

 

マクロ機能が有効なExcelブック「.xlsm」を作成

Excelブック「.xlsm」の作成方法が不明な場合は、下記の記事を参考にして下さい。
【エクセルVBA】マクロ機能が有効なExcelブック「.xlsm」の作り方

作成したマクロファイルに名前を設定して保存します。
※ここでは「同じフォルダにある複数のエクセルを一括でまとめるVBA.xlsm」と設定します。

コードを標準モジュールに貼り付け

標準モジュールの開き方が不明な場合は、下記の記事を参考にして下さい。
【エクセルVBA】標準モジュールの開き方

標準モジュールを開いて、下記のコードを貼り付けて下さい。

コード

 

ダミーデータを準備する

マクロ実行テスト用のダミーデータとして、エクセルファイルを準備します。
※フォルダ名は任意です。例として「エクセルをまとめるテストフォルダ」と入力します。

マクロを実行する

マクロファイルを開いて、「コンテンツの有効化」をクリックします。
※設定により、「コンテンツの有効化」は表示されない(クリック不要の)場合もあります。

 

「開発」タブをクリックします。

 

「マクロ」をクリックします。

 

マクロ「Main」を選択、「実行」をクリックします。

 

「OK」をクリックします。

 

まとめたいエクセルファイルが格納されているフォルダを選択→「OK」をクリックします。

 

「OK」をクリックします。

 

まとめるエクセルファイルと同じフォルダに「yyyymmdd-hhmmss【まとめファイル】.xlsx」が作成されます。

 

「yyyymmdd-hhmmss【まとめファイル】.xlsx」を開くと、対象のエクセルのシートがコピーされています。

完了です。

 

注意点

ファイル名+拡張子+シート名の文字数を31文字以内にする

本VBAでまとめる「ファイル名+拡張子+シート名」の文字数は、
合計で31文字以内にしてください。

「yyyymmdd-hhmmss【まとめファイル】.xlsx」のシート名は、
「ファイル名+拡張子+シート名」で作成されます。

エクセルの仕様上、シート名は31文字以内の為、
「ファイル名+拡張子+シート名」の文字数が、
合計で32文字以上になるとエラーになります。

※ファイル名・シート名を一括置換するエクセルVBAは下記記事を参考にしてください。
ファイル名を一括取得するVBAと一括置換するVBA

【エクセルVBA】ファイル名を一括取得するVBAと一括置換するVBA

エクセルのシート名を一括取得するVBA

エクセルのシート名を一括取得するVBA

エクセルのシート名を一括置換するVBA

エクセルのシート名を一括置換するVBA

 

その他

※本VBA機能を含む、VBAマクロツールを作成しました。
下記の記事からダウンロードしてお試し下さい。
【累計1,100ダウンロード突破!!】汎用エクセルVBAツール【HUNT】

マクロ実行動画

 

参考元情報・リンク

IT Diary
【Excel】複数のエクセル(ブック)のシートを一つのブックに結合するVBA

スポンサーリンク

pr001




pr001




-Excel・CSV, VBA

スポンサーリンク

スポンサーリンク

PR005


ハント

VBA、GoogleAppsScript、思考法など、
業務効率化に繋がる情報を投稿中です。

普段は某IT企業に勤務しています。
Twitter @skillhunter007

好きなもの:アイアンマン、

ほしいもの:フライデー
(アイアンマンに登場するAI)、
盗賊の極意(スキルハンター)、