Sub changeall(ByVal mydir As String, ByVal findstr As String, ByVal tostr As String)
Dim txtfiles As New Collection
Dim n As Integer, dirlevel As Integer, fname As String, dirlist() As String, b() As Byte
mydir = IIf(Right(mydir, 1) = "\", mydir, mydir & "\")
fname = Dir(mydir)
Do While fname <> ""
txtfiles.Add mydir & fname
fname = Dir
Loop
fname = LCase(Dir(mydir, vbDirectory))
Do While fname <> ""
If fname <> "." And fname <> ".." And Right(fname, 3) = "txt" Then
If GetAttr(mydir & fname) And vbDirectory Then
dirlevel = dirlevel + 1
ReDim Preserve dirlist(dirlevel)
dirlist(dirlevel) = mydir & fname
End If
End If
fname = Dir
DoEvents
Loop
For n = 1 To txtfiles.Count
Open txtfiles(i) For Binary As #1
ReDim b(LOF(1))
Get #1, , b
Close #1
Kill txtfiles(i)
fname = Replace(StrConv(b, vbUnicode), findstr, tostr)
Open txtfiles(i) For Binary As #1
Put #1, , fname
Close #1
Next
Set txtfiles = Nothing
End Sub