Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


20224 / 76735 ←次へ | 前へ→

【61933】Re:テキストファイルの読み出し
発言  kanabun  - 09/6/12(金) 17:00 -

引用なし
パスワード
   ▼初心者です。 さん:

>尚各データ間はスペースで区切ってあり、必要データは全て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

0 hits

【61837】テキストファイルの読み出し 初心者です。 09/6/9(火) 11:22 質問
【61848】Re:テキストファイルの読み出し イブX 09/6/9(火) 13:14 発言
【61916】Re:テキストファイルの読み出し 始めたばかりの初心者 09/6/12(金) 3:25 発言
【61928】Re:テキストファイルの読み出し 初心者です。 09/6/12(金) 13:48 質問
【61929】Re:テキストファイルの読み出し Yuki 09/6/12(金) 15:02 発言
【61933】Re:テキストファイルの読み出し kanabun 09/6/12(金) 17:00 発言

20224 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free