Tus problemas son un poco especificos pero si entendi bien esto es lo que quieres mas o menos:
Situacion 1, programa que imprima letra por letra el contenido de un string:
cadena = "hola"
For contador = 1 To Len(cadena)
caracter = Mid(cadena, contador, 1)
MsgBox caracter
Next
Situacion 2, programa que permita modificar una palabra en una linea en particular de un archivo de texto.
Antes que nada debo decir que nunca habia intentado esto, y aunque llegue a una solucion que funcionaba no se si sea exactamente lo que buscas, ademas de que probablemente no sea una manera muy optima de hacer las cosas.
En un editor de textos normalmente volcarias todo el contenido del nuevo archivo reemplazando el anterior, evitando mayores complicaciones
. De hecho un editor de texto probablemente tendria menos codigo y seria mas entendible que lo que ahorita voy a poner.
Dim Linea As String
contador = 1
Open "c:\prueba.html" For Input As #1
Open "c:\prueba2.html" For Output As #2
viejacadena = "parrafos"
nuevacadena = "test"
While Not EOF(1)
Line Input #1, Linea
If InStr(Linea, viejacadena) And contador = 3 Then
Linea = Replace(Linea, viejacadena, nuevacadena)
End If
Print #2, Linea
contador = contador + 1
Wend
Close #1
Close #2
En este caso yo tenia un archivo .html donde en la linea 3 existia la palabra parrafos, y con este programa mande cambiar a ese programa por la palabra test.
Si quieres que el programa busque en todo el archivo y no solo en la linea 3 entonces borra donde dice AND contador = 3
El asunto aqui es que tuve que usar un archivo temporal para mis cambios, ya que si abres el archivo de texto en modo Input solo podras leer. En modo Output, borraras cualquier cosa que el archivo haya tenido previamente. Y en modo append la informacion se agregaria al final, que no es exactamente lo que queremos
Por esta razon lo que hago en mi programa es ir leyendo linea por linea, verificando si existe la cadena que busco y los resultados irlos guardando en un archivo nuevo. Si gustas y si te es necesario puedes borrar el archivo viejo y renombrar el nuevo al nombre que tenia el viejo, con esto simularas que los cambios fueron hechos directamente en el archivo original.
Kill "c:\prueba.html"
Name "c:\prueba2.html" As "c:\prueba.html"
Como dije, probablemente no sea la solucion mas optima ya que se desperdicia memoria volcando linea por linea en un archivo nuevo, aver si alguien tiene una mejor solucion que esta.
Otra opcion que pudieras considerar es simplemente llenar un textbox con el contenido de todo el archivo a editar, y hacer el cambio manualmente en el textbox (y agregas un boton para guardar los cambios). Algo asi como un mini editor de texto, que no es nada dificil.