Excel VBA質問箱 IV

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

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


6405 / 13644 ツリー ←次へ | 前へ→

【45357】フォルダ内全てのtxtファイル読込み starman 06/12/20(水) 16:13 質問[未読]
【45358】Re:フォルダ内全てのtxtファイル読込み Jaka 06/12/20(水) 16:28 発言[未読]
【45387】Re:フォルダ内全てのtxtファイル読込み Kein 06/12/21(木) 17:02 回答[未読]

【45357】フォルダ内全てのtxtファイル読込み
質問  starman  - 06/12/20(水) 16:13 -

引用なし
パスワード
   同一フォルダ内、全てのテキストファイル(タブ区切り)を同じシートへ読込む
処理をしたいのですが、過去ログを参照して下記のように記述しましたが、
各テキストファイルの一行目しか読み込まれません。
どうかご教授を。
Sub Read_file()
  Dim MyF As String, buf As String
  Dim Fnum As Long, i As Long
  Dim Ary As Variant
  Const Ph As String = _
  "C:\analysis\"

  MyF = Dir(Ph & "*.txt"): i = 1
  Do Until MyF = ""
   Fnum = FreeFile()
   Open Ph & MyF For Input Access Read As #Fnum
   Do Until EOF(Fnum)
     Input #Fnum, buf
     Ary = Split(buf, Chr(9)) '区切り文字をタブとする。
     With Worksheets("Sheet1")
      .Cells(i, 1).Value = Ary(0) '4列目まで表示する。
      .Cells(i, 2).Value = Ary(1)
      .Cells(i, 3).Value = Ary(2)
      .Cells(i, 4).Value = Ary(3)
     i = i + 1: Erase Ary
     End With
  Loop
   Close #Fnum
   MyF = Dir()
  Loop
  MsgBox "全てのテキストファイルデータを読み込みました", 64
End Sub

【45358】Re:フォルダ内全てのtxtファイル読込み
発言  Jaka  - 06/12/20(水) 16:28 -

引用なし
パスワード
   なんとなくだけど、違ったらすみません。
Input
 ↓
Line Input

【45387】Re:フォルダ内全てのtxtファイル読込み
回答  Kein  - 06/12/21(木) 17:02 -

引用なし
パスワード
   Sub Read_file()
  Dim MyF As String, buf As String
  Dim Fnum As Long, i As Long
  Dim Ary As Variant
  Const Ph As String = "C:\analysis\"

  MyF = Dir(Ph & "*.txt"): i = 1
  Do Until MyF = ""
   Fnum = FreeFile()
   Open Ph & MyF For Input Access Read As #Fnum
   Do Until EOF(Fnum)
     Line Input #Fnum, buf
     Ary = Split(buf, Chr(9), 4) '区切り文字をタブとし要素数を4とする。
     Worksheets("Sheet1").Cells(i, 1).Resize(, 4).Value = Ary
     i = i + 1: Erase Ary
   Loop
   Close #Fnum: MyF = Dir()
  Loop
  MsgBox "全てのテキストファイルデータを読み込みました", 64
End Sub

で、どうでしょーか ?

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