こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA:2つのCSVファイルを開きたいです。

エクセル2010のVBAにてCSVファイルを開き結合させるプログラムを組もうとしているのですが、2つ目のCSVファイルを開こうとすると、何故かエラーが出てしまいます。
--------------------------------------------------------------------------------
1つ目
Sub mobile_FileSearch(Path As String)

'test.csvのデータを検索して開く
Dim FSO As Object, Folder As Variant, File As Variant
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each Folder In FSO.GetFolder(Path).SubFolders
Call mobile_FileSearch(Folder.Path)
Next Folder
For Each File In FSO.GetFolder(Path).Files
If File.Name = "test.csv" Then
Workbooks.Open ("test.csv")
End If
Next File

End Sub
----------------------------------------------------------------------------
2つ目
Sub local_FileSearch(Path As String)

'bbb.csvのデータを検索して開く
Dim FSO As Object, Folder As Variant, File As Variant
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each Folder In FSO.GetFolder(Path).SubFolders
Call local_FileSearch(Folder.Path)
Next Folder
For Each File In FSO.GetFolder(Path).Files
If File.Name = "bbb.csv" Then
Workbooks.Open ("bbb.csv")'←ここでエラー
End If
Next File
End Sub
------------------------------------------------------------------------

まったく同じプログラムで、csvファイル名だけ変えただけで実行時エラー1004が出てしまいます。
一体全体何が問題なのでしょうか?

投稿日時 - 2012-07-06 12:04:00

QNo.7575000

困ってます

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

Pathが必要なのは、ファイルを開くときだけで、
"\bbb.csv"と先頭に\が付いているのは、Pathがその前にあるからです。

File.Nameでファイル名を判定するときは、\は必要ありません。
If File.Name = "bbb.csv" Then
と元に戻してください。

投稿日時 - 2012-07-10 04:35:50

お礼

教えて頂いた方法で、できました!!!
本当にありがとうございました!!!

投稿日時 - 2012-07-10 10:21:45

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ファイルを開くときはPathも必要です。

Workbooks.Open Path & "\test.csv"

Workbooks.Open Path & "\bbb.csv"

1つ目がうまくいったのは、たまたま既定の場所にあったからでは?

投稿日時 - 2012-07-06 14:52:07

補足

返事が遅くなりました。すみません。
返信ありがとうございます。
教えて頂いた方法を試したのですが、

Dim FSO As Object, Folder As Variant, File As Variant
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each Folder In FSO.GetFolder(Path).SubFolders
Call mobile_FileSearch(Folder.Path)
Next Folder
For Each File In FSO.GetFolder(Path).Files
If File.Name = "\bbb.csv" Then
Workbooks.Open Path & "\bbb.csv"
End If
Next File

としたのですが、csvが発見できないようです。
If文に入らずに抜けてしまいました。
うまくいきません・・・・・

投稿日時 - 2012-07-09 15:06:23

あなたにオススメの質問