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

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

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

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

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

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

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

スポンサーリンク

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

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

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

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

「.bat」ファイルを実行できない環境もあるかもしれません。
その場合は下記コードをメモ帳などに貼り付け、「merge_csv.vbs」のような適当なファイル名で保存して利用してください。

上記スクリプト内でcmdのcだけ半角に修正してお使いください。
(なぜか501エラーが出て投稿できないので・・・)

③実行する

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

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

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

この方法のメリット

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

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

注意点

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

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

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

コメント

お知らせ

羽織紐を手作りしてます!よろしければご覧ください!
  • 天然石 マグネット式羽織紐 #01 / 着物小物 / ブルーグリーン / 水晶
    天然石 マグネット式羽織紐 #01 / 着物小物 / ブルーグリーン / 水晶
  • 天然石 マグネット式羽織紐 #09 / 着物小物 / グレー / 高品質ルチルクォーツ
    天然石 マグネット式羽織紐 #09 / 着物小物 / グレー / 高品質ルチルクォーツ
  • 天然石 マグネット式羽織紐 #04 / 着物小物 / ネイビー
    天然石 マグネット式羽織紐 #04 / 着物小物 / ネイビー

お知らせ

羽織紐を手作りしてます!よろしければご覧ください!
  • 天然石 マグネット式羽織紐 #01 / 着物小物 / ブルーグリーン / 水晶
    天然石 マグネット式羽織紐 #01 / 着物小物 / ブルーグリーン / 水晶
  • 天然石 マグネット式羽織紐 #09 / 着物小物 / グレー / 高品質ルチルクォーツ
    天然石 マグネット式羽織紐 #09 / 着物小物 / グレー / 高品質ルチルクォーツ
  • 天然石 マグネット式羽織紐 #04 / 着物小物 / ネイビー
    天然石 マグネット式羽織紐 #04 / 着物小物 / ネイビー
タイトルとURLをコピーしました