| 
    
     |  | CSVファイルをシートに表示したくないようにも取れますが・・・ もし、そうであれば、新規ブックの標準モジュール等に下記コードを貼り付けて
 実行すると、ご希望のファイル内容に書き換わると思います。
 
 
 Sub CSV書換()
 Dim FNum As Integer
 Dim WNum As Integer
 Dim N As Integer, Rw As Long
 Dim FName, InData, Ary
 Dim WName As String, OutData As String
 FName = Application _
 .GetOpenFilename("CSV ファイル(*.csv),*.csv", , "CSVファイルの指定")
 If FName = False Then Exit Sub
 N = InStrRev(FName, "\")
 WName = Left(FName, N) & "Work" & Right(FName, Len(FName) - N)
 FNum = FreeFile
 Open FName For Input As FNum
 WNum = FreeFile
 Open WName For Output As WNum
 Do Until EOF(FNum)
 OutData = ""
 Line Input #FNum, InData
 Ary = Split(Trim(InData), ",")
 If UBound(Ary) >= 16 Then
 If Right(Ary(16), 1) = "M" Then
 Ary(16) = Left(Ary(16), Len(Ary(16)) - 1)
 End If
 If UBound(Ary) < 19 Then
 ReDim Preserve Ary(19)
 End If
 If Rw > 0 Then Ary(19) = Ary(16)
 End If
 For N = 0 To UBound(Ary)
 OutData = OutData & Ary(N)
 If N < UBound(Ary) Then OutData = OutData & ","
 Next N
 Print #WNum, OutData
 Rw = Rw + 1
 Loop
 Close #WNum
 Close #FNum
 On Error Resume Next
 FileCopy WName, FName
 If Err.Number > 0 Then
 MsgBox Err.Description & vbLf & vbLf & _
 "指定のCSVファイルを閉じてから実行してください。", vbCritical
 Exit Sub
 End If
 Kill WName
 MsgBox "ファイルの修正完了 !! (全行数 " & Rw & " 行) ", vbInformation
 End Sub
 
 |  |