|
▼どらちゃん さん:
こんばんは。
>EXCEL形式の「○○.csv」というファイルをNOTEPADから開いたとき、データはカンマ区切りになりますが、このうち余分なカンマを削除したいのです。
>具体的には、3行のデータがあり、2行目はそのままで一行目と3行目の右側にある余分なカンマを消したい。
これは、正規表現を使わなくても出来ますけど、たまにここで使わないと
忘れそうになるので・・・
標準モジュールに
'================================================================
Sub main()
Dim flnm As Variant
Dim fldmy As String
Dim i_flno As Long
Dim o_flno As Long
flnm = Application.GetOpenFilename("CSVファイル,*.csv")
If TypeName(flnm) <> "Boolean" Then
On Error GoTo open_error
i_flno = FreeFile()
Open flnm For Input As #i_flno
o_flno = FreeFile()
fldmy = Replace(flnm, ".csv", ".tmp", , , vbTextCompare)
Open fldmy For Output As #o_flno
With CreateObject("VBScript.RegExp")
.Pattern = ",+$"
.IgnoreCase = True
.Global = True
Do Until EOF(i_flno)
Line Input #i_flno, txt
Print #o_flno, .Replace(txt, "")
Loop
End With
Close #i_flno
Close #o_flno
Kill flnm
Name fldmy As flnm
On Error GoTo 0
End If
Exit Sub
open_error:
MsgBox Err.Number & " : " & Err.Description
End Sub
でmainを実行してみてください。
ファイル選択ダイアログから対象のcsvファイルを選択してください。
OKボタンをクリックすると直ちに処理が開始されます。
処理が終了したら、対象csvファイルの中身を確認してみてください。
|
|