|
▼たま さん:
こんばんは。
ちょっと修正してみました。
Sub cmd1_Click()
Dim strIN As String '入力ファイルパス変数
Dim strOUT As String '出力ファイルパス変数
Dim D As String '読み込んだファイルの1行のデータ
Dim Outdata As String 'ファイルに書き込み用データ
Dim Nin As String 'ファイル番号(インプット用)
Dim Nout As String 'ファイル番号(アウトプット用)
Dim Data() As String 'カンマ区切りのデータ
'ファイルの入出力のパスを指定
strIN = Application.GetOpenFilename("(*.*),*.*", , "入力ファイル指定")
strOUT = Application.GetSaveAsFilename("", "(*.*),*.*", , "出力ファイル指定")
'未使用のファイル番号を取得
Nin = FreeFile
Open strIN For Input As #Nin
Nout = FreeFile
Open strOUT For Output As #Nout
While Not EOF(Nin)
'ファイルを1行ずつ読み込む
Line Input #Nin, D
'「,」区切りでデータを区切る
Data() = Split(D, ",")
'番号が2桁の場合頭に0を加えて3桁にする。
If Len(Data(0)) = 2 Then
D = "0" & D
End If
'番号が同じならアウトデータの最後にカンマを入れ結合
If Left(D, 3) = Left(Outdata, 3) Then
Outdata = Outdata & Mid(D, 4)
Else
If Outdata <> "" Then
'アウトファイルに書き込む
Print #Nout, Outdata
End If
Outdata = D
End If
Wend
If Outdata <> "" Then
Print #Nout, Outdata
End If
Close #Nin
Close #Nout
End Sub
|
|