エクセル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が出てしまいます。
一体全体何が問題なのでしょうか?
No.2ベストアンサー
- 回答日時:
Pathが必要なのは、ファイルを開くときだけで、
"\bbb.csv"と先頭に\が付いているのは、Pathがその前にあるからです。
File.Nameでファイル名を判定するときは、\は必要ありません。
If File.Name = "bbb.csv" Then
と元に戻してください。
No.1
- 回答日時:
ファイルを開くときはPathも必要です。
Workbooks.Open Path & "\test.csv"
Workbooks.Open Path & "\bbb.csv"
1つ目がうまくいったのは、たまたま既定の場所にあったからでは?
この回答への補足
返事が遅くなりました。すみません。
返信ありがとうございます。
教えて頂いた方法を試したのですが、
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文に入らずに抜けてしまいました。
うまくいきません・・・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) FileSearch2007に変わる構文について 1 2022/12/16 16:57
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロ 空白セルを無視し...
-
ダブルコーテーション付きでCSV...
-
VB.netでShellExecuteがしたい
-
pythonのこのエラーがわかりません
-
VBAでcsvファイルもシートもあ...
-
【ExcelVBA】300万件越えCSVか...
-
複数のファイルをまたぐエクセ...
-
CSVで余計な空行が入る
-
Pythonでcsvファイルの中身...
-
LibreOffice Calcのマクロで、...
-
エクセルの任意のシートをcs...
-
VBAで複数のCSVからレコードセ...
-
バッチ処理 特定の文字以降を...
-
SQLでテキストボックスの文字を...
-
Access VBA エラー2448について
-
INPUTタグ disabledの文字色を...
-
teratermで、ファイル名をinput...
-
VBA テキストボックスを選択状...
-
[コンパイルエラー 修飾子が不...
-
SQLファイルの読み込み
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロ 空白セルを無視し...
-
【ExcelVBA】300万件越えCSVか...
-
ダブルコーテーション付きでCSV...
-
VBAでcsvファイルもシートもあ...
-
CSVで余計な空行が入る
-
EXCEL→CSV保存時のダブルクォー...
-
LibreOffice Calcのマクロで、...
-
CSVデータの文字列置換
-
VBAで複数のCSVからレコードセ...
-
pythonでリストをCSVに出力する...
-
ファイル名を変数で書きこむfwr...
-
VB.netでShellExecuteがしたい
-
バッチコマンドで指定行を抽出...
-
エクセルの任意のシートをcs...
-
StringGridの中身をCSV形式で保...
-
pythonのこのエラーがわかりません
-
CSVファイルの比較と結果の取得...
-
rubyを用いたCSVファイルの分割...
-
PowerShellからGhostscriptを動...
-
ブラウザ上でcsvファイルの編集
おすすめ情報