dポイントプレゼントキャンペーン実施中!

CSVファイルを開かずに、フォルダ内にあるファイルの、特定行の値を抽出、別のブックの特定のセルに張り付けを、フォルダ内の複数ファイルに対して実行したい。

フォルダ内には100個ほどエクセルファイルがあり、中身のフォーマットは同じなのですが、すべてシート名・ファイル名・列の長さが違います。
ファイルを開くことなく、これらのファイルの特定のシートの特定の列にある値を、別のブックの特定のセルに張り付けることは可能でしょうか?
また、フォルダ内の全てのファイルに対して実行したいです。保存形式は.xlsにしたいと考えております。


フォルダ名 →"Macro"
参照したいファイル名 →ファイルによって異なる "2015.06.10_at_21.04.CSV"など
参照したいシート名→ "Time_2015.06.10_at_21.04"
参照したい列→ "A" と "FN~FP"

データをまとめたいファイル名→ "2015.06.10_at_21.04.xls"
データをまとめる時の形↓

(A列7行目から)  (B列77行目から) (C列7行目から)  (D列7行目から)
ファイル1のAの値 ファイル1のFNの値 ファイル2のFOの値 ファイル2のFPの値
                    ・
                    ・
                    ・




VBAは初心者です。。できればコードをそのまま拝借したいです。
お知恵を貸してください。何卒よろしくお願い申し上げます。

A 回答 (1件)

なかなか回答が使いないですよね。


理由は
>ファイル1のAの値 ファイル1のFNの値 ファイル2のFOの値 ファイル2のFPの値
です。
どのファイルが ファイル1?なのです。
とりあえずですが Dir関数を紹介しておきます。
新規のファイルを準備
Sub ボタン1_Click()
Dim buf As String
buf = Dir(ThisWorkbook.Path & "\*.csv")
i = 3
Do While Len(buf) > 0
Range("A" & i).Value = buf
buf = Dir()
i = i + 1
Loop
End Sub
と入れて、ファイルのあるフォルダ→"Macro"にいったん保存します。
実行するとA列に、フォルダ内に存在するcsvファイル名の一覧が出ます。
次に、B列に必要な列の番号をどうやって入れていくかですね。
そこまで出来たら、加えてそれぞれのファイルを開いて
希望の列を希望の列に入れるVBAを考えます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!