Há dias estava procurando por uma função que permitisse fazer alteração de um determinado valor dentro de um arquivo texto, após pesquisas, conclui esta função que segue, caso tenha interesse fiquem à vontade...
'call alteraArquivo("C:\EJI\Aguia\Águia0001.ini", "CodConta=1", "CodConta=3")
Sub alteraArquivo(sArquivo1 As String, sTextoOld As String, sTextoNew As String)
10 On Error GoTo alteraArquivo_Error
Dim msg As String
Dim sArquivo2 As String, strLinha1 As String, strLinha2 As String
Dim nArquivo1 As String, nArquivo2 As String, tDigitos As Integer, tDigitosCopia As Integer
'Constrói o nome do novo arquivo
20 tDigitos = Len(sArquivo1)
30 tDigitosCopia = tDigitos - 4
40 sArquivo2 = Mid(sArquivo1, 1, tDigitosCopia)
50 sArquivo2 = sArquivo2 & ".new"
'Copia os dados do arquivo de origem para o novo arquivo
60 Open sArquivo1 For Input As #1
70 Open sArquivo2 For Output As #2
80 Do While Not EOF(1)
90 Line Input #1, strLinha1
100 If InStr(strLinha1, sTextoOld) > 0 Then
110 strLinha2 = ReplaceStr(strLinha1, sTextoOld, sTextoNew, 0)
120 Print #2, Trim(strLinha2)
130 Else
140 Print #2, Trim(strLinha1)
150 End If
160 Loop
170 Close #1
180 Close #2
'Deleta o arquivo de origem
190 If Len(Dir(sArquivo1)) <> 0 Then
200 Kill sArquivo1
210 End If
'Faz uma cópia do arquivo modificado para o nome inicial
'Deleta o arquivo .new
220 If Len(Dir(sArquivo2)) <> 0 Then
230 tDigitos = Len(sArquivo2)
240 tDigitosCopia = tDigitos - 4
250 nArquivo2 = Mid(sArquivo2, 1, tDigitosCopia)
260 FileCopy sArquivo2, nArquivo2 & ".ini"
270 If Len(Dir(sArquivo2)) <> 0 Then
280 Kill sArquivo2
290 End If
300 End If
310 On Error GoTo 0
320 Exit Sub
alteraArquivo_Error:
330 msg = "Ocorreu um erro na aplicação." & vbCr
340 msg = msg & " Relate os dados abaixo ao suporte." & vbCr
350 msg = msg & " Erro nº: " & Err.Number & vbCr
360 msg = msg & " Descrição do erro: " & Err.Description & vbCr
370 msg = msg & " Módulo: " & "mdl_temp_2" & vbCr
380 msg = msg & " Procedimento: " & "alteraArquivo" & vbCr
390 msg = msg & " Linha: " & Erl & "."
400 MsgBox msg, vbCritical, "ATENÇÃO !!"
End Sub
'call alteraArquivo("C:\EJI\Aguia\Águia0001.ini", "CodConta=1", "CodConta=3")
Sub alteraArquivo(sArquivo1 As String, sTextoOld As String, sTextoNew As String)
10 On Error GoTo alteraArquivo_Error
Dim msg As String
Dim sArquivo2 As String, strLinha1 As String, strLinha2 As String
Dim nArquivo1 As String, nArquivo2 As String, tDigitos As Integer, tDigitosCopia As Integer
'Constrói o nome do novo arquivo
20 tDigitos = Len(sArquivo1)
30 tDigitosCopia = tDigitos - 4
40 sArquivo2 = Mid(sArquivo1, 1, tDigitosCopia)
50 sArquivo2 = sArquivo2 & ".new"
'Copia os dados do arquivo de origem para o novo arquivo
60 Open sArquivo1 For Input As #1
70 Open sArquivo2 For Output As #2
80 Do While Not EOF(1)
90 Line Input #1, strLinha1
100 If InStr(strLinha1, sTextoOld) > 0 Then
110 strLinha2 = ReplaceStr(strLinha1, sTextoOld, sTextoNew, 0)
120 Print #2, Trim(strLinha2)
130 Else
140 Print #2, Trim(strLinha1)
150 End If
160 Loop
170 Close #1
180 Close #2
'Deleta o arquivo de origem
190 If Len(Dir(sArquivo1)) <> 0 Then
200 Kill sArquivo1
210 End If
'Faz uma cópia do arquivo modificado para o nome inicial
'Deleta o arquivo .new
220 If Len(Dir(sArquivo2)) <> 0 Then
230 tDigitos = Len(sArquivo2)
240 tDigitosCopia = tDigitos - 4
250 nArquivo2 = Mid(sArquivo2, 1, tDigitosCopia)
260 FileCopy sArquivo2, nArquivo2 & ".ini"
270 If Len(Dir(sArquivo2)) <> 0 Then
280 Kill sArquivo2
290 End If
300 End If
310 On Error GoTo 0
320 Exit Sub
alteraArquivo_Error:
330 msg = "Ocorreu um erro na aplicação." & vbCr
340 msg = msg & " Relate os dados abaixo ao suporte." & vbCr
350 msg = msg & " Erro nº: " & Err.Number & vbCr
360 msg = msg & " Descrição do erro: " & Err.Description & vbCr
370 msg = msg & " Módulo: " & "mdl_temp_2" & vbCr
380 msg = msg & " Procedimento: " & "alteraArquivo" & vbCr
390 msg = msg & " Linha: " & Erl & "."
400 MsgBox msg, vbCritical, "ATENÇÃO !!"
End Sub