質問: 複数のエクセルブックのデータをまとめる方法を教えてください。 フォルダ内にCSVファイルが50件ほど入っていまして、下記を抜き出して一つのブック(まとめ.xlsx)にまとめたいのですが、そのようなマクロを教えて頂けないでしょうか。 1フォルダに格納されているCSVのファイル名をまとめ.xlsxのA列に表示 2CSVのD列、E列が昇順で数字の羅列になっていて、E列の値が最初に10を超えたときのD列の値を抽出し、まとめ.xlsxのB列に表示(E100が9.8、E101が10.1、E102が10.2ならD101の値を抽出) →A1にファイル名、B1に値という形で抽出。 そもそも、これがマクロを使う内容なのか、知見がないので的外れな質問でしたら申し訳ございません。 以上、ご回答いただけないでしょうか。 宜しくお願い致します。
回答: > csvファイルの中身が少し違っていました。。下記が正しいです。 数字の羅列はB21とC21セルから始まります。(それより上列は、空白や文字や数字が記載されています) このときのBセルの値の抜き出しが行いたい内容です。(Cが10を超えた時のB) > > 本当に申し訳ないのですが、C17セルに10より大きい数字(40前後)が入ってしまっており、その横のB17のセルを抽出しまう結果でした。 > 最初の20行を無視する機能を付けました。 Option Explicit ' Sub Macro1() Dim File As String Dim FileData As Variant Dim ROut As Long ' ROut = 1 File = Dir(ThisWorkbook.Path & "\*.csv") ' If File = "" Then MsgBox "ファイルが見つかりません", vbCritical End If [A:B].ClearContents Application.ScreenUpdating = False ' Do Until File = "" Cells(ROut, "A") = Replace(File, ".csv", "") Open ThisWorkbook.Path & "\" & File For Input As #1 ' For FileData = 1 To 20 Line Input #1, File Next FileData ' Do Until EOF(1) Line Input #1, File FileData = Split(File & ",,", ",") File = FileData(2) ' If Val(File) > 10 Then Cells(ROut, "B") = FileData(1) ROut = ROut + 1 Exit Do End If Loop Close File = Dir Loop End Sub