• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで同じフォルダのCSVを同じシートに読み込みたいです。)

VBAで同じフォルダのCSVを同じシートに読み込みたい

このQ&Aのポイント
  • VBAを使用して、同じフォルダにある複数のCSVファイルを同じシートに読み込む方法を教えてください。
  • VBAを使って同じフォルダに保存されている複数のCSVファイルを一つのシートにまとめる方法を教えてください。
  • VBAを利用して、特定のフォルダに保存されている複数のCSVファイルを一つのシートに統合する方法を教えてください。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.4

#2 DOUGLAS_ です。 >自動でファイル見つけて読み込む形にしたい >CSVを開くことなく取り込みがしたい ということでしたら、別の Q&A で、そのままのご質問がありますので、ご参考にどうぞ。。。 ●VBAでCSVファイルを読み込もうとしていますが http://okwave.jp/qa/q5863691.html  なお、ご質問者さんは Set fso = CreateObject("Scripting.FileSystemObject") Set fileList = fso.GetFolder(targetFolder).Files For Each file In fileList として、指定 フォルダ 内の CSVファイル を拾おうとしていらっしゃいますが、[Dir 関数] を用いる方が簡単かと存じます。

gastronome
質問者

お礼

できました?ありがとうございます

その他の回答 (3)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

もう少し、具体的に書いてあると変な推測をしなくてすむのですが…… 自ブックと同じフォルダにあるTest2.txtをアクティブなシートに読み込んで見ました。これでいいのかなぁ? Sub Sample()  With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & ThisWorkbook.Path & "\test2.txt", Destination:=Range("A1"))   .TextFileCommaDelimiter = True   .TextFilePlatform = 932   .Refresh Sub Sample()

gastronome
質問者

補足

言葉足らずですみません。やりたいことは、前解答に細くしました。

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

 ご質問の タイトル >VBAで同じフォルダのCSVを同じシートに読み込みたいです。 からすると、 >VBAで同じシートに開く >VBAでファイルを選択してOPENする >これを同時に行いたい というのと内容が異なるような気がしますが。。。  ひょっとしてこういうことですか? Sub UCsvGet2()  ffname = ActiveWorkbook.FullName ' ブックのフル名称を得る  pos = InStrRev(ffname, "\") ' うしろから \ を探す  curpath = Mid(ffname, 1, pos) ' 先頭から \ の位置までを取り出す  MsgBox pos & " " & curpath  cnstr = _  "text;" & curpath & "test2.txt"  With ActiveSheet.QueryTables.Add(Connection:=cnstr, _   Destination:=Range("A1"))   .TextFileCommaDelimiter = True   .TextFilePlatform = 932   .Refresh  End With  Workbooks.OpenText Filename:=curpath & "test2.txt", _  DataType:=xlDelimited, Comma:=True End Sub

gastronome
質問者

補足

言葉足らずですみません。やりたいことは、test1.xlsmにtest2.csvを取り込みたいということです。できれば、自動でファイル見つけて読み込む形にしたいのですが、取り込むファイルを選択する形でもかまいません。要するに、CSVを開くことなく取り込みがしたいです。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>これを同時に行いたい ごく簡単に,マクロを一つにすればつるつるっと一続きに出来ます。 あまり手を入れて失敗するより,既に出来ている事でやっつけた方が遙かに安全です。 Sub UCsvGet2()  cnstr = _  "text;C:\Documents and Settings\kazu\My Documents\test2.txt"  With ActiveSheet.QueryTables.Add(Connection:=cnstr, _   Destination:=Range("A1"))   .TextFileCommaDelimiter = True   .TextFilePlatform = 932   .Refresh  End With  ffname = ActiveWorkbook.FullName ' ブックのフル名称を得る  pos = InStrRev(ffname, "\") ' うしろから \ を探す  curpath = Mid(ffname, 1, pos) ' 先頭から \ の位置までを取り出す  MsgBox pos & " " & curpath  Workbooks.OpenText Filename:= curpath & "test2.txt" , _   DataType:=xlDelimited, Comma:=True End Sub