| 
    
     |  | ▼たま さん: こんばんは。
 ちょっと修正してみました。
 
 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
 
 |  |