この質問は回答者にすべてコードを書かせるタイプで、この課題は丸投げです。
VBA初心者ですというが、VBAでも上級の課題ではないでしょうか。
マクロの記録で、ある程度のコードは出るのですから、それで色々変えてトライして見て質問してください。
ーー
エクセルで
ファイルー開くーcsvファイル と
データー外部データの取り込み
と2つありますが、校舎が適当でしょう。
読み込む位置(セル)が指定できる
各列の書式が設定できる、という理由から。
ーー
別法
下記のほかに、Csvファイルから1行づつLine Inputで読んで、
カンマでSplitし、各列に代入するロジックもあります。
ーーー
コード
Sub Macro1()
Dim fn(10)
Dim dt(10)
fn(1) = "test01": dt(1) = Array(5, 2, 1)
fn(2) = "test02": dt(2) = Array(2, 2, 1, 1)
fn(3) = "test03": dt(3) = Array(2, 1, 1, 1)
For i = 1 To 3
d = Range("a65536").End(xlUp).Row
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\xxxx\My Documents\" & fn(i) & ".csv", Destination:= _
Range("A" & d + 1))
.Name = fn(i)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = dt(i)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Next i
End Sub
マクロの記録の結果を使っていますが、
ファイルの数だけ繰り返さないといけませんが、そのとき各回で
変える場所は
繰り返しの回数 (ファイル数) For i = 1 To 3の3
ファイル名と.Name
開始セル (順順に最終行の次を指す)
TextFileColumnDataTypes
の5点です。
上記では3つのファイル名を配列にセットして、利用してます。
多い場合はその数だけ、ファイル名を配列の値として増やしてください。Dim fn(10)の10にも注意。
ーー
TextFileColumnDataTypes
の設定はdt(i)で定義してますが、
>全て同じ並びのデータで日付、時間でできているフ・・
なら同じでよいです。
上例は3つのファイルで、ばらばらのフォーマットを読み込む例のコードです。
()中の数字は、1は数字、2は文字列、3以上のコードは、5(YMD)などは操作のウイザード(3/3)で出てくる日付の書式的種類を指定するコードです。