[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『csvを結合するマクロで1つ目以外の1行目を消したい』(レッドル)
初めまして。VBAで行き詰ってしまったので質問させてください。
同じフォルダにまとめた複数のcsvを1つに結合させるマクロを作りました。
Sub csv結合()
Dim name As String
name = ThisWorkbook.Path
Range("B3").Value = name
wpath = Range("B3") wfile = Dir(wpath & "\") flag = 0 Do While wfile <> "" If InStr(wfile, ".csv") Then flag = flag + 1 If flag = 1 Then FileCopy wpath & "\" & wfile, ThisWorkbook.Path & "\結合.csv" Open ThisWorkbook.Path & "\output.csv" For Output As #1 Close #1 End If Open ThisWorkbook.Path & "\output.csv" For Append As #1 Open wpath & "\" & wfile For Input As #2 Do Until EOF(2) Line Input #2, w_str Print #1, w_str Loop Close #2 Close #1 End If wfile = Dir() Loop
MsgBox "結合完了", vbInformation
End Sub
しかし、結合するすべてのCSVには1行目に項目行があり、このままだとcsvをシステムで読み込む際、不具合が生じてしまいます。
ですので、結合した最初のcsv以外の1行目を削除して結合したいのですが、どこにどんな式を付け加えたらよいでしょうか。
教えてくただけると助かります。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
Sub csv結合()
Dim name As String
name = ThisWorkbook.Path
Range("B3").Value = name
wpath = Range("B3") wfile = Dir(wpath & "\") flag = 0 Do While wfile <> "" If InStr(wfile, ".csv") Then flag = flag + 1 If flag = 1 Then FileCopy wpath & "\" & wfile, ThisWorkbook.Path & "\結合.csv" Open ThisWorkbook.Path & "\結合.csv" For Output As #1 Close #1 End If Open ThisWorkbook.Path & "\結合.csv" For Append As #1 Open wpath & "\" & wfile For Input As #2 Do Until EOF(2) Line Input #2, w_str Print #1, w_str Loop Close #2 Close #1 End If wfile = Dir() Loop
MsgBox "結合完了", vbInformation
End Sub
でお願いします。
(レッドル) 2021/09/09(木) 17:13
(ひまつぶし) 2021/09/09(木) 21:03
試してみたところ、結合csvから全ての項目行が消えてしまいました。
1行目だけは残して途中行の項目行(2ファイル目以降のcsvの1行目)を
消したいのですが、私の式の位置がおかしいのでしょうか?
(レッドル) 2021/09/09(木) 21:14
(ひまつぶし) 2021/09/09(木) 21:23
申し訳ありません。理解力が足らず上手く行きません。
もう少し詳しく説明いただけませんでしょうか。
(レッドル) 2021/09/10(金) 11:06
Sub 別案() Dim ファイル名 As String Dim dstRNG As Range Dim 読込行 As Long
With Worksheets.Add 読込行 = 1 Set dstRNG = .Range("A1")
ファイル名 = Dir(ThisWorkbook.Path & "\*.csv") Do Until ファイル名 = "" With .QueryTables.Add(Connection:="TEXT;" & ThisWorkbook.Path & "\" & ファイル名, Destination:=dstRNG) .TextFileCommaDelimiter = True ' カンマ区切り .TextFileStartRow = 読込行 'データの読込開始行をセット .Refresh ' データを表示 .Delete ' CSV との接続を解除 End With
読込行 = 2 Set dstRNG = .Cells(.Rows.Count, "A").End(xlUp).Offset(1)
ファイル名 = Dir() Loop
.Move End With
With Workbooks(Workbooks.Count) .SaveAs Filename:=ThisWorkbook.Path & "\結合.csv", FileFormat:=xlCSVUTF8 .Close End With End Sub
(もこな2) 2021/09/10(金) 11:40
2021/9/10 だと 9/10/2021
といった風になってしまいました。
この原因は何故なのでしょうか。お教えいただけると助かります。
(レッドル) 2021/09/10(金) 12:07
(もこな2) 2021/09/10(金) 12:19
If flag <> 1 Then Line Input #2, w_str
14:00 誤字修正 (ひまつぶし) 2021/09/10(金) 12:22
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.