![見出し画像](https://assets.st-note.com/production/uploads/images/126333372/rectangle_large_type_2_ca5d5d17f5484d479998618a63545ca7.png?width=800)
フォルダ内のデータファイルを1つにまとめるVBAマクロ
フォルダ内にある.csvファイルを全部まとめて1つのエクセルシートに出力するマクロです。
コピペできるコードは末尾にあります。
1回の測定で、1つのフォルダができて、その中に測定データの.csvファイルができる、という場合がよくあります。そういうとき、データを取り出すために.csvファイルを1つ1つ開くのは面倒なので、一括で1つのエクセルシートに出力するマクロを作成しました。
実装
以下のようなデータを想定します。
「sample」フォルダ内に「sample_n」という名前のサブフォルダがあり、その中には1つずつ.csvフォルダがある構造です。
![](https://assets.st-note.com/img/1704091366137-x1MNOnDNd7.png?width=800)
.csvフォルダは次のようなデータが入っているとします。
![](https://assets.st-note.com/img/1704091491927-Gc8oDHaFOZ.png)
まずエクセル開いてVBAを立ち上げて、必要な変数を定義します。
![](https://assets.st-note.com/img/1704092194678-xpsoDkDQiB.png)
さきほど定義したFolderPathに対象フォルダを指定してもらうようにします。フォルダはユーザーが選べるようにします。
![](https://assets.st-note.com/img/1704092215406-Gb8ck2xY5E.png)
次に、ここでデータを出力する新しいシートを作成するのと、データを格納するFileSystemObject(さきほどFSOで定義)を作成します。
![](https://assets.st-note.com/img/1704092233048-mpVqLhEIj8.png?width=800)
次がメインのファイル処理と、終了後のメッセージボックスです。メインの関数はのちほど定義します。
![](https://assets.st-note.com/img/1704092162494-JyJR6RiMU9.png)
メインの関数です。
各サブフォルダから.csvファイルを読み込み、さきほど作成したデータ出力用シートにコピペしつつ、先頭行にサブフォルダ名を入れてどのフォルダから取ってきたかわかるようにしています。
![](https://assets.st-note.com/img/1704092114188-SruJIhEafs.png?width=800)
サンプルデータの出力結果がこちら
![](https://assets.st-note.com/img/1704092400586-Vo54zsp9jD.png)
「続きをみるには」でコピペできるコードのフルバージョンが読めます。
ここから先は
2,040字
¥ 100
この記事が気に入ったらサポートをしてみませんか?