|
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
|
|