ゆるく働き ゆるく生きる ゆるいだれかの日記

menu

ゆるりの足あと


フォルダ内のエクセルファイルを自動で一括結合する方法!

フォルダ内にある大量のエクセルファイルを一つのシートにつなげるのは人間のやる仕事じゃない。。。

というわけで、全部自動で一括結合するプログラムを書いてみました!

方法としては以下のような感じです。

  1. エクセルファイルを全部CSV形式のファイルに変換して保存
  2. CSVファイルをすべてコマンド処理でコピペしてまとめる

エクセル開いてVBAでっていう方法もありますが、エクセルを一々開く必要があって面倒な上に、エクセルでの作業と競合する可能性があるので作業の妨げになることがあります。

そのため、ここでは、エクセルVBAは使用せずVBSで実行する方法を書きました。この方法ならエクセルを開く必要もなく、VBSファイルをダブルクリックするだけなので、手軽に実行できます。

①エクセルファイルをCSVに変換

下記のコードをメモ帳などに貼り付け、「xlsx_to_csv.vbs」のような適当なファイル名で保存します。
○○○.vbsというように拡張子さえ、vbsであればファイル名は何でも大丈夫です。

②CSVファイルを一括コピペしてall.csvファイルにまとめる

下記のコードをメモ帳などに貼り付け、「merge_csv.bat」のような適当なファイル名で保存します。
○○○.batというように拡張子さえ、batであればファイル名は何でも大丈夫です。

③実行する

  • 結合したいエクセルファイル
  • xlsx_to_csv.vbs
  • merge_csv.bat

上記のものだけを一つのフォルダにまとめます。
xlsx_to_csv.vbsをダブルクリック⇒完了メッセージが出る。
merge_csv.batをダブルクリック⇒all.csvが生成される。

以上でエクセルファイルが全部all.csvに自動的にコピペされるはずです。

この方法のメリット

この方法ではデータの一部が欠損したりするようなエラーが起きにくいメリットがあります。

また、エクセルを開かずにファイルを結合できるため、VBAマクロで処理する場合より高速ですし、処理中もエクセルでの作業を中断しなくて済みます。

注意点

注意してほしいのは、エクセルファイル内に複数のシートがある場合には、そのエクセルファイルを保存した時に開いていたシートのみがall.csvにまとめられ、他のシートは無視される点です。

あと、最終的に結合して生成するのはCSVファイルですので、もちろん書式とかは無視されます。

今回想定しているのは、経理システムとかから吐き出したデータを一つのファイルに結合するような状況ですので、上記のような部分は簡便的に処理しています。

以上、 フォルダ内のエクセルファイルを自動で一括結合する方法! でした!

最後までお付き合い頂き、ありがとうございました!

少しはお役に立てましたか?

役に立つかも?と思われた方はぜひシェアを!

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

過去に作成したサイト集