実現したいこと
合体データフォルダ内の
1.csv
2.csv
3.csv
4.csv
の4つのファイルを結合して
同じ合体データフォルダ内に
新しいcsvで出力するというこーどを書きたい
発生している問題・分からないこと
今起きている事象としては
【問題①】
◾︎一回目
1-4のcsvファイルを読み込み、出力できた
◾︎二回目
合体データフォルダ内の1-4のデータは削除し、翌日新しい1-4のデータを入れ実行した所、削除したはずの前日のデータで出力された
読み込むcsvフォルダ名が1.2.3.4のまま読み込む必要があり、変更が出来ないので(こちらの事情で)、どこかでパスのリセットを行う必要があるのかと思いましたが、
何回やっても同じファイルができあがるので
わかる方にアドバイスを頂きたいです。
【問題②】
・合体データフォルダ内に出力したいのですが
1つ上のフォルダに出力されてしまいます。こちらも何度がコードを加えてみたのですが上手くいかず。
アドバイスを頂きたいです。
該当のソースコード
VBA
1以下コードです 2(リセットするコードは一旦抜いています) 3 4Sub csv合体() 5 Dim folderPath As String 6 Dim fso As Object 7 Dim file As Object 8 Dim textLine As String 9 Dim outputFileName As String 10 Dim outputFile As Integer 11 Dim inputFile As Integer 12 Dim firstFile As Boolean 13 14 ' フォルダのパスを指定 15 folderPath = "C:\temp\合体データ" 16 17 ' 出力ファイル名(指定の名前で保存) 18 outputFileName = folderPath & ".csv" 19 20 ' ファイルシステムオブジェクトを作成 21 Set fso = CreateObject("Scripting.FileSystemObject") 22 23 ' 出力ファイルを作成 24 outputFile = FreeFile 25 Open outputFileName For Output As #outputFile 26 27 firstFile = True 28 29 ' フォルダ内のCSVファイルを処理 30 For Each file In fso.GetFolder(folderPath).Files 31 If Right(file.Name, 4) = ".csv" Then 32 inputFile = FreeFile 33 Open file.Path For Input As #inputFile 34 35 ' 最初のファイルのヘッダーを含める 36 If firstFile Then 37 firstFile = False 38 Else 39 ' 2つ目以降はヘッダーをスキップ 40 Line Input #inputFile, textLine 41 End If 42 43 ' 各行を出力ファイルに書き込む 44 Do While Not EOF(inputFile) 45 Line Input #inputFile, textLine 46 Print #outputFile, textLine 47 Loop 48 49 Close #inputFile 50 End If 51 Next file 52 53 Close #outputFile 54 55 MsgBox "CSVファイルの結合が完了しました!", vbInformation 56End Sub
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
chatGptにて3つほどコードを追加提案されましたが上手くいかず。
補足
特になし


回答2件
あなたの回答
tips
プレビュー