- ベストアンサー
VBAで同じフォルダのCSVを同じシートに読み込みたい
- VBAを使用して、同じフォルダにある複数のCSVファイルを同じシートに読み込む方法を教えてください。
- VBAを使って同じフォルダに保存されている複数のCSVファイルを一つのシートにまとめる方法を教えてください。
- VBAを利用して、特定のフォルダに保存されている複数のCSVファイルを一つのシートに統合する方法を教えてください。
- みんなの回答 (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 関数] を用いる方が簡単かと存じます。
その他の回答 (3)
- mt2008
- ベストアンサー率52% (885/1701)
もう少し、具体的に書いてあると変な推測をしなくてすむのですが…… 自ブックと同じフォルダにあるTest2.txtをアクティブなシートに読み込んで見ました。これでいいのかなぁ? Sub Sample() With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & ThisWorkbook.Path & "\test2.txt", Destination:=Range("A1")) .TextFileCommaDelimiter = True .TextFilePlatform = 932 .Refresh Sub Sample()
補足
言葉足らずですみません。やりたいことは、前解答に細くしました。
- DOUGLAS_
- ベストアンサー率74% (397/534)
ご質問の タイトル >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
補足
言葉足らずですみません。やりたいことは、test1.xlsmにtest2.csvを取り込みたいということです。できれば、自動でファイル見つけて読み込む形にしたいのですが、取り込むファイルを選択する形でもかまいません。要するに、CSVを開くことなく取り込みがしたいです。
- keithin
- ベストアンサー率66% (5278/7941)
>これを同時に行いたい ごく簡単に,マクロを一つにすればつるつるっと一続きに出来ます。 あまり手を入れて失敗するより,既に出来ている事でやっつけた方が遙かに安全です。 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
お礼
できました?ありがとうございます