• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの各シートに複数のtxtファイルを取り込む)

エクセルの各シートに複数のtxtファイルを取り込む

このQ&Aのポイント
  • Excel2013を用いたデータ整理でわからない部分があるため,エクセルの各シートに複数のテキストファイルを取り込む方法を教えてください。
  • 同じフォルダに入った複数のテキストファイルをエクセルの複数のシートにそれぞれ取り込みたいです。具体的には、テキストファイル名に基づいてファイルをシートに取り込む方法を教えてください。
  • エクセルの各シートに複数のテキストファイルを取り込む方法について教えてください。テキストファイルは四列で構成されており、タブで区切られています。行数は約20,000です。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

ANo.2です。 テキストは3つではなくもっとたくさんあるのですね。 失礼しました。 新しいシートを追加して、シート名をテキストファイル名に変更したうえでデータを貼り付けるようにしました。 #テキストファイル名と同名のシートが存在するとエラーになります。 Sub Sample()   Dim sPath As String   Dim sFile As String   Dim sText As String   sPath = "C:\TEMP\"   sFile = Dir(sPath & "*.txt")   Do While sFile <> ""     ActiveWorkbook.Worksheets.Add After:=Sheets(Sheets.Count)     ActiveSheet.Name = Replace(sFile, ".txt", "")     sText = "TEXT;" & sPath & sFile     With ActiveSheet.QueryTables.Add(Connection:=sText, Destination:=Range("$A$1"))       .TextFilePlatform = 932       .TextFileTabDelimiter = True       .Refresh       .Delete     End With     sFile = Dir()   Loop End Sub

aneu2165
質問者

補足

ご回答ありがとうございます. 早速試してみたのですが,マクロを実行しても反応がありませんでした. 恐らく,こちらでパスの名前等を任意に変更するのができていないのが問題と思われます. くだらない質問ですが,このプログラムでこちらが任意に変更すべき部分はどこになるでしょうか? ご回答よろしくお願い致します.

その他の回答 (3)

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.4

> くだらない質問ですが,このプログラムでこちらが任意に変更すべき部分はどこになるでしょうか? sPath = "C:\TEMP\" ←この部分をtxtファイルが入っているパスに書き換えてください(最後の\も忘れずに) #サイト上では逆スラッシュになっていますが、PC上では半角の¥です(日本語OSの場合)。

aneu2165
質問者

お礼

ご指摘の箇所を修正したところ,正常にマクロがはたらき欲しかった結果が得られました. 丁寧なご回答をして頂き,誠にありがとうございました.

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.2

こんな感じでどうでしょう。 QueryTables.Add を使いました。 Sub Test()   Dim ws As Worksheet   Dim qt As QueryTable   Dim sText As String      For i = 1 To 3     sText = "TEXT;C:\TEMP\A" & Format(i, "000") & ".txt"     Set ws = Worksheets("Sheet" & i)     ws.Cells.Clear     Set qt = ws.QueryTables.Add(Connection:=sText, Destination:=ws.Range("A1"))     With qt       .TextFilePlatform = 932       .TextFileTabDelimiter = True       .Refresh       .Delete     End With   Next i End Sub

  • emsuja
  • ベストアンサー率50% (1085/2161)
回答No.1

少々泥臭い書き方ですが、こんな書き方では? Option Explicit Dim sn As String, fn As String Sub test() Dim pn As String pn = ThisWorkbook.Path fn = pn & "\aaa001.txt" sn = "sheet1" Call test2 fn = pn & "\aaa002.txt" sn = "sheet2" Call test2 pn = ThisWorkbook.Path fn = pn & "\aaa003.txt" sn = "sheet3" Call test2 fn = pn & "\aaa004.txt" sn = "sheet4" Call test2 End Sub Sub test2() Dim f As Integer, w As String, d() As String, r As Long, c As Integer With Worksheets(sn) f = FreeFile Open fn For Input As f Do Until EOF(f) Line Input #(f), w d() = Split(w, vbTab) r = r + 1 For c = 0 To UBound(d) .Cells(r, c + 1).Value = d(c) Next Loop Close f End With End Sub

aneu2165
質問者

お礼

迅速なご回答,誠にありがとうございました.

関連するQ&A

専門家に質問してみよう