- ベストアンサー
あるフォルダ内のすべての.CSVファイルをコピーして貼り付けるようなプログラム
たとえばあるフォルダ内にある.CSVのファイルの中身のデータを 新しく一つのエクセルファイルを開き、sheet1にフォルダ内にある全ての.CSVファイルをコピーして貼り付ける様なことは可能ですか? たとえばsheet1に一つ目の.CSVファイのコピーが終わると、 その続きから二番目の.CSVファイルをコピー、 次は三番目の.CSVファイルをコピー貼り付け みたいにしたいのです。 データは 一列目が時刻データで二列目が五桁の数字です。 このサイト見ればいいよ!とかこういう感じのプログラムでできますよ! というのがあればご教授お願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
(1)フォルダ内の全てのファイル名の捉え方 「フォルダ Dir」でWEB照会 (2)拡張子.csv以外は捨てるコードの書き方 If文で<> ".csv"を捨てる csvファイルが見つかれば、そのcsvファイルを開く (3)Line Input #でそのcsvファイルの1レコードをaに読み込む。 (4)Split関数で各列に分離 s=split(a,",") (5)エクセルの横列にSplitしてできた配列データをセット 下記kはデータをセットする行番号を示す。 For j=0 to 1 cells(k,j)=s(j+1) next j (6)データをセットする行番号を1加え、次の下行をさす k=k+1 (7)そのcsvファイルが終ると次ぎのcsvファイルを読む. (2)に帰るということ。 (8)(3)-(6)を繰り返し。データをセットする行番号kは, 1ファイルが終っても、リセット(1にせず)せず使い続けていく。 ーー 質問者のVBAの技量はどのくらいかわからないが、参考にしてください。 (1)-(4)のコードはエクセルVBAの標準モジュールのコードの中に書けます。 (1)はVBSCRIPTのFSOの For Each objFile In objFolder.Files MsgBox objFile.Name Next (ただし上記は表示のコード) などもあります。興味があれば、WEB照会のこと。