[COLOR="Navy"]Option Explicit[/COLOR]
[COLOR="Navy"]Sub[/COLOR] CleanupXML()
[COLOR="Navy"]Dim[/COLOR] FSO [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Object[/COLOR] [COLOR="SeaGreen"]'//FileSystemObject[/COLOR]
[COLOR="Navy"]Dim[/COLOR] ts(1) [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]Object[/COLOR] [COLOR="SeaGreen"]'//TextStream[/COLOR]
[COLOR="Navy"]Dim[/COLOR] s [COLOR="Navy"]As[/COLOR] String, t [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]String[/COLOR]
[COLOR="Navy"]Dim[/COLOR] FileContents [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]String[/COLOR]
[COLOR="SeaGreen"]'---------------------------------------------------------[/COLOR]
[COLOR="Navy"]Const[/COLOR] SEARCH_FOR [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]String[/COLOR] = "Change me" [COLOR="SeaGreen"]'CaSe Sensitive![/COLOR]
[COLOR="Navy"]Const[/COLOR] REPLACE_WITH [COLOR="Navy"]As[/COLOR] [COLOR="Navy"]String[/COLOR] = "Changed!" [COLOR="SeaGreen"]'CaSe Sensitive![/COLOR]
[COLOR="SeaGreen"]'---------------------------------------------------------[/COLOR]
[COLOR="Navy"]On[/COLOR] [COLOR="Navy"]Error[/COLOR] [COLOR="Navy"]GoTo[/COLOR] ErrHandler:
s = Application.GetOpenFilename()
[COLOR="Navy"]If[/COLOR] s <> "False" [COLOR="Navy"]Then[/COLOR]
[COLOR="Navy"]Set[/COLOR] FSO = CreateObject("Scripting.FileSystemObject")
[COLOR="Navy"]If[/COLOR] FSO.FileExists(s) [COLOR="Navy"]Then[/COLOR]
[COLOR="SeaGreen"]'//Get File Contents[/COLOR]
t = FSO.GetParentFolderName(s) & "\" & Replace(FSO.GetTempName(), ".tmp", ".xml")
[COLOR="Navy"]Name[/COLOR] s [COLOR="Navy"]As[/COLOR] t
[COLOR="Navy"]Set[/COLOR] ts(0) = FSO.OpenTextFile(t, 1, False, -2) [COLOR="SeaGreen"]'//For reading, use default encoding[/COLOR]
FileContents = ts(0).ReadAll
ts(0).Close
[COLOR="Navy"]Set[/COLOR] ts(0) = [COLOR="Navy"]Nothing[/COLOR]
[COLOR="SeaGreen"]'//Make replacement[/COLOR]
FileContents = Replace(FileContents, SEARCH_FOR, REPLACE_WITH)
[COLOR="SeaGreen"]'//Write new file contents[/COLOR]
[COLOR="Navy"]Set[/COLOR] ts(1) = FSO.OpenTextFile(s, 2, True, -2) [COLOR="SeaGreen"]'//For writing, use default encoding[/COLOR]
ts(1).Write (FileContents)
ts(1).Close
[COLOR="Navy"]Set[/COLOR] ts(1) = [COLOR="Navy"]Nothing[/COLOR]
[COLOR="SeaGreen"]'//Delete Temp file if all actions succeeded[/COLOR]
FSO.DeleteFile (t)
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]If[/COLOR]
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]If[/COLOR]
[COLOR="SeaGreen"]'//Check that all files are closed[/COLOR]
My_Exit:
[COLOR="Navy"]If[/COLOR] [COLOR="Navy"]Not[/COLOR] ts(0) [COLOR="Navy"]Is[/COLOR] [COLOR="Navy"]Nothing[/COLOR] [COLOR="Navy"]Then[/COLOR]
ts(0).Close
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]If[/COLOR]
[COLOR="Navy"]If[/COLOR] [COLOR="Navy"]Not[/COLOR] ts(1) [COLOR="Navy"]Is[/COLOR] [COLOR="Navy"]Nothing[/COLOR] [COLOR="Navy"]Then[/COLOR]
ts(1).Close
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]If[/COLOR]
[COLOR="Navy"]Set[/COLOR] FSO = [COLOR="Navy"]Nothing[/COLOR]
[COLOR="Navy"]Exit[/COLOR] [COLOR="Navy"]Sub[/COLOR]
ErrHandler:
MsgBox "Error " & Err.Number & ": " & Err.Description
[COLOR="Navy"]Resume[/COLOR] My_Exit
[COLOR="Navy"]End[/COLOR] [COLOR="Navy"]Sub[/COLOR]