|
▼初心者です。 さん:
>尚各データ間はスペースで区切ってあり、必要データは全て5個になります。
配列に読み込んで、最後にまとめて新規Excel Bookに貼り付けてみました。
(なお、読み込む行数は 決め打ちしてあります)
Sub Try1()
Dim myFiles, f
Dim fCount As Long, n As Long
myFiles = Application.GetOpenFilename( _
"スペース区切りテキスト,*.txt", MultiSelect:=True)
If VarType(myFiles) = vbBoolean Then Exit Sub
fCount = UBound(myFiles)
Dim buf() As Byte
ReDim data(1 To fCount * (32 - 11 + 1), 5)
Dim Lines() As String
Dim io As Integer
io = FreeFile()
For Each f In myFiles
Open f For Binary As io
ReDim buf(1 To LOF(io))
Get #io, , buf
Close io
Lines = Split(StrConv(buf, vbUnicode), vbCrLf)
配列に転記 f, Lines(), 11, 32, data(), n
Next
Workbooks.Add(6).Worksheets(1).Range("A1").Resize(n, 6).Value = data
End Sub
Private Sub 配列に転記(f, Lines() As String, _
Lstart As Long, Lend As Long, data(), n As Long)
Dim i&, j&, v
Lstart = Lstart - 1
Lend = Lend - 1
If UBound(Lines) < Lend Then Lend = UBound(Lines)
If Lend < Lstart Then Exit Sub
For i = Lstart To Lend
n = n + 1
If i = Lstart Then data(n, 0) = Dir(f)
' 各データ間はスペースで区切ってあり、 _
必要データは全て5個になります。
v = Split(Lines(i), " ")
For j = 1 To 5
data(n, j) = v(j - 1)
Next
Next
End Sub
|
|