Aside from the fact you've omitted the 'If strFolder & "" & strFile <> strDocNm Then', which means the macro probably won't run to completion if you store the document containing it in the same folder you want to process, there is nothing inherently wrong with your code. Even so, your Find/Replace part could be greatly streamlined:
Code:
With .Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Text = "["
.Replacement.Text = " ~"
.Execute Replace:=wdReplaceAll
.Text = "]"
.Replacement.Text = "~"
.Execute Replace:=wdReplaceAll
.Text = "~*~"
.Replacement.Text = " "
.Execute Replace:=wdReplaceAll
End With
Are you sure the files are .docx format? By specifying that, no .doc or .docm files will be processed.